1. 实验简介
什么是感知机?
感知机是一种二分类的线性判别模型。主要采用了分离超平面的概念,其学习策略是极小化误分点到超平面距离,使用的学习算法为随机梯度下降算法。
我们将采用sklearn包中提供的iris数据使用两种方法进行训练及分类。第一种是根据随机梯度下降法编写算法来训练数据,直到找到分离的超平面。第二种将采用sklearn包中的Perceptron(感知机)类实现。使用最经典的鸢尾花数据集: 鸢尾花数据集地址,鸢尾花的特征主要包括萼片长度、萼片宽度、花瓣长度和花瓣宽度,本次实验利用花瓣的长度和宽度来区分山鸢尾和变色鸢尾。
2. 实验原理
感知机的输入是实例的特征向量,输出是实例的类别,分别取值为1和-1。假设感知机的输入空间是X,输出空间是Y,则,由输入空间到输出空间的函数f(x)=sign(wx+b)称为感知机。其中w是权值向量,b是偏置,线性方程wx+b=0对应于特征空间中的一个超平面S,其中w是超平面的法向量,b是超平面的截距,这个超平面将特征空间划分为了两个部分,这两个部分的点分别是两类。
为了找到这个超平面,定义一个损失函数,并将损失函数最小化,将损失函数定义为误分类点到超平面的距离,误分类点xi到超平面S的距离是