主成分分析(降维)案例介绍

输入数据集共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()

主成分分析(降维)案例介绍_第1张图片

#主成分分析
# 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()

主成分分析(降维)案例介绍_第2张图片

 

你可能感兴趣的:(机器学习,sklearn,python)