python离散建模之感知器学习算法

 更新时间:2022年02月16日 17:14:13   作者:努力奋斗的K崽  
这篇文章主要介绍了python离散建模之感知器学习算法,感知机学习算法是支持向量机的基础,支持向量机通过核函数进行非线性分类,支持向量机也是感知机算法的延伸,下面就来介绍感知算法的相关内容,需要的小伙伴可以参考一下

我们将研究一种判别式分类方法,其中直接学习评估 g(x)所需的 w 参数。我们将使用感知器学习算法。
感知器学习算法很容易实现,但为了节省时间,我在下面为您提供了一个实现。该函数有几个输入:训练数据、训练标签、对权重的初始猜测和学习率。注意,对于这两个类,类标签的值必须为+1和-1。

它将返回一个元组,其中包含:

  • 1.学习w参数
  • 2.执行的迭代次数
  • 3.错误分类的样本数

花些时间检查代码。如果不清楚每一行是如何工作的,不要担心,只要让你自己知道每一行的目的是什么就可以了。代码中有一些注释可以帮助大家。

def perce(X, y, w_init, rho, max_iter=1000):
    
    (N, nfeatures) = X.shape

    # Augment the feature vectors by adding a 1 to each one. (see lecture notes)
    X = np.hstack((X, np.ones((N, 1))))
    nfeatures += 1

    w = w_init  # initialise weights
    iter = 0
    mis_class = N  # start by assuming all samples are misclassified

    while mis_class > 0 and iter < max_iter:
        iter += 1
        mis_class = 0
        gradient = np.zeros(nfeatures)  # initaliase the gradients to 0

        # loop over every training sample.
        for i in range(N):
            # each misclassified point will cause the gradient to change
            if np.inner(X[i, :], w) * y[i] <= 0:
                mis_class += 1
                gradient += -y[i] * X[i, :]
        # update the weight vector ready for the next iteration
        # Note, also that the learning rate decays over time (rho/iter)
        w -= rho / iter * gradient

    return w, iter, mis_class

解释:

X-数据矩阵。每行代表一个单独的样本
y-与X-标签行对应的整数类标签的一维数组必须为+1或-1
w_init-初始权重向量
rho-标量学习率
最大迭代次数-最大迭代次数(默认为1000)

def perce_fast(X, y, w_init, rho, max_iter=10000):
  
    (N, nfeatures) = X.shape
    X = np.hstack((X, np.ones((N, 1))))
    nfeatures += 1
    w = w_init
    iter = 0
    mis_class = N
    yy = np.tile(y, (nfeatures, 1)).T
    while mis_class > 0 and iter < max_iter:
        iter += 1
        # Compute set of misclassified points
        mc = (np.dot(X, w.transpose()) * y) <= 0
        mis_class = np.sum(mc)
        # Update weights. Note, the learning rate decays over time (rho/iter)
        w -= rho / iter * (np.sum(-yy[mc, :] * X[mc, :], axis=0))
    return w, iter, np.sum(mc)
  • 感知器算法的高效实现
  • 对于笔记本电脑数据,此版本的工作速度将提高x100!

到此这篇关于python离散建模之感知器学习算法的文章就介绍到这了,更多相关python感知器学习算法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用matplotlib绘制雷达图

    python使用matplotlib绘制雷达图

    这篇文章主要为大家详细介绍了python使用matplotlib绘制雷达图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python学习之迭代器详解

    Python学习之迭代器详解

    这篇文章主要介绍了Python中的一个新的概念,那就是迭代器 。迭代器的使用可以帮助我们提升代码的性能,接下来让我们深入了解一下迭代器吧
    2022-04-04
  • python exit出错原因整理

    python exit出错原因整理

    这篇文章主要介绍了python exit出错原因整理,有需要的朋友们可以跟着参考学习下。
    2020-08-08
  • Django后端接收嵌套Json数据及解析详解

    Django后端接收嵌套Json数据及解析详解

    这篇文章主要介绍了Django后端接收嵌套Json数据及解析详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python实现自动签到脚本功能

    Python实现自动签到脚本功能

    这篇文章主要介绍了Python实现自动签到脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • python中如何调用ansys

    python中如何调用ansys

    这篇文章主要介绍了python中如何调用ansys问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python 获取 datax 执行结果保存到数据库的方法

    Python 获取 datax 执行结果保存到数据库的方法

    今天小编就为大家分享一篇Python 获取 datax 执行结果保存到数据库的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Jupyter Notebook 实现正常显示中文和负号

    Jupyter Notebook 实现正常显示中文和负号

    这篇文章主要介绍了Jupyter Notebook 实现正常显示中文和负号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python接口开发实现步骤详解

    Python接口开发实现步骤详解

    这篇文章主要介绍了Python接口开发实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python实现本地缓存的几种方法小结

    Python实现本地缓存的几种方法小结

    缓存是一种常见的技术,用于存储重复请求的结果,Python 作为一种灵活的编程语言,提供了多种实现本地缓存的方法,本文将探讨 Python 中实现本地缓存的几种策略,并提供具体的代码示例,感兴趣的小伙伴跟着小编一起来看看吧
    2024-07-07

最新评论