统计学习方法-感知机笔记

栏目: 数据库 · 发布时间: 5年前

内容简介:感知机(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 转载请注明出处


以上所述就是小编给大家介绍的《统计学习方法-感知机笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++Primer Plus

C++Primer Plus

Stephen Prata、孙建春、韦强 / 孙建春、韦强 / 人民邮电出版社 / 2005-5 / 72.00元

C++ Primer Plus(第五版)中文版,ISBN:9787115134165,作者:(美)Stephen Prata著;孙建春,韦强译一起来看看 《C++Primer Plus》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具