统计学习方法 第二章 感知机
来源:互联网 发布:手机暖宝宝软件 编辑:程序博客网 时间:2024/06/05 09:13
感知机是二分类的线性分类模型,输入是实例的特征
1 模型
假设输入空间(特征空间)是
2 策略
假设训练数据集是线性可分的。给定训练数据集
感知机
3 算法
3.1 原始形式
梯度下降法
3.2 对偶形式
假设初始值
对应误分类点
4 代码
4.1 原始形式
输入:训练数据集
输出:
(1) 选取初始值
(2) 在训练集中选取数据
(3) 如果
(4) 转至(2),直到训练集中没有误分类点。
4.2 对偶形式
输入:训练数据集
输出:
其中
(1)
(2)在训练集中选取
(3)如果
(4)转至(2)直到没有误分类数据.
import numpy as np"""原始类型的感知器输入:训练数据x,y和eta输出:w,b感知机模型:f(x) = sign(wx+b)"""def perceptron_original (x, y, eta): (m, n) = x.shape w = np.zeros(n) b = 0 ok = True while True: for i in range(m): if y[i]*(np.dot(w,x[i])+b) <= 0: w = w + eta*y[i]*x[i] b = b + eta*y[i] ok = False if not ok: ok = True else: break return w, b# mainarr = np.loadtxt('test.txt', delimiter=',')[m,n]=arr.shape # m是训练数据的条数,n是训练特征数n = n - 1x = arr[:,0:n] # 输入y = arr[:,n] # 输出eta = 1(w, b) = perceptron_original(x, y, eta)print wprint b
import numpy as np"""对偶形式的感知机输入:训练数据x、y,学习率eta输出:a、b"""def perceptron_dual (x, y, eta): (m, n) = x.shape a = np.zeros(m) b = 0 ok = True while True: for i in range(m): w = np.zeros(n) for j in range(m): w += a[j]*y[j]*x[j] if y[i]*(np.dot(w, x[i]) + b) <= 0: a[i] += 1 b += eta*y[i] ok = False if not ok: ok = True else: break return a, b# mainarr = np.loadtxt('test.txt', delimiter=',')[m,n]=arr.shape # m是训练数据的条数,n是训练特征数n = n - 1x = arr[:,0:n] # 输入y = arr[:,n] # 输出eta = 1(w, b) = perceptron_dual(x, y, eta)
0 0
- 李航《统计学习方法》第二章 感知机
- 《统计学习方法》第二章 感知机
- 统计学习方法之第二章感知机
- 统计学习方法 第二章 感知机
- 《统计学习方法》-第二章-感知机
- 统计学习方法-第二章-感知机
- 统计学习方法(第二章)感知机
- 统计学习方法第二章笔记——感知机
- 统计学习方法第二章——感知机
- 统计学习方法笔记--第二章感知机perceptron
- 统计学习方法笔记,第二章笔记, 感知机
- 机器学习(统计学习方法)6【第二章.感知机】
- [统计学习方法]感知机
- 统计学习方法-感知机
- 统计学习方法:感知机
- 统计学习方法---感知机
- 统计学习方法 第2章 感知机
- 统计学习方法笔记,第二章感知机的python代码实现
- java操作MongoDB,采用_id查询
- [python]初探socket
- 快速排序
- 13. Roman to Integer
- 趣谈之回车键的由来 --(不同系统\n\r区别)
- 统计学习方法 第二章 感知机
- JS生成 UUID的四种方法
- Ionic 的 ng-class 在聊天功能上面的巧妙运用
- DMA设备驱动(三)————基于Linux3.4.2的dma设备驱动的简单实现
- springboot项目 部署tomcat
- Android系统启动-SystemServer
- Android 5.0 之SwipeRefreshLayout
- 机器学习中的kNN算法及Matlab实例
- 解决'nmake' 不是内部或外部命令,也不是可运行的程序 或批处理文件。