逻辑回归简介

逻辑回归简介

逻辑回归(Logistic Regression)是一种广泛应用于分类问题 的统计学习方法,尽管名字中含有"回归",但它实际上主要用于二分类任务(也适用于多分类)。


核心思想

逻辑回归通过将线性回归的输出映射到 0, 1 区间,来预测样本属于某一类别的概率

基本形式:

  1. 线性部分

    z = w\^T x + b

    其中 (x) 是特征向量,(w) 是权重,(b) 是偏置。

  2. Sigmoid 函数(逻辑函数)

    \\hat{y} = \\sigma(z) = \\frac{1}{1 + e\^{-z}}

    将 (z) 转换为 0~1 之间的概率值。

  3. 分类决策

    通常取阈值 0.5:

    • 若 (\hat{y} \ge 0.5),预测为正类(1)
    • 若 (\hat{y} < 0.5),预测为负类(0)

损失函数

逻辑回归使用对数损失(Log Loss / 交叉熵损失)

J(w,b) = -\\frac{1}{m} \\sum_{i=1}\^{m} \\left\[ y\^{(i)} \\log(\\hat{y}\^{(i)}) + (1 - y\^{(i)}) \\log(1 - \\hat{y}\^{(i)}) \\right

]

通过梯度下降等优化算法最小化该损失函数,得到最优参数 (w, b)。


特点与优缺点

优点:

  • 模型简单,计算效率高
  • 输出具有概率意义,可解释性强
  • 不易过拟合(尤其在正则化后)
  • 对线性可分问题效果好

缺点:

  • 对特征空间中的非线性关系拟合能力有限
  • 对异常值敏感
  • 需要特征独立或相关性较低(虽然比朴素贝叶斯更鲁棒)

常见应用

  • 信用评分(是否违约)
  • 医疗诊断(是否患病)
  • 垃圾邮件识别
  • 点击率预估(CTR)
  • 用户流失预测

简单示例(Python + scikit-learn)

python 复制代码
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer

# 加载数据
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 预测
accuracy = model.score(X_test, y_test)
print(f"Accuracy: {accuracy:.4f}")

与线性回归的区别

特性 线性回归 逻辑回归
任务类型 回归(预测数值) 分类(预测类别/概率)
输出范围 ((-\infty, +\infty)) (0, 1)
损失函数 均方误差(MSE) 交叉熵损失
激活函数 无(恒等映射) Sigmoid

相关推荐
三品吉他手会点灯4 分钟前
嵌入式机器学习 - 学习笔记1.1.2 - 机器学习的局限性与伦理
人工智能·笔记·嵌入式硬件·学习·机器学习
一枚NPC6 分钟前
Timbal AI 音乐创作与商业应用实战指南
大数据·人工智能·机器学习
小帽子_1236 分钟前
储能 SOC/SOH 精准估算技术:储能工况下算法优化与误差修正方案
算法
hhlongg12 分钟前
FFT分析
算法
Dream_ksw34 分钟前
机器学习之基于最小二乘的线性回归正规方程求解公式推导(有监督学习)
学习·机器学习·线性回归
水龙吟啸35 分钟前
华为2026.6.17机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·华为
凌波粒1 小时前
LeetCode--53. 最大子序和(贪心算法)
算法·leetcode·贪心算法
Hesionberger1 小时前
快速求解完全平方数的最少数量
开发语言·数据结构·python·算法·leetcode·c#
c238561 小时前
《序列 DP:C++ 中的“最长”套路与编辑距离》
c++·算法·动态规划
aqiu1111111 小时前
【算法日记 19】LeetCode 1. 两数之和:梦开始的地方,哈希表的降维打击
算法·leetcode·职场和发展