《统计学习方法》-第二章-感知机

来源:互联网 发布:天猫抢购软件 编辑:程序博客网 时间:2024/05/16 08:46

概念

定义

假设输入空间是,输出空间是xy分属这两个空间,由输入空间到输出空间的如下函数:




称为感知机。其中,wb称为感知机模型参数,叫做权值或权值向量,叫做偏置,w·x表示向量wx的内积。Sign是符号函数,即



感知机的几何解释:线性方程



对应特征空间中的一个人超平面S,其中,w法向量,b是截距。超平面将特征空间划分为正、负两个部分。因此,超平面S称为分离超平面


感知机学习策略

数据集的线性可分性



感知机学习策略

为找出这样的超平面,即确定感知机模型参数wb,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。

感知机sign(wx+b)学习的损失函数定义为:


其中,M为误分类点的集合。


感知机学习算法

感知机学习问题转化为求解损失函数式的最优化问题最优化的方法是随机梯度下降法。

原始形式

感知机学习算法是对以下最优化问题的算法。求参数wb,使其极小化的解


算法例子:

Python实现感知机算法代码

import copy # 浅拷贝training_set = [[(3, 3), 1], [(4, 3), 1], [(1, 1), -1]]w = [0, 0]b = 0history = []def update(item):    global w, b, history    w[0] += 1 * item[1] * item[0][0]    w[1] += 1 * item[1] * item[0][1]    b += 1 * item[1]    print(w, b)    history.append([copy.copy(w), b])def cal(item):    res = 0    for i in range(len(item[0])):        res += item[0][i] * w[i]    res += b    res *= item[1]    return resdef check():    flag = False    for item in training_set:        if cal(item) <= 0:            flag = True            update(item)    if not flag:        print("RESULT: w:" + str(w) + "b:"+str(b))    return flagif __name__ == "__main__":    for i in range(1000):        if not check():            break






原创粉丝点击