首页 > 编程知识 正文

python实现svm源程序,python求特征值和特征向量

时间:2023-05-03 10:55:43 阅读:174182 作者:231

我正在试图用Python实现PCA。 我的目标是创建行为与Matlab的PCA实现相似的版本。 但是,我觉得我错过了一个重点。 因为在我的测试部分出现了错误的符号(/- )的结果。 在

你能找出算法的错误吗? 为什么这些标记有时会不一样? 在

基于特征向量的PCA实现: new_array_rank=4

a_mean=NP.mean(a,axis=0) ) )。

A=A - A_mean

covariance_matrix=np.cov(A.T )

eigen_values,eigen _ vectors=NP.Lina LG.EIG (co variance _ matrix ) ) ) ) ) ) ) ) ) ) ) )。

new _ index=NP.arg sort (eigen _ values ) [:-1]

eigen _ vectors=eigen _ vectors [ :new_index]

eigen _ values=eigen _ values [ new _ index ]

eigen _ vectors=eigen _ vectors [ : new _ array _ rank ]

returnNP.dot(eigen_vectors.t,A.T ).t

我的测试值:

^{pr2}$

我的特征向量PCA结果: Array([5.09548931e-01,-3.97079651e-01,-1.47555867e-01,

-3.55343967e-02、-4.92125732e-01、-1.78191399e-01、

-3.29543974e-02、3.71406504e-03、1.06404170e-01、

-1.66533454e-16]、

[-5.15879041 e-01、6.40833419 e-01、-7.54601587e-02、

-2.00776798e-01、- 7.07247669 e-02、2.68582368 e-01,

-1.66124362e-01、1.03414828e-01、7.76738500e-02、

5.55111512e-17]、

[ -4.42659342e-01、-5.13297786e-01、-1.65477203e-01、

5.33670847e-01、2.00194213e-01、2.06176265e-01、

1.31558875e-01、- 2.81699724 e-02、6.19571305 e-02,

-8.32667268e-17]、

[-8.50397468 e-01,5.14319846 e-02,-1.46289906e-01,

6.51133920e-02、-2.83887201e-01、-1.90516618e-01、

1.45748370 e-01、9.49464768 e-02、-1.05989648e-01,

4.16333634e-17]、

[ -1.61040296e-01、-3.47929944e-01、-1.19871598e-01、

-6.48965493e-01、7.53188055e-02、1.31730340e-01、

1.33229858e-01、-1.43587499e-01、-2.20913989e-02、

-3.40005801e-16]、

[-1.70017435 e-01,4.22573148 e-01,4.81511942 e-01,

2.42170125e-01、-1.18575764e-01、-6.87250591e-02、

-1.20660307e-01、-2.22865482e-01、-1.73666882e-02、

-1.52655666e-16]、

[ 6.90841779e-02、-2.86233901e-01、-4.16612350e-01、

9.38935057 e-03、3.02325120 e-01、-1.61783482e-01、

- 3.55465509 e-01、1.15323059 e-02、-5.04619674e-02,

4.71844785e-16]、

[ 5.26189089 e-01、6.81324113 e-01、-2.89960115e-01、

2.01781673 e-02、3.03159463 e-01、-2.11777986e-01、

2.25937548e-01、- 5.49219872 e-05、3.66268329 e-02,

-1.11022302e-16]、

[ 6.68680313e-02、- 2.99715813 e-01、8.53428694 e-01、

- 1.30066853 e-01、2.31410283 e-01、-1.02860624e-01,

1.95449586e-02、1.30218425e-01、1.68059569e-02、

2.22044605e-16]、

[9.68303353e-01、4.80944309e-02、2.62865615e-02、

1.44821658e-01、- 1.47094421 e-01、3.07366196 e-01,

1.91849667 e-02、5.08517759 e-02、-1.03558238e-01,

1.38777878e-16]] )

使用Matlab的PCA函数对相同数据的测试结果: array ([-5.09548931 e-01,3.97079651 e-01,1.4755867 e-01,

3.55343967e-02、-4.92125732e-01、-1.78191399e-01、

-3.29543974e-02、-3.71406504e-03、-1.06404170e-01、

-0.00000000e 00],

[ 5.15879041e-01、- 6.40833419 e-01、7.54601587 e-02、

2.00776798e-01、- 7.07247669 e-02、2.68582368 e-01,

-1.66124362e-01、-1.03414828e-01、-7.76738500e-02、

-0.00000000e 00],

[4.42659342e-01、5.13297786e-01、1.65477203e-01、

-5.33670847e-01、2.00194213e-01、2.06176265e-01、

1.31558875 e-01、2.81699724 e-02、-6.19571305e-02、

-0.00000000e 00],

[ 8.50397468e-01、- 5.14319846 e-02、1.46289906 e-01、

-6.51133920e-02、-2.83887201e-01、-1.90516618e-01、

1.45748370e-01、- 9.49464768 e-02、1.05989648 e-01,

-0.00000000e 00],

[1.61040296e-01、3.47929944e-01、1.19871598e-01、

6.48965493e-01、7.53188055e-02、1.31730340e-01、

1.33229858e-01、1.43587499e-01、2.20913989e-02、

-0.00000000e 00],

[ 1.70017435e-01、-4.22573148e-01、-4.81511942e-01、

-2.42170125e-01、-1.18575764e-01、-6.87250591e-02、

-1.20660307e-01、2.22865482e-01、1.73666882e-02、

-0.00000000e 00],

[-6.90841779e-02、2.86233901e-01、4.16612350e-01、

- 9.38935057 e-03,3.02325120 e-01,-1.61783482e-01,

-3.55465509e-01、- 1.15323059 e-02、5.04619674 e-02,

-0.00000000e 00],

[ -5.26189089e-01,- 6.81324113 e-01,2.89960115 e-01,

- 2.01781673 e-02、3.03159463 e-01、-2.11777986e-01,

2.25937548 e-01、5.49219872 e-05、-3.66268329e-02,

-0.00000000e 00],

[-6.68680313 e-02,2.99715813 e-01,-8.53428694e-01,

1.30066853 e-01、2.31410283 e-01、-1.02860624e-01、

1.95449586e-02、-1.30218425e-01、-1.68059569e-02、

-0.00000000e 00],

[ -9.68303353e-01、-4.80944309e-02、-2.62865615e-02、

-1.44821658e-01,- 1.47094421 e-01,3.07366196 e-01,

1.91849667e-02、- 5.08517759 e-02、1.03558238 e-01,

-0.00000000e 00]] )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。