机器学习-逻辑回归

352 阅读8分钟

逻辑回归总结:

首先,逻辑回归虽然名字里有“回归”,但其实是一种分类算法,对吧?我记得线性回归是用来预测连续值的,而逻辑回归则是用来处理分类问题,尤其是二分类问题。比如判断一封邮件是不是垃圾邮件,或者一个肿瘤是良性还是恶性之类的。

那逻辑回归是怎么工作的呢?线性回归的公式是y = wx + b,这里的w是权重,b是偏置项。但是逻辑回归的输出应该是概率,所以需要把线性回归的结果映射到0到1之间。这时候应该用到一个激活函数,常见的应该是sigmoid函数。sigmoid函数的公式是σ(z)=1/(1+ez) σ(z) = 1/(1 + e^{-z} ),这样无论z是什么值,σ(z)都会在0到1之间。所以逻辑回归的模型应该是把线性部分的结果通过sigmoid函数转换,得到概率p = σ(wx + b)。

接下来,逻辑回归的损失函数应该是什么呢?在线性回归中,用的是均方误差,但逻辑回归处理的是分类问题,所以可能需要不同的损失函数。记得交叉熵损失函数,或者对数损失函数。具体来说,对于二分类问题,损失函数应该是这样的:当真实标签y=1时,损失是-log(p),当y=0时,损失是-log(1-p)。这样,预测错误的时候损失会更大,对吧?所以整体的损失函数应该是所有样本的损失的平均,也就是L=1/NΣ[yilog(pi)+(1yi)log(1pi)]L = -1/N * Σ [y_i log(p_i) + (1 - y_i) log(1 - p_i)]。这个函数通常被称为二元交叉熵损失函数。

那优化这个损失函数的方法是什么呢?通常是用梯度下降法,通过计算损失函数对权重w和偏置b的梯度,然后逐步调整参数来最小化损失。梯度下降的过程可能需要多次迭代,直到损失函数收敛或者达到预设的迭代次数。

逻辑回归的参数求解过程是不是可以通过最大似然估计来理解?对的,因为逻辑回归模型实际上是假设数据服从伯努利分布,然后通过最大化似然函数来找到最优的参数。似然函数的形式应该是 L(w,b)=Π[piyi(1pi)1yi]L(w,b) = Π [p_i^{y_i} (1 - p_i)^{1 - y_i}],取对数之后得到的就是对数似然函数,也就是Σ[yilog(pi)+(1yi)log(1pi)]Σ [y_i log(p_i) + (1 - y_i) log(1 - p_i)],这和之前的交叉熵损失函数其实是相同的,只不过符号相反。所以最大化似然函数等价于最小化交叉熵损失。

另外,逻辑回归的输出是概率,那怎么转换成分类结果呢?通常我们会设置一个阈值,比如0.5。如果预测的概率p >= 0.5,就分类为1,否则分类为0。当然,这个阈值可以根据实际情况调整,比如在需要更高召回率的情况下,可以降低阈值。

关于正则化,逻辑回归也可以加入L1或L2正则化项来防止过拟合。L1正则化会导致稀疏权重,可以用来特征选择,而L2正则化则让权重趋向于较小的值,避免模型过于复杂。正则化项的系数λ控制正则化的强度,λ越大,正则化的影响越强。

在实现逻辑回归时,需要注意数据是否需要标准化。因为逻辑回归使用梯度下降法,如果特征之间的尺度差异很大,可能会导致收敛速度变慢,所以通常建议对特征进行标准化处理,比如使用Z-score标准化或者归一化到[0,1]区间。

还有一个问题是多分类的情况,逻辑回归如何处理?虽然标准的逻辑回归是二分类的,但可以通过一些扩展来处理多分类问题,比如使用“一对多”(OvR)策略,或者“一对一”(OvO)策略。或者使用softmax回归,也就是多项逻辑回归,这其实是逻辑回归在多分类问题上的推广。Softmax函数可以将线性组合的结果转化为多个类别的概率分布。

另外,关于评估逻辑回归模型的性能,常用的指标包括准确率、精确率、召回率、F1分数、ROC曲线和AUC值等。特别是在类别不平衡的情况下,准确率可能不是一个好的指标,这时候需要考虑其他指标,如AUC-ROC。

可能还有一些细节需要注意,比如梯度下降中的学习率选择,太大可能导致震荡,太小则收敛慢;批量梯度下降、随机梯度下降和小批量梯度下降的区别;如何处理缺失值,是否进行特征工程,比如加入多项式特征或者交互项等。

不过,可能还有一些疑问的地方。比如,为什么逻辑回归使用交叉熵损失而不用均方误差?可能的原因是在逻辑回归中,使用均方误差的话,损失函数会非凸,导致优化困难,而交叉熵损失是凸的,容易找到全局最优解。或者是因为交叉熵损失在概率模型下更合理,与最大似然估计一致。

再比如,逻辑回归的决策边界是线性的吗?是的,因为逻辑回归的决策边界是由wx + b = 0定义的,所以是一个线性边界。如果要处理非线性问题,可能需要引入多项式特征或者使用核方法,不过这可能增加模型的复杂度,不如直接使用其他非线性模型如SVM或神经网络。

还有,逻辑回归的优缺点有哪些?优点可能是简单、易于实现,计算效率高,结果具有概率解释,可以用于特征重要性分析。缺点可能就是只能处理线性可分的问题,对于复杂的非线性问题效果不好,需要手动进行特征工程或者使用其他方法。

总结一下,逻辑回归的基本步骤应该是:定义模型(线性部分加sigmoid函数),定义损失函数(交叉熵损失),使用梯度下降优化参数,设置阈值进行分类,评估模型性能,可能需要正则化处理防止过拟合,处理多分类问题需要扩展方法,如softmax或者OvR/OvO。

不过,可能我在这里还有一些理解上的错误或者遗漏,需要进一步确认。比如,sigmoid函数的导数是不是容易计算?是的,σ(z)=σ(z)(1σ(z))σ’(z) = σ(z)(1 - σ(z)),这在计算梯度时会很方便,这也是为什么选择sigmoid的原因之一。另外,逻辑回归的概率输出是否可靠?这取决于模型是否校准,在数据分布变化的情况下可能需要重新校准。

总之,逻辑回归是一个基础的分类模型,虽然简单,但在很多实际问题中仍然有效,尤其是在需要概率输出或可解释性较强的情况下.


逻辑回归是机器学习中用于分类任务的基础模型,尤其适用于二分类问题。以下是逻辑回归的关键点总结:

1. 基本概念

  • 用途:尽管名称中有“回归”,但逻辑回归用于分类,特别是二分类(如判断垃圾邮件、疾病诊断)。
  • 输出:概率值(0到1之间),通过sigmoid函数将线性组合映射到概率空间。

2. 模型结构

  • 线性部分z=wTx+b z=w^Tx+b,其中 w是权重,b 是偏置。
  • Sigmoid函数σ(z)=1/(1+ez) σ(z)=1/(1+e^{−z}),将 zz 转换为概率 P(y=1x) P(y=1∣x)

3. 损失函数

  • 交叉熵损失(对数损失){C57EDB85-E9D0-4C7B-91AF-D8FE1FBF229C}.png

    其中 pi=σ(zi)p_i=σ(z_i)。该函数与最大似然估计一致,优化目标是最大化数据出现的概率。

4. 优化方法

  • 梯度下降:通过计算损失函数对 ww 和 bb 的梯度更新参数: {D38B5DB6-1779-474C-9B49-F531335EB9D6}.png

    Sigmoid的导数  σ(z)=σ(z)(1σ(z))σ′(z)=σ(z)(1−σ(z)) 简化了梯度计算。

5. 分类决策

  • 阈值:通常设为0.5。若 p≥0.5预测为类别1,否则为0。阈值可根据需求调整以平衡精确率与召回率。

6. 正则化

  • 防止过拟合:加入L1或L2正则化项。

    • L1正则化:λw1 λ∥w∥_1促进稀疏性。
    • L2正则化:(λ/2)w22 (λ/{2} )∥w∥^2_2,限制权重大小。

7. 多分类扩展

  • 策略

    • 一对多(OvR) :训练多个二分类器,每个类别作为正类。

    • Softmax回归:直接推广到多类,输出概率分布:

{433F8F94-ED02-4D3B-9B5F-4DA4902EE50A}.png

8. 模型评估

  • 指标:准确率、精确率、召回率、F1分数、ROC-AUC。
  • 类别不平衡:需关注AUC或调整分类阈值。

9. 优缺点

  • 优点

    • 简单高效,计算代价低。
    • 输出概率,可解释性强(权重反映特征重要性)。
  • 缺点

    • 线性决策边界,难以处理非线性问题(需特征工程或核方法)。
    • 对多重共线性和异常值敏感。

10. 实践注意事项

  • 特征缩放:标准化(如Z-score)加速梯度下降收敛。
  • 学习率选择:适当的学习率平衡收敛速度与稳定性。
  • 模型校准:概率输出可能需要校准(如Platt Scaling)。

11. 与其他模型对比

  • 线性回归:输出连续值,无概率解释。
  • 支持向量机(SVM) :可处理非线性(通过核技巧),但输出无概率意义。

逻辑回归作为入门模型,为理解更复杂算法(如神经网络)奠定了基础,适用于需要快速部署和解释性的场景。