自学内容网 自学内容网

【机器学习随笔】PCA降维与SVD

这块主要参考这个博文,写的很好:一文让你彻底搞懂主成成分分析PCA的原理及代码实现(超详细推导)
唯一的疑问是这份代码,自己跑出来的结果第二维数据的符号与原文符号正好相反。有朋友看到可以跑出来一起看下结果:

import numpy as np
from sklearn.decomposition import PCA

# 3 x 5 , 3维特征,5组数据
data = np.array([[-1,-1,0,2,1],[2,0,0,-1,-1],[2,0,1,1,0]], dtype=np.float)
k = 2

pca = PCA(n_components=k)
# 注意转置
new_data = pca.fit_transform(data.T)
# 降维后的数据各个维度特征 所占信息比例
ratios = pca.explained_variance_ratio_

print(new_data,ratios)
# 输出
[[ 2.50856792 -0.76054613]
 [ 0.59089386  1.31546989]
 [ 0.19057608 -0.02787302]
 [-1.84517782 -0.93519683]
 [-1.44486004  0.40814608]]
 [0.7801724  0.21479774]

自测输出:

[[ 2.50856792  0.76054613]
 [ 0.59089386 -1.31546989]
 [ 0.19057608  0.02787302]
 [-1.84517782  0.93519683]
 [-1.44486004 -0.40814608]]
  [0.7801724  0.21479774]

———————————————————————————————————————————————————————————
额。。。找到根源,具体原因未知:在python3.11.15下是自测的结果,在python3.9.19的情况下是第一种结果,可能和变换的轴方向不一样


原文地址:https://blog.csdn.net/lez1021/article/details/142326560

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!