Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数据,每条记录都有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa,iris-versicolour,iris-virginica)中的哪一品种。
据说在现实中,这三种花的基本判别依据其实是种子(因为花瓣非常容易枯萎)。
iris.info()
先查看数据集各特征列的摘要统计信息:
通过Violinplot和Pointplot,分别从数据分布和斜率,观察各特征与品种之间的关系:
生成各特征之间关系的矩阵图:
AndrewsCurves是一种通过将每个观察映射到函数来可视化多维数据的方法。
下面分别基于花萼和花瓣做线性回归的可视化:
接下来,通过机器学习,以花萼和花瓣的尺寸为根据,预测其品种。
在进行机器学习之前,将数据集拆分为训练和测试数据集。首先,使用标签编码将3种鸢尾花的品种名称转换为分类值(0,1,2)。
#载入特征和标签集X=iris[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]y=iris['Species']#对标签集进行编码encoder=LabelEncoder()y=encoder.fit_transform(y)print(y)[000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222]接着,将数据集以7:3的比例,拆分为训练数据和测试数据:
train_X,test_X,train_y,test_y=train_test_split(X,y,test_size=0.3,random_state=101)print(train_X.shape,train_y.shape,test_X.shape,test_y.shape)