机器学习算法:逻辑回归

1. 基本概念

定义:

逻辑回归(Logistic Regression)是一种用于解决二分类问题的监督学习算法,通过概率预测样本属于某一类别的可能性。

  • 核心特点:输出是概率值(0~1),通过阈值(如0.5)转换为类别标签。
  • 注意:名字虽含"回归",但实际是分类算法

数学形式:

  • 使用 Sigmoid函数 将线性回归结果映射到概率: P(y=1) = 1 / (1 + e^(-z)),其中 z = w₁x₁ + w₂x₂ + ... + b
  • Sigmoid函数:将任意实数压缩到(0,1),如图:

2. 核心原理

损失函数:交叉熵损失(Log Loss)

衡量预测概率与真实标签的差异: Loss = - [y_true * log(y_pred) + (1 - y_true) * log(1 - y_pred)] 目标是最小化总损失。

优化方法:

  • 梯度下降(与线性回归类似,但需计算对数概率的梯度)。
  • 牛顿法、拟牛顿法(如L-BFGS)。

评估指标:

  • 准确率(Accuracy):正确分类的比例。
  • 精确率(Precision):预测为正的样本中真实正类的比例。
  • 召回率(Recall):真实正类中被正确预测的比例。
  • ROC-AUC:综合衡量分类性能的曲线下面积。

3. 实际生产中的例子

案例1:广告点击率预测(CTR预估)

  • 场景:互联网广告平台预测用户是否会点击广告。
  • 输入特征:用户历史行为、广告内容、上下文信息(如时间、设备)。
  • 输出:点击概率(0~1)。
  • 应用:根据概率对广告排序,优先展示高点击率广告。

案例2:金融风控(贷款违约预测)

  • 场景:银行判断客户是否有违约风险。
  • 输入特征:收入、信用评分、负债比、历史还款记录。
  • 输出:违约概率。
  • 应用:若概率>阈值(如0.7),则拒绝贷款申请。

案例3:医疗诊断(疾病预测)

  • 场景:根据患者检查结果预测是否患病。
  • 输入特征:年龄、血压、血糖、胆固醇指标。
  • 输出:患病概率。
  • 应用:辅助医生快速筛查高风险患者。

案例4:垃圾邮件分类

  • 场景:自动过滤垃圾邮件。
  • 输入特征:邮件文本的词频、发件人信誉、链接数量。
  • 输出:垃圾邮件概率。
  • 应用:若概率>0.5,标记为垃圾邮件。

4. 生产中的改进方法

处理类别不平衡

  • 加权损失函数:对少数类样本赋予更高权重。
  • 过采样(如SMOTE):生成少数类样本。
  • 阈值调整:根据业务需求调整分类阈值(如医疗场景需高召回率)。

正则化(防止过拟合)

  • L1正则化(Lasso):稀疏化权重,自动特征选择。
  • L2正则化(Ridge):限制权重幅度,提升泛化能力。

特征工程

  • 分箱(Binning):将连续特征(如年龄)分段为类别。
  • 交叉特征:组合多个特征(如"收入*负债比")。
  • 文本特征:TF-IDF或词嵌入(Embedding)。

5. 与线性回归的区别

​​维度​​ ​​线性回归​​ ​​逻辑回归​​
​​任务类型​​ 回归(预测连续值) 分类(预测概率/类别)
​​输出范围​​ 任意实数 0~1之间的概率
​​损失函数​​ 均方误差(MSE) 交叉熵损失(Log Loss)
​​激活函数​​ Sigmoid函数

6. 优缺点

优点

  • ✅ 输出为概率,适合需要概率解释的场景(如风控)。
  • 可解释性强,权重反映特征对结果的影响方向(正/负)。
  • ✅ 计算高效,适合大规模数据(如互联网广告的实时预测)。

缺点

  • ❌ 假设特征与对数几率(Log Odds)呈线性关系,难以捕捉复杂非线性关系。
  • ❌ 对特征相关性和异常值敏感。
  • 默认只能处理二分类,多分类需扩展(如One-vs-Rest)

7. 代码工具示例(Python)

8. 适用场景总结

  • 推荐使用逻辑回归:

    • 二分类问题且需要概率输出(如金融风控)。
    • 特征与目标的对数几率呈近似线性关系。
    • 需要快速部署和模型解释性(如医疗诊断报告)。
  • 避免使用:

    • 特征与目标存在复杂非线性关系(需用树模型或神经网络)。
    • 数据维度极高且特征稀疏(如文本分类更适合用朴素贝叶斯或深度学习)。

一句话总结

逻辑回归是"用S形曲线做分类"的经典算法,凭借概率输出和可解释性,在金融、医疗、广告等领域广泛应用。

相关推荐
Funny_AI_LAB3 分钟前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi
执着25918 分钟前
力扣hot100 - 94、二叉树的中序遍历
数据结构·算法·leetcode
(; ̄ェ ̄)。19 分钟前
机器学习入门(十八)特征降维
人工智能·机器学习
-dzk-21 分钟前
【代码随想录】LC 707.设计链表
数据结构·c++·算法·链表
m0_6038887135 分钟前
Toward Cognitive Supersensing in Multimodal Large Language Model
人工智能·机器学习·ai·语言模型·论文速览
Dave.B1 小时前
vtkPolyDataConnectivityFilter 实用指南
算法·vtk
GIS数据转换器1 小时前
基于AI的低空数联无人机智慧巡查平台
大数据·人工智能·机器学习·无人机·宠物
yangminlei1 小时前
使用 Cursor 快速创建一个springboot项目
spring boot·ai编程
爱吃rabbit的mq1 小时前
第2章 机器学习的核心概念(上)
人工智能·机器学习