** 主成分分析(Principal Component Analysis,PCA )是最常用的 一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数 据压缩和预处理等。
PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为 主成分。主成分能够尽可能保留原始数据的信息。**
主成分分析原理:
算法过程:
代码:
In [28]: import matplotlib.pyplot as plt
In [29]: from sklearn.decomposition import PCA
In [30]: from sklearn.datasets import load_iris
In [31]: data = load_iris()
In [32]: y = data.target
In [33]: x = data.data
In [34]: pca = PCA(n_components = 2)
In [35]: reduced_x = pca.fit_transform(x)
In [36]: red_x, red_y = [], []
In [37]: blue_x, blue_y = [], []
In [38]: green_x, green_y = [], []
In [41]: for i in range(len(reduced_x)):
...: if y[i] == 0:
...: red_x.append(reduced_x[i][0])
...: red_y.append(reduced_x[i][1])
...: if y[i] == 1:
...: blue_x.append(reduced_x[i][0])
...: blue_y.append(reduced_x[i][1])
...: if y[i] == 2:
...: green_x.append(reduced_x[i][0])
...: green_y.append(reduced_x[i][1])
...:
In [48]: plt.scatter(red_x, red_y, c = 'r')
Out[48]: <matplotlib.collections.PathCollection at 0x121097278>
In [49]: plt.scatter(red_x, red_y, c = 'r')
Out[49]: <matplotlib.collections.PathCollection at 0x120f21cf8>
In [50]: plt.scatter(blue_x, blue_y, c = 'b', marker = 'x')
Out[50]: <matplotlib.collections.PathCollection at 0x120f54eb8>
In [51]: plt.scatter(green_x, green_y, c = 'g', marker = 'D')
Out[51]: <matplotlib.collections.PathCollection at 0x120f6d0b8>