原理不多描述,直接上代码

原始形式

import numpy as npdef perceptron(x_arr,y_arr,eta = 1):data_mat = np.mat(x_arr)label_mat = np.mat(y_arr).Tm,n = np.shape(data_mat)w = np.zeros((n,1))b = 0wrong_flag = Truewhile wrong_flag:count = 0for i in range(m):cal = np.sum(label_mat[i] * (w.T * data_mat[i].T + b))if cal <= 0:w = w + eta * (label_mat[i] * data_mat[i]).Tb = b + eta * label_mat[i]count += 1if count == 0:wrong_flag = Falsereturn w,b

用书上的实例点测试(3,3),(4,3),(1,1),对应的y值为1,1,-1,结果得到w = [1,1].T,b = -3

关于对偶形式,我的理解就是把w用原始点通过线性组合表示出来。
对偶形式:

import numpy as npdef perceptron_dual(x_arr,y_arr,eta = 1):data_mat = np.mat(x_arr)label_mat = np.mat(y_arr).Tm,n = np.shape(data_mat)#Gram矩阵gram = data_mat * data_mat.Talpha = np.zeros((m,1))b = 0wrong_flag = Truewhile wrong_flag:  count = 0for i in range(m):cal = np.sum(label_mat[i] * (np.multiply(alpha,label_mat).T * gram[i].T + b))          if cal <= 0:alpha[i] = alpha[i] + etab = b + eta * label_mat[i]count += 1if count == 0:wrong_flag = Falsereturn alpha,b

同样用上面的实例点进行测试,可以得到alpha = [2,0,5].T,b = -3

统计学习方法 第二章 感知机相关推荐

  1. 统计学习方法第二章作业:感知机模型原始形式与对偶形式代码实现

    原始形式实现 import numpy as np import matplotlib.pyplot as pltclass Perceptron_orginal:def __init__(self, ...

  2. 统计机器学习第二章 感知机

    对于线性方程w*x+b = 0 对应于空间的一个超平面S,其中w是超平面的法向量,b是超平面的截距.超平面将空间划分为两个部分,位于平面两边的点分属于正负两类. 前提:数据线性可分,可以找的一个超平面 ...

  3. 统计学习方法-第二章课后习题答案整理

    2.1Minsky和Papert指出: 感知机因为是线性模型, 所以不能表示复杂的函数,如异或. 验证感知机为什么不能表示异或 参考链接: https://blog.csdn.net/yangfeis ...

  4. 机器学习理论《统计学习方法》学习笔记:第二章 感知机

    <统计学习方法>学习笔记:第二章 感知机 2 感知机 2.1 感知机模型 2.2 感知机学习策略 2.2.1 数据的线性可分性 2.2.2 感知机学习策略 2.3 感知机学习算法 2.3. ...

  5. 统计学习方法笔记第二章-感知机

    统计学习方法笔记第二章-感知机 2.1 感知机模型 2.2感知机学习策略 2.2.1数据集的线性可分型 2.2.2感知机学习策略 2.3感知机学习算法 2.3.1感知机算法的原始形式 2.3.2算法的 ...

  6. 统计学习方法 第一章 学习心得

    统计学习方法 第一章 学习心得 以下可能有不当之处,请各位朋友停步指正,先谢过各位. 上一帖子说道,统计学习方法的三要素: 模型.策略.算法. 模型:模型的假设空间 策略:模型的选择准则,即:定义最优 ...

  7. 【统计学习方法笔记】——第二章 感知机

    目录 前言 一.感知机模型 1.1 定义 1.2 几何解释 二. 感知机学习策略 2.1 数据集的线性可分 2.2 感知机学习策略 三.感知机学习算法 3.1 感知机学习算法的原始形式 3.2 算法的 ...

  8. 《统计学习方法第二版》学习笔记2——感知机

    第2章 感知机 目录 第2章 感知机 前言 1 理论部分 1.1 感知机模型 1.2 感知机学习策略 1.3 感知机算法 1.3.1 原始形式算法 1.3.2 对偶形式算法 2 代码部分 2.1 Pe ...

  9. 《统计学习方法第二版》学习笔记1——概论

    第1章 统计学习及监督学习概率论 目录 第1章 统计学习及监督学习概率论 前言 1 理论部分 1.1 统计学习 1.2 统计学习的分类 1.3 统计学习方法三要素 1.4 模型评估与模型选择 1.5 ...

最新文章

  1. python字典相同key的值怎么分别取出_python字典值排序并取出前n个key值的方法
  2. go语言学习(3)面向对象,结构体和方法
  3. java在注解中绑定方法参数的解决方案
  4. 3w最简单led灯电路图_行业内幕揭秘:LED灯没有你想的那么简单!
  5. 设计模式大纲整理——编目、分类、选择与使用
  6. [js] js源代码压缩都有哪些方法?它们的压缩原理分别是什么
  7. gazebo 直接获取传感器数据_【ROS-Gazebo】IMU插件使用与数据采集——以四足机器人pigot为例...
  8. mybatis,mysql,datasource,dpcb连接池的关系
  9. 我的世界服务器传送系统,我的世界多人服务器任何人都没权限了 不能回主城 不能传送 等等...
  10. js获取el表达式的值_Vue.js
  11. PowerShell实现“机器人定时在企业微信群中发送消息”功能(下)
  12. java学习之自定义异常
  13. Linux Oracle卸载步骤
  14. Vue通过render渲染$Notice
  15. dubbo源码导入eclipse
  16. JavaScriptJQuery_jQuery选择器
  17. excel转java 常量_【转】八种常见Excel错误提示及解决方法
  18. 线性代数(五)向量空间——向量空间的基 维数 内积 基的规范正交化
  19. 群晖docker下载失败_支持自动下载的 人人影视 客户端
  20. 头皮脂溢性皮炎推荐联合治疗:采乐50ml+希尔生100g(请看详情页)

热门文章

  1. 微信小程序上传图片后 开发者工具自动刷新问题
  2. 一个网工的十年奋斗史 - 移民篇
  3. Unity的UGUI用TexturePacker全自动打图集,包括九宫格切图信息
  4. Python将单一数字标签进行one-hot编码
  5. spring boot整合JDBC
  6. 搞懂redux一篇就够了
  7. Java变量概述与使用
  8. 用计算机弹的数字,在计算器上弹两只老虎是用那几个数字
  9. 怎样更改计算机文件名,电脑如何批量修改文件名|批量修改文件名的几个小方法...
  10. 2016教师节微信祝福语大全