机器学习--逻辑回归
·
逻辑回归简介
逻辑回归是一种用于解决二分类问题的统计方法,通过将线性回归的输出映射到概率区间(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}")
应用场景
- 信用评分(违约预测)。
- 医疗诊断(疾病分类)。
- 广告点击率预估。
更多推荐



所有评论(0)