统计学习方法——感知机(学习笔记)

本文是关于感知机的学习笔记,详细介绍了感知机作为二分类线性模型的原理,包括感知机模型、学习策略和学习算法。通过几何解释和误分类驱动的梯度下降法,阐述了如何寻找将训练数据正确分类的超平面。
摘要由CSDN通过智能技术生成

不用走啦,看得明白的。

感知机介绍

感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值,属于判别模型。
感知机对输入空间(特征空间)将实例分为正负两类的分离超平面,本质上就是在训练集(输入空间)找到一个合适的“ 平面 ”将所有实例进行正确的二类分类。
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行及消化,求得感知机模型。

1.感知机模型

感知机:假设输入空间为X,输出空间为Y,其中Y={+1,-1}。有输入空间到输出空间的如下函数f(x),称为感知机。其中,w和b为感知机模型参数,w为权重值,b为偏置,sign为符号函数。
在这里插入图片描述
感知机的几何解释:线性方程w ⋅ x+b=0,它代表了法向量为w,截距为b的超平面S,这个超平面将特征空间分为两个部分,分别对应正类和负类(+1和-1)。
直观的解释是在输入空间找到一个超平面将实例向量划分为正负两类。说一下个人对超平面的理解,对应于二维空间超平面就是一条直线,对应于三维空间超平面就是一个平面,对于三维以上的空间我们就不好想象了,所以就出现了超平面这个名词;就理解成一个“平面”把训练数据集划分为正负两类。

2.感知机学习策略

感知机学习的目标是求得一个能够将训练集正负实例点完全正确分开的分离超平面,即求出感知机模型参数w、b。
对于正确分类的点:w ⋅ x + b > 0,对应的y值为 +1,即(w ⋅ x + b)* y > 0
w ⋅ x + b < 0,对应的y值为 -1,即(w ⋅ x + b)* y > 0
对于误分类的点:w ⋅ x + b > 0,对应的y值为 -1,即(w ⋅ x + b)* y < 0
w ⋅ x + b < 0,对应的y值为+1,即(w ⋅ x + b)* y < 0
这里损失函数是选择误分类点到超平面S的总距离,|| w ||是w的L2范数。在这里插入图片描述
之所以不考虑分母是因为|| w ||是一个常数,例如(x1,x2)的L2范数是根号内(x12 + x22)。

3.感知机学习算法

感知机学习算法是对上述损失函数进行极小化,求得w和b,使得上述损失函数最小。感知机学习算法是误分类驱动的,可以采用随机梯度下降法。
在这里插入图片描述

这种学习算法直观解释为:初始化一个超平面S,然后不断的移动S向误分类点的一侧移动,直至超平面最终对数据集正确分类。

原始算法

在这里插入图片描述
代码:

import numpy as np

class Perceptron:
    def __init__(self):
        self.weights = None
        self.bias = None
    
    def sign(self,value):
        return 1 if value >=0 else -1
    
    def train(self,data_set,labels):
        lr = 1        #学习率
        data_set = np.array(data_set)
        n = data_set.shape[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值