sklearn包中带有一个鸢尾花数据集,每行代表一个样本,每个样本4个特征,分别是萼片长度、宽度,花瓣长度、宽度。样本被分成三类:山鸢尾、变色鸢尾和维吉尼亚鸢尾,分别用数字0、1、2表示。在二维空间中观察鸢尾花的分布聚集,可以选择任意的两个变量。下面程序以花瓣特征为例,观察它们在空间的分布。
程序:鸢尾花二维码图
from sklearn import datasets
iris=datasets.load_iris( ) #从数据库获得数据
data=iris.data #获得自变量数据
target=iris.target #获得样本的分类信息
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[ˈfont.familyˈ]=ˈsans-serifˈ
mpl.rcParams[ˈfont.sans-serifˈ]=[uˈSim Heiˈ]
plt.plot(data[target==0,2],data[target==0,3],ˈb∧ˈ,label=ˈ山鸢尾ˈ)
plt.plot(data[target==1,2],data[target==1,3],ˈr*ˈ,label=ˈ变色鸢尾ˈ)
plt.plot(data[target==2,2],data[target==2,3],ˈgoˈ,label=ˈ维吉尼亚鸢尾ˈ)
plt.legend(loc=ˈupper leftˈ)
plt.show( )
程序运行结果如图8.2.27所示。
在三维空间中观察3种鸢尾花的分布情况的程序如下:
程序:鸢尾花三维图
(www.daowen.com)
图8.2.27 以花瓣特征显示鸢尾花分类
from sklearn import datasets
iris=datasets.load_iris( ) #从数据库获得数据
data=iris.data #获得自变量数据
target=iris.target #获得样本的分类信息
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure( )
ax=Axes3D(fig)
ax.scatter(data[target==0,0],data[target==0,1],data[target==0,3],c=ˈrˈ,marker=ˈoˈ)
ax.scatter(data[target==1,0],data[target==1,1],data[target==1,3],c=ˈbˈ,marker=ˈ∧ˈ)
ax.scatter(data[target==2,0],data[target==2,1],data[target==2,3],c=ˈgˈ,marker=ˈvˈ)
ax.set_xlim(min(data[:,0]),max(data[:,0]))
ax.set_ylim(min(data[:,1]),max(data[:,1]))
ax.set_zlim(min(data[:,3]),max(data[:,3]))
plt.show( )
程序中,分别采用萼片的长、宽,花瓣的宽,在三维空间中观察鸢尾花的分类,程序运行结果如图8.2.28所示。
图8.2.28 鸢尾花在三维空间的分布情况
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。