![533154ff8d18051951eb1ad6fb24036b.png](https://i-blog.csdnimg.cn/blog_migrate/299a5815579182387edd6aeb154c530c.jpeg)
PCA(Principal Component Analysis)主成分分析法是机器学习中非常重要的方法,主要作用有降维和可视化。PCA的过程除了背后深刻的数学意义外,也有深刻的思路和方法。
1. 准备数据集
本文利用sklearn中的datasets的Iris数据做示范,说明sklearn中的PCA方法。导入数据并对数据做一个概览:
import
将数据做一个分离,分离成训练数据集和测试数据集:
from
2. 利用PCA对数据集进行降维
将按照降维前,降维后的模型训练时间和score来了解PCA的作用
首先不对数据集做处理,直接fit,同时对降维之前的fit过程计时,查看score:
%%
通过sklearn中的PCA对数据集进行降维,查看降维后的运行时间和score:
from
从以上数据来看,时间的运行时间有明显降低,但是准确率不是我们可以接受的:
#通过sklearn.PCA.explaine_variance_ration_来查看刚刚的2个纬度的方差爱解释度:
![cc4a76b4f2c6c7668269c24a9df3d3de.png](https://i-blog.csdnimg.cn/blog_migrate/e414e555b678feda5ddff97b40503e2f.png)
其中sklearn已经有一个封装好的通过方差解释度来确定数据特征数量的超参数。以下按95%的解释度来计算特征数量:
#其中sklearn中已经有封装一个函数
由此可以看到纬度有67减低到28之后,score的降低比较小,但是训练时间降低非常多。
pca
3. PCA在可视化中的应用
虽然降低纬度后会损失信息量,降到二维进行可视化,是一个很好的方法:
##将数据集的的前2个特征绘制散点图:
![e9d0e180654683468d0da2870e73cfa7.png](https://i-blog.csdnimg.cn/blog_migrate/8b2902d161deaeb39042b1f0b66f3618.png)
从上图可以看到,对多维度的数据,可以通过降纬后进行可是,让人对很多的数据有一个直观的了解。