《机器学习实战》读书笔记之五:Logistic回归

  • A+
所属分类:机器学习

概述

Logistic回归算法也是分类算法中的一员。虽然算法名字中有“回归”两个字,但千万不要错以为它是回归算法。它只是基于回归算法,通过回归公式找到最佳拟合的边界线,从而对数据集进行分类。在边界线一侧的为一种分类,在另一侧的为另外一种分类,如下图所示:

《机器学习实战》读书笔记之五:Logistic回归

如图所示,通过回归方法找到最佳拟合的直线a,从而将数据集正确的分类,直线上方的数据为一种类型,直线下方的数据为另外一种类型。

因此,Logistic回归算法的关键就是如何找到最佳拟合的边界线。这是一个最优化的问题,本章将介绍如何解决这个最优化问题。而解决它的做法是通过某种最优化算法,寻找最佳拟合参数,从而找到最佳边界线。

本文将介绍两种最优化算法:

1)梯度上升法

2)随机梯度上升法

Sigmoid函数

从前面的图可以看到,如果我们只使用回归方法,得到的是一条边界线,而仅仅根据边界线是很难对所有输入做出分类判断的。因此,我们需要某种方法使最终计算结果输出为某个具体的类别。比如对于两个分类的情况,我们希望输出0或1,0代表一种类别,1代表另一种类别。

幸运的是,有一个被称为“Sigmoid”的函数具有这样的特性。

Sigmoid函数的计算公式如下:\(\)\(\)

\[g(z) = \frac{1}{1+e^{-z}}\]

Sigmoid函数的图形如下所示:

《机器学习实战》读书笔记之五:Logistic回归

从曲线图可以看出,Sigmoid函数的值始终在0和1之间。当输入z很大时,函数值逼近于1;当输入z很小时,函数值逼近于0;当z等于0时,函数值为0.5。

基于Sigmoid函数的特性,我们可以将回归函数用Sigmoid函数进行包装,将回归函数代入Sigmoid函数中,从而始终得到一个0~1之间的数值。我们可以规定任何大于0.5的数据为分类1,而小于0.5的数据被归为分类0。

这种在回归函数之上应用Sigmoid函数从而进行分类的方法,就被称为“Logistic回归”。

因此,Logistic回归属于分类算法,但它是基于回归方法的。回归方法就是在每个特征上乘以一个回归系数,然后把所有的结果值相加,得到回归值。公式如下:

\[z = w_0x_0 + w_1x_1 + w_2x_2 + ... + w_nx_n\]

\(x_1, x_2, ..., x_n\) 为n个特征,\(x_0\) 并不是一个特征,但是为了回归函数的计算方便,我们一般会加上它,而且值一般固定为1。

\(w_0, w_1, w_2, ..., w_n\)为\(x_0\)以及每个特征的系数(也称为“权重”,即weight)。

如果我们通过训练得到了一组最佳回归系数,那么我们就可以构建一个分类器:对于某个输入数据,我们首先使用上面的回归函数计算得到回归值z,然后将z代入Sigmoid函数得到Sigmoid值,如果Sigmoid值大于0.5,那么该数据就被预测为分类1;如果Sigmoid值小于0.5,该数据就被预测为分类0。

因此,我们的问题就变成了:如何得到最佳回归系数?接下来我们将分别介绍如下两种最优化方法来求解最佳回归系数:

1)梯度上升法

2)随机梯度上升法

梯度上升法

 

随机梯度上升法

weinxin
关注微信
如有疑问,欢迎扫一扫左侧二维码添加微信好友进行咨询,我会第一时间回复您!
yglong

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: