机器学习基石 | 关于PLA算法的实现&性能检测

写在开头

本博客内容纯粹用于记录自己所学所得,如有错误,望各位大朋友狠狠指出!

本次内容所使用计算机语言——Python

对机器学习有了解过的人,或多或少都会知道PLA(Perceptron Learning Algorithm)算法。

这可以说是入门时必然会接触到的一个算法,而有效的理解将对于后期的整体学习非常有帮助。

通过一个基础的算法实现,可以让你的逻辑思维得到提升。

 

引入


我们可以试想一些例子,来具体化这个概念,弄清楚其到底可以应用到什么领域。

对于PLA算法,最经典的例子莫过于“信用卡审批”系统。

大家可以根据个人常识作个思考,当银行要决定通过一个客户的信用卡申请时,有什么因素是需要作出考虑的?

年收入?年龄?工龄?亦或是资金状况?通俗地来说,考虑到的方面应该是包含了一切可以衡量申请人的信用情况的因素。

当我们定下了这些衡量的因素,每个因素必定有其正负的影响力,我们可以称之为“权重”。

通过一条计算的公式,例如:

权重1 x 因素1 + 权重2 x 因素2 + ··· + 权重n x 因素n = 信用分数

当信用分数大于阈值时,通过;当信用分数小于阈值时,不通过。

这里我们可以做个简单的变式:

权重1 x 因素1 + 权重2 x 因素2 + ··· + 权重n x 因素n - 阈值 = 某个值

这时的式子其实对于机器来说还不太友好,我将使用一个sign(x)函数(x>0返回1,x<0返回-1),这时的返回值将是机器喜欢的1与-1。

把“某个值”代入x,式子将变为:

sign(权重1 x 因素1 + 权重2 x 因素2 + ··· + 权重n x 因素n - 阈值)

这时的式子还是不太友好,于是,把“-阈值”当作权重0,并乘以一个恒为1的因素0,并令其等于h,式子将变为:

h = sign(权重1 x 因素1 + 权重2 x 因素2 + ··· + 权重n x 因素n + 权重0)

h必定是+1或者-1,我们则称之为“标签值”。

接下来,思路将直接浮现到我们面前。我们可以直观地认为,当“标签值”为正时,这位申请人将能审批通过,同样地,当“标签值”为负时,审批不通过。

这时,PLA算法的作用突显在哪里呢?它将为我们提供一个超平面——可以区分“审批通过者”和“审批不通过者”的平面。

可能到这里,有些人会有这样的疑问:区分开了又如何?有什么用处吗?

大家可以试想一下,当银行面对着十几位顾客时,对各项信用审核进行人工操作其实问题不大,但情况是银行面对的人群数量往往是以万为单位计算的。

当基数过大时,机器学习的能力便体现了出来。对庞大数据的分类、分析等各种操作,大大减少了人工成本,为各种机构的发展提供了准确的方向,减少各种决策时间。(个人观点)

 

主要过程


本次我所使用的数据,是我自己编了个程序直接生成的,而考虑到的因素暂定为两个,这是最为基础的版本而且能让大家有更直观的感觉

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值