降维算法中的”降维“,指的是降低特征矩阵中特征的数量。降维的目的:一是为了让算法运算更快,效果更好,另一个就是数据可视化。主成分分析(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://edu.ichenhua.cn/read/274