【机器学习随笔】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)!