单层感知器适用于解决线性可分问题,这是前文反复提到的分类问题的一种。简单地说,当平面上的两类数据可以用一条直线(称为决策边界)分开时,就称其为线性可分的,如图6-3所示。在这一节,将以一个简单的线性分类问题为例,介绍感知器的学习算法。
图6-3
这个实例所采用的数据集来自机器学习领域的经典数据集——鸢尾花数据集(Iris数据集)。在各种分类问题中,经常会采用这个数据集作为训练数据和测试数据。相应的数据可从教材的资源平台下载。
下载数据后打开,会发现该数据集包括3类共150条数据,其中每类各含50条数据。这3类数据描述了山鸢尾(iris setosa)、杂色鸢尾(iris versicolour)和弗吉尼亚鸢尾(iris virginica)3种鸢尾花的4个特征属性,分别是花萼长度(Sepal Length)、花萼宽度(Sepal Width)、花瓣长度(Petal Length)和花瓣宽度(Petal Width)。数据形式如表6-1所示。
表6-1
接下来的目标是使用感知器,通过在这个数据集上进行训练,给出一个分类器。分类器根据一个未知类型的鸢尾花数据可以自动识别出它所属的鸢尾种类。
神经网络的学习过程,就是根据训练数据学习合适的连接权重,从而可以使用合适的连接权重来提取正确的类别特征。什么叫作合适的连接权重呢?当然是当一组连接权重可以通过特征属性输出正确的类别时,就是合适的。
为了更简单地说明神经网络的学习法则,接下来只考虑两类鸢尾——山鸢尾和杂色鸢尾,把问题变成一个二分类问题。用-1表示山鸢尾,用1表示杂色鸢尾。每一个输入信息(即每一条数据)包含4个特征属性值和1个类别值。两类数据一共有100条,可以写成
Χ={(x1,C1 ),(x2,C2 ),…,(x100,C100)}