《统计学习方法》学习笔记—感知机模型python实现

这篇博客详细介绍了感知机模型,它是一种用于二类分类的线性模型。内容涵盖了感知机的基本概念,包括其作为线性分类器的角色、目的和学习算法。博主讨论了感知机在训练数据线性可分情况下的工作原理,特别是损失函数和梯度下降的学习策略。文章还提到了感知机的对偶形式,并展示了如何用Python实现这一模型。虽然在代码实现动态图保存时遇到了问题,但博主提供了解决方案。
摘要由CSDN通过智能技术生成

感知机


  感知机是二类分类的线形模型,输入为实例的特征向量,输出为实例的类别,取值为-1/+1两种值。
  感知机对应于输入空间的特征向量,将其中的实例划分为正负两类的分离超平面,属于判别模型。
  目的:旨在求出将训练数据进行线形划分的分离超平面。

  • 前提条件:数据集是线形可分类的。(例如:XOR规则就是线形不可分的。)

  • 损失函数:基于无分类的距离超平面的距离和函数。

  • 学习算法:基于损失函数的固定梯度,沿着梯度方向,上升最快,反之负方向下降最快。由于损失函数的非负性,修改w和b,使得逼近损失函数的梯度的负方向,从而使损失函数逐渐逼近于0,来达到划分平面的目的。

#机器学习 感知机原始形式学习代码
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation 
#Data_set=np.array([[3,3,1],[4,3,1],[1,1,-1]])
Data_set=np.array([[3,3,1],[4,3,1],[1,1,-1],[1,2,1],[5,4,1],[4,1,-1],[6,2,-1],[0,3,1]])
#Data_set[1,0:2]
w=np.array([0,0])
b=0
theta=1
history=[]
def ganzhiji(dataset):

    global w,b,theta,history
    s=dataset.shape[0]
    history.append([w,b])
    for i in range(s):
        if(dataset[i,2]*(np.dot(w,dataset[i,0:2])+b)<=0):
            w=w+theta*dataset[i,2]*dataset[i,0:2]
            b=b+theta*data
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值