python实现感知器算法,python拟合离散数据
本文主要介绍python离散建模的感知器学习算法。感知器学习算法是支持向量机的基础,支持向量机通过核函数进行非线性分类。支持向量机也是感知器算法的扩展。下面是感知器算法的相关内容,有需要的可以参考一下。
我们将研究一种判别分类方法,在这种方法中,我们直接学习评估g(x)所需的W参数。我们会用感知器来学习算法。
感知器学习算法很容易实现,但是为了节省时间,我在下面给你提供一个实现。这个函数有几个输入:训练数据、训练标签、权重的初始猜测和学习率。注意,对于这两个类,类标签的值必须是1和-1。
它将返回一个元组,其中包含:
1.学习W参数2。执行的迭代次数为3。错误分类样本的数量。花些时间检查代码。如果你不知道每一行是如何工作的,不要着急,只要让自己知道每一行的目的是什么。代码中有一些注释可以帮助你。
定义perce(X,y,w_init,rho,max_iter=1000):
(N,N特性)=X.shape
#通过给每个特征向量加1来增加特征向量。(参见课堂讲稿)
X=np.hstack((X,np.ones((N,1))))
nfeatures=1
w=w_init #初始化重量
iter=0
mis_class=N #从假设所有样本都被错误分类开始
而mis_class 0和iter max_iter:
iter=1
mis_class=0
gradient=NP . zeros(n features)# init将梯度设为0
#循环每个训练样本。
对于范围(N):内的I
#每个错误分类的点都会导致梯度发生变化
如果np.inner(X[i,],w) * y[i]=0:
mis_class=1
渐变=-y[i] * X[i,]
#更新权重向量,为下一次迭代做好准备
#请注意,学习率会随时间衰减(rho/iter)
w -=rho/iter *梯度
返回w,iter,mis_class
解释:
x数据矩阵。每行代表一个单独的样本。
Y-对应于X标签行的整数标签的一维数组必须是1或-1。
W_init-初始权重向量
-标量学习速率
最大迭代次数-最大迭代次数(默认值为1000)
def perce_fast(X,y,w_init,rho,max_iter=10000):
(N,N特性)=X.shape
X=np.hstack((X,np.ones((N,1))))
nfeatures=1
w=w _初始化
iter=0
mis_class=N
yy=np.tile(y,(nfeatures,1))。T
而mis_class 0和iter max_iter:
iter=1
#计算错误分类点的集合
mc=(np.dot(X,w.transpose()) * y)=0
mis_class=np.sum(mc)
#更新权重。注意,学习率随时间衰减(rho/iter)
w -=rho/iter * (np.sum(-yy[mc,] * X[mc,],axis=0))
返回w,iter,np.sum(mc)
高效实现笔记本电脑数据的感知器算法,这个版本的工作速度将提升x100!关于python的用于离散建模的感知器学习算法的这篇文章到此为止。关于python感知器学习算法的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。