东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2691|回复: 2
打印 上一主题 下一主题

[学习笔记] 21、高维数据利用PCA降维实操

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
跳转到指定楼层
楼主
发表于 2019-10-12 20:28:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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

01.png (190.39 KB, 下载次数: 150)

01.png

02.png (105.73 KB, 下载次数: 143)

02.png

03.png (98.08 KB, 下载次数: 154)

03.png

04.png (53.43 KB, 下载次数: 147)

04.png

05.png (67.54 KB, 下载次数: 150)

05.png

06.png (56.56 KB, 下载次数: 147)

06.png

PCA降维实现(重要).ipynb

143.67 KB, 阅读权限: 10, 下载次数: 1

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

96

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
沙发
发表于 2019-12-22 16:58:14 | 只看该作者
this is good idea
回复

使用道具 举报

0

主题

249

帖子

500

积分

高级会员

Rank: 4

积分
500
板凳
发表于 2022-11-6 10:37:10 | 只看该作者
学习中,支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-6 04:04 , Processed in 0.192893 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表