机器学习实战(7):logistic 回归

大家好!我是MPIG的快乐老男孩杨浦,今天我为大家介绍Logistic 回归。

这会是激动人心的一章,因为我们将首次接触到最优化算法。仔细想想就会发现,其实我们日常生活中遇到过很多最优化问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设计发动机使得油耗最少而功率最大?可见,最优化的作用十分强大。接下来,我们介绍几个最优化算法,并利用它们训练出一个非线性函数用于分类。

假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归。利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。这里的“回归”一词源于最佳拟合,表示要找到最佳拟合参数集,其背后的数学分析将在下一部分介绍。训练分类器时的做法就是寻找最佳拟合参数,使用的是最优化算法。

我们想要的函数应该是,既能接受所有有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出0或1。因此我们引入Sigmoid Function。

分类器的输入和最佳系数:

有了这样的分类模型之后,我们需要使用一个最优化算法求得W,在这里向大家介绍梯度上升算法。梯度上升法基于的思想是:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为∇,则函数 f(x,y) 的梯度由下式表示:

梯度上升算法在每次更新回归系数时都需要遍历整个数据集,该方法在处理100个左右的数据集时尚可,但如果有数十亿样本和成千上万的特征,那么该方法的计算复杂度就太高了。一种改进方法是一次仅用一个样本点来更新回归系数,该方法称为随机梯度上升算法。由于可以在新样本到来时对分类器进行增量式更新,因而随机梯度上升算法是一个在线学习算法。与“在线学习”相对应,一次处理所有数据被称作是“批处理”。

采用这种随机梯度上升算法,随着迭代次数增加,权值系数趋于收敛。

但是每个参数都有大的波动,产生这种现象的原因是存在一些不能正确分类的样本点(数据集并非线性可分),在每次迭代时会引发系数的剧烈改变。我们期望算法能避免来回波动,从而收敛到某个值。另外,收敛速度也需要加快。于是我们引入改进的随机梯度上升算法:

可以看到,迭代次数明显减少,且波动变小。同时,本章还在最后引入了从疝气病症预测病马的死亡率的例子,大家想要细致的学习,就打开下面的视频吧!

想获取本presentation的对应文稿和代码,可以点击如下链接下载:

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

扫码关注云+社区

领取腾讯云代金券