机器学习系列专栏
选自 python-machine-learning-book on GitHub
作者:Sebastian Raschka
翻译&整理 by Sam
最近在GitHub上面发现了一个炒鸡赞的项目,果然直接拿过来消化一波,这个项目的内容是关于机器学习的指导,我会挑一些内容来完成下面的一系列文章。
今天我们来讲解的内容是感知器分类算法,本文的结构如下:
什么是感知器分类算法
在Python中实现感知器学习算法
在iris(鸢尾花)数据集上训练一个感知器模型
自适应线性神经元和融合学习
使用梯度下降方法来最小化损失函数
在Python中实现一个自适应的线性神经元
什么是感知器分类算法
设想我们改变逻辑回归算法,“迫使”它只能输出-1或1抑或其他定值。在这种情况下,之前的逻辑函数g就会变成阈值函数sign:
如果我们令假设为hθ(x)=g(θTx)hθ(x)=g(θTx),将其带入之前的迭代法中:
至此我们就得出了感知器学习算法。简单地来说,感知器学习算法是神经网络中的一个概念,单层感知器是最简单的神经网络,输入层和输出层直接相连。
每一个输入端和其上的权值相乘,然后将这些乘积相加得到乘积和,这个结果与阈值相比较(一般为0),若大于阈值输出端就取1,反之,输出端取-1。
初始权重向量W=[0,0,0],更新公式W(i)=W(i)+ΔW(i);ΔW(i)=η*(y-y’)*X(i);
图:单层感知器模型
初始化权重向量W,与输入向量做点乘,将结果与阈值作比较,得到分类结果1或-1。
在Python中实现感知器学习算法
下面直接贴上实现代码:(也可在公众号后台输入“感知器”进行获取ipynb文件)
1import numpy as np
2class Perceptron(object):
3"""Perceptron classifier.
4Parameters
5------------
6eta : float
7 Learning rate (between 0.0 and 1.0)
8n_iter : int
9 Passes over the training dataset.
10Attributes
11-----------
12w_ : 1d-array
13 We