在《词袋模型(Bag of Words)实现文本情感分类的详细示例》一文中,对于为什么采用逻辑回归及相关操作,存在一些疑问,因而去做了了解和调研,整理后做个记录,加深对逻辑回归的理解。
一、机器学习中逻辑回归,是判断概率大小的嘛?
逻辑回归主要用于二分类问题,其核心目标就是估计样本属于某一类别的概率。具体来说,逻辑回归通过以下步骤实现这一目标:
-
线性组合
对输入特征 xx 进行线性组合,计算线性模型的输出:
其中 w 是权重向量,b 是偏置项。
-
Sigmoid 函数转换为概率
将线性输出 z 输入到 sigmoid 函数中,得到一个位于 (0, 1) 区间的数值:
这个数值表示样本属于正类别的概率 P(y=1∣x)。
-
判断概率大小
根据计算得到的概率,可以设置一个阈值(通常为 0.5),如果 σ(z)≥0.5 则预测为正类,否则预测为负类。
此外,概率输出还可以反映分类的置信度,概率越接近 0 或 1,分类器对该预测的信心越高。
因此,逻辑回归确实是通过判断输出概率的大小来进行分类决策。它不仅给出类别标签,同时提供了类别的概率估计,帮助我们理解模型的信心程度。
二、逻辑回归为什么不直接预测值?而是引入概率且设置一个阀值,之后再进行判断?
逻辑回归的核心目标是解决二分类问题,其输出需要表达样本属于某一类别的概率,而不是直接输出一个离散的类别标签。这样做有几个原因:
-
概率输出便于表达不确定性
逻辑回归通过对输入特征做线性组合后,再用 sigmoid 函数将结果映射到 0 到 1 之间,从而得到一个概率值。这种概率输出不仅告诉我们最终分类结果,还反映了模型对该预测的信心。例如,一个预测概率为 0.95 表示模型非常确信样本属于正类别,而 0.55 则表示不确定性较高。
-
方便使用统计方法进行参数估计
使用概率输出可以利用最大似然估计(MLE)来求解模型参数。MLE 的推导依赖于构建似然函数,并对参数进行优化,而对数似然函数的最大化能够简化推导过程。如果直接预测 0 或 1,模型的训练和参数优化将失去这种概率模型的统计基础。
-
灵活设置决策阈值
将输出作为概率后,可以根据具体应用场景灵活设定阈值(例如常见的 0.5 阈值),以便更好地平衡假正例和假负例的风险。在某些情况下,可能希望调整阈值来适应不同的业务需求,而直接输出类别标签无法提供这种灵活性。
-
与回归方法的数学一致性
如果直接输出 0 或 1,会使得模型看起来像是一个硬分类器,而逻辑回归实际上是在建构一个连续的概率函数,这使得优化过程和误差函数(如交叉熵损失)的构造更为自然和连续,从而便于使用梯度下降等连续优化算法。
总之,逻辑回归不直接预测离散的类别标签,而是通过预测概率,再结合预设的阈值来进行分类决策。这不仅能够表达模型的不确定性,还使得参数估计和模型训练过程更加科学和灵活。
三、那么对于逻辑回归,阀值一般怎么选取呢 ?
在逻辑回归等概率模型中,我们通常会将模型输出的概率与一个阈值(阀值)比较,从而决定分类结果。阈值的选取没有绝对固定的数值,但常见的方法和考虑因素包括:
-
默认值 0.5
- 当正负样本比例比较平衡时,通常默认将 0.5 作为阈值。如果模型预测的正类概率大于或等于 0.5,则分类为正例,否则为负例。
-
根据业务需求调整
- 在实际应用中,不同场景对假正例和假负例的容忍度不同。例如:
- 在医疗诊断中,为了降低漏诊率(假负例),可能会将阈值设定得较低,让模型更容易判断为正例;
- 在垃圾邮件过滤中,为了避免误将正常邮件标为垃圾邮件(假正例),可能会将阈值设定得较高。
- 在实际应用中,不同场景对假正例和假负例的容忍度不同。例如:
-
通过性能指标选择
- 可以使用 ROC 曲线(接收器操作特征曲线)和 PR 曲线(精确率-召回率曲线)来评估不同阈值下的模型性能。
- 寻找能使某个指标(例如 Youden 指数、F1-score)达到最优的阈值。
- 交叉验证也常用于确定一个最优阈值,从而在训练数据和验证数据上取得较好的平衡。
-
数据分布和类别不平衡问题
- 如果正负样本分布不平衡,直接采用 0.5 可能无法达到最佳效果,此时需要根据样本比例调整阈值,或通过调整类别权重来改善模型表现。
总之,阈值的选取通常结合数据特点、任务需求和性能指标。虽然 0.5 是常见的默认值,但在实际应用中,往往需要通过试验、评估(如 ROC、PR 曲线分析)以及业务背景来确定最合适的阈值。