python实现感知器算法,python拟合离散数据

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: