(三)机器学习——感知机模型(附完整代码)

感知机是这一种二类线性分类模型,其输入实例的特征向量,输出为实例的类别,取+1和-1二值。感知机模型和LR模型(https://blog.csdn.net/u014571489/article/details/83387681 ) 一样都是二分模型,但是目标函数(损失函数)不一样。

感知机解释及定义

在讲怎么构建目标函数之前,先说一下感知机怎么将数据点分为两类。在逻辑回归中是通过激活函数来计算点属于某一类的概率,哪个类的概率大就属于哪一类。感知机也是通过预测值的大小来决定点属于哪一类,不同点在于感知机是通过线性函数来预测,或者是感知机的激活函数就是线性的。很多个线性的感知机就构成了神经网络,这也是为什么感知机被称为神经网络的基础,有兴趣可以去了解一下AI历史
https://blog.csdn.net/sunfoot001/article/details/51126360 )。
在这里插入图片描述
如上图所示,感知机和逻辑回归一样,都是为了得到图中的直线方程来构建线性分类器,这个直线方程就叫做超平面,所有在直线上的点都满足wx+b=0。也叫做超平面。

在这里插入图片描述
有了超平面,通过构建如下的符号函数,wx+b>0时,f(x)=1,否则f(x)=-1.

在这里插入图片描述
该符号函数也就是感知机。

感知机模型的目标函数

有了感知机,剩下要做的就是根据感知机构建目标函数。顺便提一下,逻辑回归是根据激活函数构建的目标函数,这也是感知机和逻辑回归不一样的地方。
接下来就讲讲感知机模型的目标函数的构建思想。假设现有了超平面,现在点可以被分为两类,一类是分类正确的点,一类是分类错误的点,感知机的目标函数就是根据分类错误的点集来计算目标函数,分类正确的点是不算在目标函数内的。感知机的目标函数如图所示:
在这里插入图片描述
其中M就是分类错误的点集,当有错误点存在的时候,目标函数值一定是正整数,当全部分类正确时,目标函数值为0,这也是感知机模型的缺陷,在数据点可二分的前提下,满足目标函数值为0的超平面是有无数个的。其中有个问题需要注意的是,这个模型一定是可收敛的吗?因为M集合是不断变化的。这个问题是可以证明的,看懂证明过程也不难,参照博客(https://blog.csdn.net/weixin_41911765/article/details/81811231 ) ,具体的迭代方法分为感知机的原始形式感知机的对偶形式

感知机的原始形式

在这里插入图片描述
感知机的原始形式,对误分类点只迭代一次。当数据量很大,只有极少数的点分类错误的时候,即使迭代很多次,感知机的原始形式也没办法完全分类正确。

感知机的对偶形式

在这里插入图片描述

最后附上一份感知机原始形式的python3源代码:
https://download.csdn.net/download/u014571489/10771251
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/83793903