感知机Part2—Python实现

1.前言

上一篇文章对感知机的理论进行了推导与总结,本文将基于Python实现感知机算法的原始形式与对偶形式。开发机器学习应用程序一般包括收集数据、准备输入数据、分析输入数据、训练算法、测试算法、使用算法等步骤,出于学习的目的,本文基于人为给定的样本数据进行算法训练。

2.感知机原始形式

2.1准备数据集

以上给定的数据集共包含6个样本数据(对应平面上的6个点),对应类别为1/-1,每个数据有两个特征;为简化模型,给每个样本新增一个特征x0=1。

2.2实现感知机算法

学习率a赋值为1,权重w赋初值为0;训练过程中,查找是否存在误分类的样本,并基于误分类的样本更新权重w,直到全部样本分类正确,PLA训练结束,返回参数w。

2.3分类可视化

为了直观地展示分类结果,将样本数据以及分割线绘制在二维坐标系中。

2.4测试算法

对算法进行测试得到运行结果,参数w=[-6,1,2],绘制出以下分类效果图:

3.感知机对偶形式

感知机对偶形式将事先计算好样本的内积矩阵(Gram矩阵),在算法执行时可以通过查询Gram矩阵快速计算某个样本是否误分类,使得算法的执行速度得以提高。

因此,与原始形式相比,对偶形式在软件实现上的主要差异在于计算内积矩阵(calc_gram)与参数更新(update)。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180722G1BIC300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券