东方耀AI技术分享

标题: 21、高维数据利用PCA降维实操 [打印本页]

作者: 东方耀    时间: 2019-10-12 20:28
标题: 21、高维数据利用PCA降维实操
21、高维数据利用PCA降维实操


总结:对手写数字进行KNN分类之前是否进行PCA降维将影响训练的效率与精度
维度降低后,效率的确提高了,但是分类的准确度下降了,它们之间是矛盾的,如何找到平衡?
如何找到降到恰到好处的维度?
可以考虑使用GridSearch 找到针对不同数据集到底降低到哪个维度比较好


实际上,PCA算法为我们提供了一个指标:explained_variance_ratio_ 解释的方差比例
非常方便的找到对于某一个数据集来说保持多少的精度就够?


有两个PCA类的成员值得关注。第一个是explained_variance_(方差贡献绝对值),它代表降维后的各主成分的方差值。
方差值越大,则说明越是重要的主成分。
第二个是explained_variance_ratio_(方差贡献占比),它代表降维后的各主成分的方差值占总方差值的比例,这个比例越大,则越是重要的主成分


针对不同数据集到底降低到哪个维度比较好?
from sklearn.decomposition import PCA
# 先不去降低训练数据的维度
pca = PCA(n_components=X_train.shape[1])
pca.fit(X_train)
# 结果已经从大到小排序了
pca.explained_variance_ratio_


x_plot = [i for i in range(X_train.shape[1])]
# 前面i个方差占比的和
y_plot = [np.sum(pca.explained_variance_ratio_[:i+1]) for i in range(X_train.shape[1])]
plt.plot(x_plot, y_plot)
plt.show()


以上的功能已经被scikit-learn中的PCA封装了
pca2 = PCA(n_components=0.95)
pca2.fit(X_train)
# 结果已经从大到小排序了
print(pca2.explained_variance_ratio_)
pca2.n_components_






ipynb文件在附件,可提供下载!


视频教程请参考:http://www.ai111.vip/thread-349-1-1.html
东方老师微信:dfy_88888


作者: fglbee    时间: 2019-12-22 16:58
this is good idea
作者: kiko    时间: 2022-11-6 10:37
学习中,支持




欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4