# coding: utf-8

#使用PCA(principal component analysis主成分分析法)减少系统的维数( 因为以上四个测量数据减少到三个后,就可以使用3D散点图更好的描述)
#PCA可以保留足以描述各数据点特征的信息,其中新生成的各维叫主成分.
#scikit-learn库中的fit_transform()函数就是用来降维处理的. 
#PCA对象简介 :  http://blog.csdn.net/u012102306/article/details/52294726
import matplotlib.pyplot as plt
#3D散点图
from mpl_toolkits.mplot3d import Axes3D
#数据集
from sklearn import datasets
#PCA对象
from sklearn.decomposition import PCA

#中文显示
import matplotlib.font_manager as fm
#mac中的字体问题请看: https://zhidao.baidu.com/question/161361596.html
myfont = fm.FontProperties(fname='/Library/Fonts/Xingkai.ttc')
#加载数据
iris=datasets.load_iris()
#取出花的种类
species=iris.target
#执行PCA降维处理
x_reduced=PCA(n_components=3).fit_transform(iris.data)
#绘制3D散点图
fig=plt.figure()
ax=Axes3D(fig)
ax.set_title(u"PCA降维后的数据",size=14,fontproperties=myfont)
ax.scatter(x_reduced[:,0],x_reduced[:,1],x_reduced[:,2],c=species)
ax.set_xlabel(u"第一特征向量",fontproperties=myfont)
ax.set_ylabel(u"第二特征向量",fontproperties=myfont)
ax.set_zlabel(u"第三特征向量",fontproperties=myfont)
ax.w_xaxis.set_ticklabels(())
ax.w_yaxis.set_ticklabels(())
ax.w_zaxis.set_ticklabels(())

#将图表保存为png图片, 注意这句话必须在plot()之后,否则将得到一个空白图片
plt.savefig('python_8_3_鸢尾花分类预测_PCA降维后显示.png')

plt.show()

推荐内容
Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐