
在机器学习之逻辑回归介绍中,我们讨论了逻辑回归的概念以及其算法原理推导。 </p><p><strong>一、逻辑回归的概念</strong></p><p>逻辑回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,经济预测等领域。<strong>逻辑回归从本质来说属于二分类问题,是基于Sigmoid函数(又叫“S型函数”)的有监督二类分类模型。</strong></p><p> </p><p><strong>二、Sigmoid函数</strong></p><p>Sigmoid函数公式为:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f03bc3cb13581.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合' style="visibility: visible; width: 301px;"></p><p> </p><p> </p><p> </p><p> </p><p>其导数形式为:(注意,导数形式在后期会被用到)</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_02' style="visibility: visible; width: 487px;"></p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>Sigmoid函数其图像如下所示,其取值范围被压缩到0到1之间。</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f0425ec.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_03' style="visibility: visible; width: 433px;"></p><p>我们知道有监督分类问题需要有带类别标记的训练样本,<br></p><p>中的 <em>z </em>就对应训练集中某个样本的信息。 而样本信息通常用一系列特征的线性组合来表示,即</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_04' style="visibility: visible; width: 405px;"></p><p> </p><p> </p><p> 其中 <br></p><p> 表示 n 个特征,<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f0e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_05' style="visibility: visible; width: 9px;"></p><p>是每个特征的权重,代表对应特征的重要程度,<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f0e7df5a14482.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_06' style="visibility: visible; width: 16px;"></p><p>是偏移,上式通常被写成向量形式: <br></p><p> (<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f138f6b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_07' style="visibility: visible; width: 16px;"></p><p> 对应的<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f13a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_08' style="visibility: visible; width: 9px;"></p><p>等于1)。那么Sigmoid函数就可以相应地写为如下的形式:<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f13b7f2a63227.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_09' style="visibility: visible; width: 392px;"></p><p>假设我们知道了某个样本对应的特征取值和权重参数,那么只要将其带入上式即可得到一个0到1之间的数,通常认为<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f13d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_10' style="visibility: visible; width: 91px;"></p><p>则属于正类别,反之属于负类别,即这个数其实反映了该样本属于正类别的概率。现在的问题是,我们手上有了训练集,即样本的都是已知的,而模型参数是未知的。我们需要通过训练集来确定未知的值。一旦被确定,每当面临新样本时,我们就可以将其对应的<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f13ed.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_11' style="visibility: visible; width: 10px;"></p><p>扔到<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f140f4d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_12' style="visibility: visible; width: 43px;"></p><p>中,根据结果是否大于0.5,轻松加愉快地得出新样本的类别了。<br></p><p> </p><p><strong>三、逻辑回归为什么要用sigmoid函数而不是用其他呢?</strong></p><p>首先需要了解几个知识点:<strong>A.指数族分布 B.广义线性模型</strong></p><p><strong>A.指数族分布</strong></p><p>指数族分布下面的公式,即:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f142f4a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_13' style="visibility: visible; width: 395px;"></p><p> 其中,η为自然参数,T(y)为充分统计量,通常T(y)=y,α(η)为正则化项。</p><p><strong>B.广义线性模型</strong></p><p>满足下面三个假设的模型成为广义线性模型:</p><p>①<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_14' style="visibility: visible; width: 36px;"></p><p>满足一个以η为参数的指数族分布②给定x,我们目标是预测y的期望值,即<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_15' style="visibility: visible; width: 87px;"></p><p>③<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f1469f0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_16' style="visibility: visible; width: 53px;"></p><p> </p><p>因为逻辑回归<strong>假设数据服从伯努利分布</strong>,我们用一个简单例子来介绍伯努利分布:抛硬币,一枚硬币抛中正面的概率为p,那么反面的概率则为1-p。</p><p>伯努利分布的概率质量函数(PMF)为:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_17' style="visibility: visible; width: 306px;"></p><p> 分段函数比较简单易懂,但是对于后面的推导比较麻烦,于是有:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f149d5ff4055.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_18' style="visibility: visible; width: 418px;"></p><p>对上式进行log操作:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f14b44c094569.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_19' style="visibility: visible; width: 499px;"></p><p>其中,令</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f14d192a70827.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_20' style="visibility: visible; width: 409px;"></p><p>所以可以得出伯努利分布属于指数族分布。</p><p>即伯努利分布满足广义线性模型的第一个假设,下面利用广义线性模型后面两个假设得到:</p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f14e8c3b39555.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_21' style="visibility: visible; width: 526px;"></p><p> </p><p><strong>四、目标函数</strong></p><p> 假设训练集中有 m 个样本,每个样本属于正类别的概率为 <br></p><p>,属于负类别的概率就是 <br></p><p>,在训练过程中,我们应该尽可能地使整个训练集的分类结果与这 m 个样本的类别标记尽可能地一致。换句话说,我们要使训练样本集分类正确的似然函数最大(每个样本相互独立),而我们可以很容易地写出如下的似然函数:<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f1f0a8a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_22' style="visibility: visible; width: 468px;"></p><p>其中<br></p><p>是训练集中第<em> i</em> 个样本已经被标记好的类别,若</p><p>为1.则上式的前半部分起作用,反之后半部分起作用。由于对<br></p><p> 整体求 <br></p><p>,其极值点保持不变,因此<br></p><p>可以简化为:<br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_过拟合_23' style="visibility: visible; width: 626px;"></p><p>接下来的任务是求相应 <br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f386d0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_正则_24' style="visibility: visible; width: 9px;"></p><p> 的值,使得<br></p><p>取最大值。如果对<br></p><p>整体取负号即为Logistic回归的损失函数(loss function),相应地,应该求使<br></p><p>取最小值的 <br></p><p style="text-align:center;"><img src='https://s2.51cto.com/images/blog//_65f91f4784e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184' alt='逻辑回归为什么要用sigmoid函数 知乎 逻辑回归和sigmoid函数_广义线性模型_25' style="visibility: visible; width: 9px;"></p><p>。<br></p><p> </p><p><strong>五、求解过程与正则化</strong></p><p>一般采用梯度下降法对<br></p><p>进行求解,这里不再细说。<br></p><p>在实际应用中,为了防止过拟合,使得模型具有较强的泛化能力,往往还需要在目标函数中加入正则项。在逻辑回归的实际应用中,L1正则应用较为广泛,原因是在面临诸如广告系统等实际应用的场景,特征的维度往往达到百万级甚至上亿,而L1正则会产生稀疏模型,在避免过拟合的同时起到了特征选择的作用。</p><p> </p><p><strong>六、总结</strong></p><p><strong>优点:</strong></p><p>简单易于实现。</p><p>逻辑回归可以输出一个[0,1]之间的浮点数,也就是不仅可以产生分类的类别,同时产生属于该类别的概率。</p><p>逻辑回归是连续可导的,易于最优化求解。</p><p><strong>缺点:</strong></p><p>容易过拟合</p><p>原始的逻辑回归只能处理两分类问题,且必须线性可分。</p><p> </p><p><strong>七、拓展</strong></p><p>为什么逻辑回归使用交叉熵损失函数而不用均方误差? </p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/189745.html