降维算法中的”降维“,指的是降低特征矩阵中特征的数量。降维的目的:一是为了让算法运算更快,效果更好,另一个就是数据可视化。主成分分析(PCA)是机器学习中常用的降维算法,它是利用矩阵分解的原理,将多维特征转化为低维度的综合指标。在降维过程中,能够既减少特征的数量,又保留大部分有效信息。
值得注意的是,之前介绍过的方差过滤等方法,也是降维的手段,但无法去除类似一列是另一列的倍数之类的特征,而PCA却能轻易剔除这些重复特征。
以下,我们以鸢尾花数据集为例,使用主成分分析(PCA)降维后实现分类,并实现可视化。
1、导入数据集
from sklearn.datasets import load_iris iris = load_iris() x = iris['data'] y = iris['target']
2、建模
from sklearn.decomposition import PCA x_dr = PCA(2).fit_transform(x) print(x_dr.shape) #(150,2)
3、可视化
import matplotlib.pyplot as plt colors = ['red', 'green', 'orange'] for (x1,x2),i in zip(x_dr, y): plt.scatter(x1, x2, c=colors[i]) plt.show()
4、KNN分类
from sklearn.neighbors import KNeighborsClassifier as KNN from sklearn.model_selection import cross_val_score score = cross_val_score(KNN(), x_dr, y, cv=10).mean() print(score) #0.96
本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/274
- 下一篇:
- Sklearn特征工程之PCA分析和调参