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 │
│ │
└─────────────────────────────────────────────────────────────┘