机器学习算法系列(二)- 口袋算法(Pocket Algorithm)

本文介绍了口袋算法,一种改进的感知器学习算法,用于解决线性不可分数据问题。它通过随机选择错误样本并迭代优化权重,适用于非线性分类。通过实例演示和Python代码实现,展示了算法的工作原理和应用。

阅读本文需要的背景知识点:感知器学习算法、一丢丢编程知识

一、引言

  前面一节我们学习了机器学习算法系列(一)- 感知器学习算法(PLA),该算法可以将数据集完美的分成两种类型,但有一个前提条件就是假定数据集是线性可分的。
  在实际收集数据的过程中,可能因为各种各样的原因(例如反垃圾邮件的例子中收集的邮件单词错误或者是人工分类错误,将不是垃圾邮件的误认为是垃圾邮件)使得数据集中存在错误数据,这时数据集就可能不是线性可分的,感知器学习算法是没有办法停下来的,所以人们又基于感知器学习算法设计了一个可以处理线性不可分的算法——口袋算法(Pocket Algorithm)

二、模型介绍

  口袋算法(Pocket Algorithm)是一个二元分类算法,将一个数据集通过线性组合的方式分成两种类型。如下图所示
0.png
  该算法是在感知器学习算法的基础上做的改进,其核心思想与感知器学习算法的思想一致,也是以错误为驱动,如果当前结果比口袋中的结果好,则将口袋中的结果替换为当前结果,口袋中保持着当前看到最好的结果,最后找到一个相对不错的答案,因此被命名为口袋算法。

三、算法步骤

初始化向量 w,例如 w 初始化为零向量
循环 t = 0,1,2 …
  找到一个随机的错误数据,即 h(x) 与目标值 y 不符
sign ⁡ ( w t T x n ( t ) ) ≠ y n ( t ) \operatorname{sign}\left(w_{t}^{T} x_{n(t)}\right) \neq y_{n(t)} sign(wtTxn(t))

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值