前言

李航的《统计学习方法》和西瓜书是入门机器学习进而到深度学习的经典书籍,笔者是数学专业大二在读,在编程方面仍有许多不足之处,在已经看完相关经典书籍后开始编程实践。因为本人愚钝,且不善编程,所以在实现算法的过程中总有许多冗余操作,但那也不失为一种特色,因为我在编辑代码的时候仅使用简单的操作同时多注释足够详细。希望自己的代码可以帮助到更多和我一样初入机器学习的同学,我们一起进步。本文对感知机算法做出了实现,仅供参考,转载注明出处。

感知机的算法实现

感知机是最基本的,也是最简单的机器学习模型,主要通过线性模型来区分线性可分的数据集
1,数据集的具体内容

2,通过代码实现感知机算法`
代码实现如下:

import numpy as np
import pandas as pd
#仅供参考转载注明出处
#定义sgn函数
def sgn(x):if x > 0:return 1else:return -1#判断是否存在误分类点
def classfy(data, w, b):for i in range(data.shape[0]):xi = data[i, :-1].Tyi = data[i, -1]if(sgn(np.matmul(xi.T, w)+b) != yi):return ireturn -1def perceptran(data, lr):w = np.array([0, 0, 0]).Tb = 0                 #初始化w和bwhile(1):for i in range(data.shape[0]):xi = data[i, :-1].Tyi = data[i, -1]flag = classfy(data, w, b)if(flag == -1):   #判断是否有误分类点return w, belse:w = w + lr*data[flag, -1]*data[flag, :-1].Tb = b + lr*data[flag, -1]  #随机梯度下降方法的实践break#读取数据
csv = pd.read_csv('machineLearning1\perceptron\perceptranData.csv',dtype={'sample': str, 'label': int})
data = np.array(csv)[:, 1:]
w, b = perceptran(data, 1)
print(w, b)

3,代码实现结果

总结

感知机算法是比较古老的算法了,对于线性可分模型具有较好的分类效果,因为只用到了随机梯度下降算法和简单的线性模型,所以相对容易实现

李航统计学习感知机算法实现相关推荐

  1. 李航统计方法——感知机

    李航统计学习方法--感知机 文章目录 李航统计学习方法--感知机 1.数据集的线性可分性 2.感知机学习策略 3.感知机学习算法 3.1感知机学习算法原始形式 3.2感知机学习算法的对偶形式 1.数据 ...

  2. 李航统计学习方法----感知机章节学习笔记以及python代码

    目录 1 感知机模型 2 感知机学习策略 2.1 数据集的线性可分性 2.2 感知机学习策略 3 感知机学习算法 3.1 感知机学习算法的原始形式 3.2 感知机算法的对偶形式 4 感知机算法pyth ...

  3. 一句话简单总结李航统计学习法各算法

    K近邻: 选取样本集合中K个距离最近的数据中出现次数最多的分类,作为新数据的分类 native  bayes :利用训练数据计算类的先验概率P(Y)和特征向量对应每一类的条件概率P(X|Y),计算联合 ...

  4. 统计学习 EM算法 Python实现

    1.EM算法是什么 EM算法可以用于有监督学习,也可以用于无监督学习.这个算法是根据观测结果求得对含有隐变量的模型的参数的估计.包含E步骤和M步,E步是求期望,M步是求极大似然估计,极大参数估计是对模 ...

  5. 李航统计学习方法EM算法三枚硬币例子Q函数推导

    具体推导如下: 上面推导省略了第i次迭代的i的标记 当得到上式以后,可以参考 http://www.cnblogs.com/Determined22/p/5776791.html 来继续一下推导 当然 ...

  6. 统计学习 势函数算法

    [势函数] 在线性分类中,还包括一种势函数的判别方法,其来源于等势线.等高线的概念.对于两类可分问题,其中属于的占据一个高山及其周围区域:而属于的占据一个低谷及其区域.那么其中存在一条等高线,高于该等 ...

  7. 【李航统计学习方法】感知机模型

    目录 一.感知机模型 二.感知机的学习策略 三.感知机学习算法 感知机算法的原始形式 感知机模型的对偶形式 参考文献 本章节根据统计学习方法,分为模型.策略.算法三个方面来介绍感知机模型. 首先介绍感 ...

  8. 统计学习三要素 模型+策略+算法

    统计学习方法都是由模型. 策略和算法构成的. 即统计学习方法由三要素构成, 可以简单地表示为:方法=模型+策略+算法 模型 统计学习首要考虑的问题是学习什么样的模型. 在监督学习过程中, 模型就是所要 ...

  9. 统计学习笔记(1)——统计学习方法概论

    1.统计学习 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称统计机器学习.统计学习是数据驱动的学科.统计学习是一门概率论.统计学.信息论.计算理论.最优化理 ...

最新文章

  1. 外包:卡卡软件简要思路
  2. linux版的lcx
  3. Boost asio 定时器
  4. 教你从0到1搭建秒杀系统-防超卖
  5. Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销
  6. sunspot 查询语法
  7. C++回调函数(callback)的使用
  8. hasOwnProperty和isPrototypeOf
  9. DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)
  10. linux中存放着内核和引导程序的是,Linux操作系统 考试题库
  11. ChannelSplitterNode
  12. Python_列表2
  13. 《计算机组成原理》数据传送类指令不包括( ),兰大《计算机组成原理》20秋平时作业1【标准答案】...
  14. android模拟点击滑动,模拟Android的view点击和滑动监听
  15. HTML DOM nodeName nodeValue
  16. Python实现连点器
  17. 小技巧!Win10系统怎样恢复使用Win7中的照片查看器?非常简单!
  18. 城市生活污水处理技术现状及活性炭的应用
  19. 03 ,n 维向量,向量运算,向量组,向量组的线性组合,基,张成空间,向量组的线性相关性 :
  20. 免费公测 标贝声音理解,检测声音性别和年龄

热门文章

  1. ps里面怎么插入流程图_用PS怎么画流程图?
  2. 安卓handler的用法,handler举例
  3. 完整且详细的单链表代码
  4. 怎么样把计算机桌面的图标改小,怎样将电脑桌面图标变小_三招搞定桌面图标太小问题-系统城...
  5. 深入理解JVM学习(b站 张龙视频 P1-P14)
  6. 泛泰A900 刷4.4专用中文TWRP2.7.1.1版 支持自己主动识别手机版本号(全球首创)...
  7. 【软件工程习题(含参考答案)】总复习
  8. ds3617xs 华擎J3455 无线网卡m.2装千兆网卡组成链路聚合
  9. web开发第三方登陆之google+登陆
  10. JS-108~161