逻辑回归简介

逻辑回归是一种用于解决二分类问题的统计方法,通过将线性回归的输出映射到概率区间(0,1),从而预测类别概率。其核心是使用逻辑函数(Sigmoid函数)将线性组合转换为概率值。

数学模型

逻辑回归的预测概率由Sigmoid函数定义:
$$ P(y=1 \mid x) = \frac{1}{1 + e^{-(w^Tx + b)}} $$
其中:

  • $w$ 为权重向量,$b$ 为偏置项。
  • $x$ 为输入特征向量。
  • $P(y=1 \mid x)$ 表示样本属于正类的概率。

决策边界为线性超平面 $w^Tx + b = 0$,当概率 $P \geq 0.5$ 时预测为正类。

参数估计

通常通过极大似然估计(MLE)求解参数,最大化对数似然函数:
$$ \ell(w, b) = \sum_{i=1}^n \left[ y_i \log P_i + (1 - y_i) \log (1 - P_i) \right] $$
优化方法包括梯度下降、牛顿法等。

正则化

为防止过拟合,可引入L1或L2正则化:

  • L1正则(Lasso):$ \ell(w, b) + \lambda |w|_1 $
  • L2正则(Ridge):$ \ell(w, b) + \lambda |w|_2^2 $

多分类扩展

通过以下方法处理多分类问题:

  • One-vs-Rest (OvR):训练多个二分类器,每个对应一个类别。
  • Softmax回归:直接建模多类概率,输出层使用Softmax函数:
    $$ P(y=k \mid x) = \frac{e^{w_k^Tx + b_k}}{\sum_{j=1}^K e^{w_j^Tx + b_j}} $$

优缺点

优点

  • 计算高效,易于实现。
  • 输出具有概率解释。
  • 可扩展至多分类。

缺点

  • 假设线性决策边界,对非线性问题需引入特征工程。
  • 对异常值和多重共线性敏感。

代码示例(Python)

使用Scikit-learn实现逻辑回归:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载数据(二分类示例)
X, y = load_iris(return_X_y=True)
X, y = X[y != 2], y[y != 2]  # 保留两类

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 训练模型
model = LogisticRegression(penalty='l2', C=1.0)
model.fit(X_train, y_train)

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

应用场景

  • 信用评分(违约预测)。
  • 医疗诊断(疾病分类)。
  • 广告点击率预估。
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐