Skip to content

01-监督学习算法

本章讲解监督学习的经典算法:线性回归、逻辑回归、决策树、随机森林和支持向量机。


实际场景

你正在开发一个垃圾邮件分类系统。你有数千封已标注的邮件数据:一些标记为"垃圾邮件",一些标记为"正常邮件"。每封邮件包含特征如:发件人地址、邮件主题关键词、邮件内容长度、链接数量等。你的任务是训练一个模型,自动判断新邮件是否为垃圾邮件。这是一个典型的监督学习分类问题

线性回归

用于预测连续值,假设特征和目标之间存在线性关系。

python
from sklearn.linear_model import LinearRegression, Ridge, Lasso

model: LinearRegression = LinearRegression()
model.fit(X_train, y_train)

ridge: Ridge = Ridge(alpha=1.0)

lasso: Lasso = Lasso(alpha=0.1)

逻辑回归

用于分类问题,通过 Sigmoid 函数将输出映射到 (0, 1)。

python
from sklearn.linear_model import LogisticRegression
from numpy.typing import NDArray

model: LogisticRegression = LogisticRegression()
model.fit(X_train, y_train)

y_pred: NDArray = model.predict(X_test)

y_proba: NDArray = model.predict_proba(X_test)

决策树

通过一系列规则对数据进行分类或回归。

python
from sklearn.tree import DecisionTreeClassifier

model: DecisionTreeClassifier = DecisionTreeClassifier(
    max_depth=5,
    min_samples_split=10,
    min_samples_leaf=5
)
model.fit(X_train, y_train)

随机森林

集成学习方法,通过组合多棵决策树提高预测性能。

python
from sklearn.ensemble import RandomForestClassifier
from numpy.typing import NDArray

rf: RandomForestClassifier = RandomForestClassifier(
    n_estimators=100,
    max_depth=10,
    random_state=42,
    n_jobs=-1
)
rf.fit(X_train, y_train)

importances: NDArray = rf.feature_importances_

支持向量机 (SVM)

通过寻找最优超平面来分隔不同类别的数据。

python
from sklearn.svm import SVC

model: SVC = SVC(kernel='rbf', C=1.0, gamma='scale')
model.fit(X_train, y_train)

算法选择指南

算法适用场景优点缺点
线性回归线性关系预测简单、可解释只能处理线性关系
逻辑回归二分类简单、输出概率线性决策边界
决策树分类/回归可解释、非线性易过拟合
随机森林分类/回归准确率高、不易过拟合训练慢
SVM分类高维数据有效大数据集慢

本章小结

┌─────────────────────────────────────────────────────────────┐
│                    监督学习算法 知识要点                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   线性回归:                                                 │
│   ✓ 公式:y = wx + b                                        │
│   ✓ 正则化:Ridge(L2)、Lasso(L1)                            │
│                                                             │
│   逻辑回归:                                                 │
│   ✓ Sigmoid 函数映射到 (0,1)                                │
│   ✓ 用于二分类问题                                          │
│                                                             │
│   决策树:                                                   │
│   ✓ 分裂标准:信息增益、基尼系数                            │
│   ✓ 易过拟合,需要剪枝                                      │
│                                                             │
│   随机森林:                                                 │
│   ✓ Bagging 集成:多棵树投票                                │
│   ✓ 特征重要性评估                                          │
│                                                             │
│   SVM:                                                      │
│   ✓ 最大化间隔                                              │
│   ✓ 核函数:linear、poly、rbf                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘