主成分分析(降维)案例介绍
输入数据集共10000个样本,每个样本3个特征,共4个簇,中心坐标为[0,0,0]、[1,1,1]、 [2,2,2]、 [3,3,3]。 x为样本特征,y为样本簇类别。 [关键技术] 主成分分析,调用机器学习库sklearn. decomposition的PCA模型; 生成数据集,调用sklearn.datasets库 的make_ blobs()函数; 训练之后进行标准化、降维、归-化等操作,调用transform()函数; 画3D图,调用mpl_ toolkits. mplot3d的Axes3D()函数。
import numpy as np import matplotlib.pyplot as plt #导入画3d图模块 from npl_toolkits.muplot3d import Axes3D #导入生成数据集模块 from sklearn.datasets import make_blobs #导入PCA模块 from sklearn. decomposition inport PCA #生成数据集:返回x数组维度[0000 3],10000] X,y= make._blobs(n_samples=10000, n_features=3,center=[[3,3,3), [0,0,0),[1,1,1], [2,2, 21],cluster std=[0.2, 0.1, 0.2, 0.2], random_state=9) #显示数据 fig = plt.figure() ax = Axes3D(fig) plt. scatter(X[:, 0], x[;, 1],x[, 2], narker=o, c=r) plt. show()
#主成分分析 # n _components表示保留的特征数 pca = PCA(n_ _components =3) #训练模型 pca. fit(X) # explained. variance_ ratio _,代表降维后的各主成分的方差值占总方差值的比例 #这个比例越大,则越是重要的主成分。 print (pca. explained_ variance_ ratio_ ) #参数explained. variance,代表降维后的各主成分的方差值 #方差值越大,则说明越是重要的主成分。 print (pca. explained variance_ )
可见,投影后三个特征维度的方差比例大约为98.3%:0.8%:0.8%,方差分别为3.78521638、0.03272613、 0.03202212, 投影后第一个特征占了绝大多数的主成分比例。
#降维,从三维降到2维 pca = PCA(n_components =2) pca.fit(X) #进行标准化,降维,归一化等操作 X_new = pca.transform(x)容 plt.scatter(X_new[:,0],X_new[:,1],marker=o,c=b) plt.show()
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
凸优化系列一:什么是最优化算法