内容简介:感知机(perceptron)是二类分类的线性分类模型,属于判别模型,是支持向量机(SVM)的基础,两者都是属于监督学习的一种分类器,而后者在生物信息学处理分类问题中应用非常广泛(尤其是在生物标记物biomarker研究以及癌症预后等研究中)感知机的学习策略是使基于误分类点到分离超平面的距离(损失函数)极小化,使用的是基于梯度下降法(为了解决存在多解的情况,使得存在唯一解,需要对分离超平面增加约束条件,从而改进为支持向量机,后者不是使用梯度下降法,而是由约束条件构造的拉格朗日函数,求偏导为0求极值点
感知机(perceptron)是二类分类的线性分类模型,属于判别模型,是支持向量机(SVM)的基础,两者都是属于监督学习的一种分类器,而后者在生物信息学处理分类问题中应用非常广泛(尤其是在生物标记物biomarker研究以及癌症预后等研究中)
感知机的学习策略是使基于误分类点到分离超平面的距离(损失函数)极小化,使用的是基于梯度下降法( 理解梯度下降法 )对损失函数的最优化算法(有些使用标准梯度下降来实现);因为使用的是随机梯度下降法,所以极小化过程中随机选择一个误分类点使其梯度下降;当训练数据集是线性可分时,其学习算法是收敛的,但是由于迭代随机选取误分类点而导致存在无穷多个解
为了解决存在多解的情况,使得存在唯一解,需要对分离超平面增加约束条件,从而改进为支持向量机,后者不是使用梯度下降法,而是由约束条件构造的拉格朗日函数,求偏导为0求极值点
但感知机学习算法具有简单而易于实现的优点,但容易造成过拟合,分为原始形式和对偶形式两种,两者都能求解出相同的结果
感知机的损失函数中点到超平面的距离公式的推导(自己高数忘光了,推导不出,只好看别人的了~)可看 点到超平面距离公式 推导
原始形式算法步骤:
* 用0(或者一个较小的输)来初始化权值w 0 和偏置b 0
* 从训练集中选取数据(x i , y i ),计算其公式判断每个点是否被正确分类
* 通过感知器学习规则来更新权值w和偏置b,迭代至所有点都被正确分类,最终获得更新的权重w和偏置b
以<统计学习方法>例2.1数据为例,代码实现如下:
import numpy as np X = np.array([[3,3],[4,3],[1,1]]) y = np.array([[1],[1],[-1]]) class Perceptron(): def __init__(self): self.weight = np.zeros((2,1)) self.bias = 0 self.learning_rate = 1 def fit(self, X, y): a = np.dot(X, self.weight) + self.bias p = np.where(a <= 0)[0] while len(p) > 0: # 随机取误分类点 # index = np.random.choice(p) # 取第一个误分类点(按照书中例子) index = p[0] print(index + 1) self.weight += y[index] * X[index].reshape(2,1) self.bias += y[index] a = y * (np.dot(X, self.weight) + self.bias) p = np.where(a <= 0)[0] return self.weight, self.bias p = Perceptron() trained_w, trained_b = p.fit(X=X, y=y)
如果除了训练集外还有测试集,那么可以根据训练集获得的w和b来预测测试集从而进行分类
另外在查找R中感知机的函数时,见识到了一种搜索R函数的方法:
library(sos) findFn("perceptron")
本文出自于 http://www.bioinfo-scrounger.com 转载请注明出处
以上所述就是小编给大家介绍的《统计学习方法-感知机笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【逼你学习】让自制力提升300%的时间管理方法、学习方法分享
- 学习方法模式续(200319)
- 投机取巧学习方法
- 统计学习方法-决策树笔记
- 《统计学习方法》 ( 李航 ) 读书笔记
- 《统计学习方法》思维导图-中
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
R Cookbook
Paul Teetor / O'Reilly Media / 2011-3-22 / USD 39.99
With more than 200 practical recipes, this book helps you perform data analysis with R quickly and efficiently. The R language provides everything you need to do statistical work, but its structure ca......一起来看看 《R Cookbook》 这本书的介绍吧!