1、引言
逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。
2、由来
要说逻辑回归,我们得追溯到线性回归,想必大家对线性回归都有一定的了解,即对于多维空间中存在的样本点,我们用特征的线性组合去拟合空间中点的分布和轨迹。如下图所示:
线性回归
线性回归能对连续值结果进行预测,而现实生活中常见的另外一类问题是,分类问题。最简单的情况是是与否的二分类问题。逻辑回归的核心思想就是,如果线性回归的结果输出是一个连续值,而值的范围是无法限定的,那我们有没有办法把这个结果值映射为可以帮助我们判断的结果呢。而如果输出结果是 (0,1) 的一个概率值,这个问题就很清楚了。我们在数学上找了一圈,还真就找着这样一个简单的函数了,就是很神奇的sigmoid函数(如下):
sigmoid函数
sigmoid函数的图像如下图所示:
sigmoid函数
从函数图上可以看出,函数y=g(z)在z=0的时候取值为1/2,而随着z逐渐变小,函数值趋于0,z逐渐变大的同时函数值逐渐趋于1,而这正是一个概率的范围。
所以我们定义线性回归的预测函数为Y=WTX,那么逻辑回归的输出Y= g(WTX),其中y=g(z)函数正是上述sigmoid函数(或者简单叫做S形函数)。
3、判定边界
我们现在再来看看,为什么逻辑回归能够解决分类问题。这里引入一个概念,叫做判定边界,可以理解为是用以对不同类别的数据分割的边界,边界的两旁应该是不同类别的数据。
在二维空间中,我们举几个判定边界的例子:
判定边界1
判定边界2
判定边界3
上述三幅图中的红绿样本点为不同类别的样本,而我们划出的线,不管是直线、圆或者是曲线,都能比较好地将图中的两类样本分割开来。这就是我们的判定边界,下面我们来看看,逻辑回归是如何根据样本点获得这些判定边界的。
先看第一个例子hθ(x)=g(θ0+θ1X1+θ2X2),其中θ0 ,θ1 ,θ2分别取-3, 1, 1。则当−3+X1+X2≥0时, y = 1; 则X1+X2=3是一个决策边界,图形表示如下,刚好把图上的两类点区分开来:
例1
当hθ(x)更复杂的时候,我们可以得到非线性的决策边界,例如:
决策边界
这时当x12+x22≥1时,我们判定y=1,这时的决策边界是一个圆形,如下图所示:
例2
所以我们发现,理论上说,只要我们的hθ(x)设计足够合理,准确的说是g(θTx)中θTx足够复杂,我们能在不同的情形下,拟合出不同的判定边界,从而把不同的样本点分隔开来。
损失函数和梯度下降
如何不断的修正模型从而使模型达到更好的分类效果,一个普遍的做法就是设计一个损失函数,然后通过梯度下降等方法来使损失函数达到最小。
逻辑回归的损失可以分成两段很直观的理解:
分段损失函数
当y=1时,图像是下面这个样子的,如果预测值很接近于1,那么损失基本为0,如果预测值离1越远,则损失很大:
y=1时损失
类似,y=0时损失函数如下图所示:
y=0时损失
那么,把两段合并起来,我们最终得到了逻辑回归的损失函数:
损失函数
接下来我们就可以通过梯度下降法来修正模型,从而减少损失啦。sigmoid函数又一个很好的性质,sigmoid函数f的导数为f(1-f)。
梯度下降
如果你喜欢我写的文章,可以帮忙给小编点个赞或者加个关注,我一定会互粉的!
如果大家对机器学习感兴趣,欢迎跟小编进行交流,小编微信为sxw2251,加我要写好备注哟!
我的微信
网友评论