《机器学习算法与实现 —— Python编程与应用实例》-- 第四贴 逻辑斯蒂回归
本帖最后由 传媒学子 于 2024-7-29 22:09 编辑<p><b>引言:</b></p>
<p>本书第六章讲解了逻辑斯蒂回归。</p>
<p> </p>
<p><b>Logistic函数:</b></p>
<p>罗吉斯蒂克函数,即logistic函数。逻辑函数或逻辑曲线是一种常见的S函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的S形曲线。起初阶段大致是<a href="https://baike.baidu.com/item/%E6%8C%87%E6%95%B0%E5%A2%9E%E9%95%BF/0?fromModule=lemma_inlink" style="color:blue; text-decoration:underline" target="_blank">指数增长</a>;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。</p>
<p>Logistic函数:</p>
<p> </p>
<p> </p>
<p> </p>
<p>从网上看到了很多logistic回归的讲解,但是很少讲到名字的来源,这里搜到了一些介绍。有些将logistic翻译为“逻辑”, 有些讲其翻译为”逻辑斯蒂“,我本人也没有太弄明白,哪一个翻译更合适,故本文按照英文名字来直接引述。</p>
<p> </p>
<p>本书首先讲解了最小二乘法,进而引入梯度下降法,然后讲解了多元线性回归,最终讲解了logistic回归的具体实现。从原理到代码,循序渐进,帮助读者知其然,并知其所以然。</p>
<p> </p>
<p><b>最小二乘法:</b></p>
<p>这个概念从小学一直学到研究生,甚至在工作当中也会接触到这个概念,但是说实话,总是默模模糊糊,不是很清晰。最小二乘法是线性回归模型中最广泛应用的方法。其数学原理,就是通过最小化误差的平方和来找到一组数据的最佳的拟合函数。</p>
<p> </p>
<p>一般直线拟合,大家都能理解,还有曲线拟合,随着拟合曲线的复杂程度,参数也会越来越多,计算和理解起来就麻烦了,很多时候公式中都会有累加符号。</p>
<p> </p>
<p> </p>
<p>因为偏差有正有负,因此需要引入模的概念,进而计算平方比较简便。对于一元二次方程,有2个参数,y=ax+b, 实际点(xi,yi)对于F(a,b) = 所有点的差的平方(yi – axi – b) ^2,学过高数的应该能看懂,这是一个二次函数,存在一个极小值点,且这个极值点存在于导数为0的位置,通过极值分别以a和b求各自的偏导数,找寻各自的极值。</p>
<p>联立方程即可求解a和b.</p>
<p> </p>
<p> </p>
<p> </p>
<p><b>梯度下降法(Gradient Descent):</b></p>
<p>当数据较多或者模型是非线性模型时,或者参数比较多且复杂时,无法直接求出模型参数的解析解。此时,可以尝试通过迭代逐步逼近模型的最优参数,这是机器学习中最常用的一种优化求解方法。</p>
<p> </p>
<p>只需要损失函数的一阶导数,计算相对简单,核心思想:通过当前点的梯度方向寻找新的迭代点,不断迭代,直至找到最优参数。</p>
<p>面临的问题:如何计算梯度?梯度大小(学习率、步长)设多少合适?</p>
<p>聪明的数学家,通过随机梯度下降法和小批量梯度下降法可以优化梯度下降法的一些缺陷,但随之带来了新的问题,计算的并行度以及批量大小的设定等。</p>
<p> </p>
<p><b>多元线性回归:</b></p>
<p>顾名思义,是指多个自变量与因变量之前依然满足线性关系的数据回归模型。</p>
<p>损失函数的设定,以及对每个参数求偏导数,计算相关参数。</p>
<p> </p>
<p><b>Logistic回归的原理:</b></p>
<p>最小二乘法可以对线性模型进行回归,但不能有效解决离散的分类问题。在线性回归模型的基础上,使用Sigmoid函数,将线性模型的结果压缩到之间,使其拥有概率意义,它可以将任意输入映射到区间,实现值到概率转换。</p>
<p> </p>
<p><b>最小二乘线性模型用矩阵的表达为:</b></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><b>Logistic regression的优缺点:</b></p>
<p>优点:计算代价不高,易于理解和实现</p>
<p>缺点:容易欠拟合,分类精度不高</p>
<p><b>应用场景</b></p>
<p>逻辑回归主要是解决二分类问题,比如</p>
<p>1.区分是否是垃圾邮件</p>
<p>2.银行判断是否给用户办信用卡</p>
<p> </p>
<p><strong>总结:</strong></p>
<p>机器学习的基础原理 数学-> 建模 ->数据处理->编程 ->解决问题, 编程只是最为普通的一步,如何建模,才是机器学习、人工智能的核心。</p>
页:
[1]