一、问题导入
鸢尾花属于单子叶植物纲,百合目草本植物。生长于中国、日本等温带地区。因花瓣形如鸢鸟尾巴而得名,其属名iris为希腊语“彩虹”之意,俗称为“爱丽丝”,喻指花色丰富。鸢尾还被视为法兰西王国的国花。鸢尾花种类繁多,具有较高的观赏价值。
鸢尾花有山鸢尾和变色鸢尾之分,它们的有着相似的花瓣和色彩。一般来说,变色鸢尾的花瓣较大,山鸢尾的花瓣较小。
山鸢尾和变色鸢尾是怎样区分的呢?我们可以训练一个机器模型,让这个模型来帮助我们。我们知道,机器学习分为监督学习和非监督学习,监督学习又有分类和回归两类问题。区分不同种类的鸢尾花,这是一个分类的问题,分类问题最终的预测结果是一个类目。
我们现在要训练出来一个“分类模型”,只要输入一朵鸢尾花,就能区分这朵鸢尾花是变色鸢尾还是山鸢尾。
训练这个“分类模型”的过程,就是机器学习的过程。接下来,我们就按照机器学习的过程一步一步来建立这个鸢尾花分类的“模型”吧。
二、知识学习
1、鸢尾花数据集
分类任务是一个监督学习的任务,监督学习需要对数据集中的每一条数据进行标注。
要训练这个“模型”就必须先采集鸢尾花的数据。采集到不同种类的鸢尾花之后,对每朵花的花萼长度和宽度、花瓣长度和宽度进行测量,得到了如下的数据集。在这个数据集中,每一条数据代表一个样本,每个样本都标明了其类别。
2、数据预处理
采集到鸢尾花的数据之后,需要对鸢尾花的数据进行处理。为了方便处理,我们用-1代表“山鸢尾花”,1代表“变色鸢尾花”,将这批数据处理后,得到如下表格。
3、特征提取
我们人类往往会根据物体的特征来区分不同种类的事物。比如,有胡须的动物是猫,没有胡须的是狗。像这种可以对事物的某些方面的特点进行刻画的数字或属性,我们称之为特征。
在鸢尾花的分类中,怎样才能得到区分鸢尾花类别的特征呢?经过试验,人们发现,鸢尾花的花瓣长度和宽度可以作为区分不同种类鸢尾花的特征。我们收集到的数据集中包含花萼长度、花萼宽度、花瓣长度和花瓣宽度等特征。在进行鸢尾花分类的时候只需要知道花瓣的长度和宽度就可以。鸢尾花的数据集就变成了下边的表格。
我们将这些数据用坐标系表示如下图:红色块表示山鸢尾花,绿色块表示变色鸢尾花。
我们可以看到,这个图的横坐标轴是从0开始,到6结束;纵坐标轴也是从0开始,到2.0结束。有时候,我们需要将这些数据用一种统一化的方法,处理成一种“正态分布”的数据,这样的处理方法叫做“标准化”。标准化处理后的图如下:图中的横坐标轴和纵坐标轴都变成了“负数--0--正数”的分布状态。
4、特征向量
我们已经采集到了两种鸢尾花的数据,怎样区分这两种鸢尾花呢?我们人类往往会根据物体的特征来区分不同种类的事物。比如,脖子特别长的是长颈鹿,鼻子特别长的是大象。
区分不同种类的鸢尾花也要提取特征,我们提取的特征是鸢尾花的花瓣长度和宽度。那么,这些表示特征的数据怎样用数学的方法表示呢?在数学上,我们用特征向量来表示。
之前已经对数据进行了“标准化”处理,得到了鸢尾花长度和宽度的数据,现在我们对这些数据在数学上用“特征向量”来表示。
我们已经得到了鸢尾花的长度和宽度的数据,但是这个数据在数学上怎么表示呢?我们可以用
花瓣的长度,用
表示花瓣的宽度。为了使用方便,进一步将这两个数字写在括号中,如(