监督学习
问题
什么是监督学习?分类和回归有什么区别?常见的监督学习算法和评估指标有哪些?
答案
监督学习(Supervised Learning) 是机器学习中最常见的范式——从带有标签的训练数据中学习输入到输出的映射关系。"监督"的意思是每条训练数据都有"正确答案"(标签),模型在训练过程中不断将自己的预测和正确答案对比,从而改进。
一、分类 vs 回归
监督学习根据标签类型分为两大任务:
| 维度 | 分类(Classification) | 回归(Regression) |
|---|---|---|
| 标签类型 | 离散类别(猫/狗/鸟) | 连续数值(房价、温度) |
| 输出 | 类别概率分布 | 实数值 |
| 损失函数 | 交叉熵(Cross-Entropy) | 均方误差(MSE) |
| 评估指标 | Accuracy、F1、AUC | MSE、MAE、 |
| 典型场景 | 垃圾邮件、情感分析、图像识别 | 房价预测、销量预测、股票预测 |
二分类 vs 多分类:
- 二分类:只有两个类别(正/负、是/否)
- 多分类:三个及以上类别(猫/狗/鸟/鱼)
- 多标签分类:一个样本可以同时属于多个类别(一篇文章既是"科技"又是"商业")
二、常见监督学习算法
| 算法 | 类型 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|---|
| 线性回归 | 回归 | 找一条最拟合数据的直线/超平面 | 简单、可解释 | 只能拟合线性关系 |
| 逻辑回归 | 分类 | 线性模型 + Sigmoid,输出概率 | 简单、可解释、工业常用 | 线性决策边界 |
| 决策树 | 分类/回归 | 树状 if-else 规则 | 直观、可解释 | 易过拟合 |
| 随机森林 | 分类/回归 | 多棵决策树投票 | 稳健、不易过拟合 | 训练较慢 |
| XGBoost | 分类/回归 | 梯度提升树 | Kaggle 冠军常客 | 需要调参 |
| SVM | 分类 | 找最大间隔超平面 | 高维有效 | 大数据慢 |
| KNN | 分类/回归 | 找 K 个最近邻投票 | 简单、无需训练 | 预测慢、维度灾难 |
| 神经网络 | 分类/回归 | 多层非线性变换 | 强大、通用 | 需要大数据和 GPU |
三、分类评估指标详解
混淆矩阵
| 预测正 | 预测负 | |
|---|---|---|
| 实际正 | TP(真正例) | FN(假负例) |
| 实际负 | FP(假正例) | TN(真负例) |
核心指标
Precision vs Recall 的权衡
- 垃圾邮件过滤:更关注 Precision(宁可漏过垃圾邮件,也不能把正常邮件误判为垃圾)
- 癌症筛查:更关注 Recall(宁可误报,也不能漏掉真正的患者)
- F1 Score:在两者之间取平衡
ROC 与 AUC
ROC 曲线:以 FPR 为横轴,TPR 为纵轴,在不同分类阈值下画出的曲线。
- FPR(假正率)=
- TPR(真正率 = Recall)=
AUC(Area Under Curve):ROC 曲线下面积,取值 0~1,越大越好。AUC = 0.5 表示模型和随机猜测一样差。
| AUC 范围 | 模型质量 |
|---|---|
| 0.9 - 1.0 | 优秀 |
| 0.8 - 0.9 | 良好 |
| 0.7 - 0.8 | 一般 |
| 0.5 - 0.7 | 较差 |
四、回归评估指标
| 指标 | 特点 |
|---|---|
| MSE | 对大误差敏感(平方放大),最常用 |
| MAE | 对异常值鲁棒 |
| 0~1,表示模型解释了多少方差,1 为完美 |
常见面试问题
Q1: 逻辑回归是分类还是回归?
答案:虽然名字带"回归",但逻辑回归是分类算法。它在线性回归的基础上加了一层 Sigmoid 函数,将输出映射到 (0, 1) 区间作为概率值,然后根据阈值(通常 0.5)决定分类。之所以叫"回归",是因为它回归的是概率值。
Q2: 决策树是如何决定分裂特征的?
答案:决策树在每个节点选择一个特征进行分裂,选择标准是使得分裂后"不纯度"下降最多的特征:
- 信息增益(ID3):基于信息熵
- 信息增益率(C4.5):解决信息增益偏向多值特征的问题
- 基尼系数(CART):,计算更快
Q3: 随机森林为什么比单棵决策树好?
答案:随机森林通过两层"随机化"来降低过拟合:
- Bagging(样本随机):每棵树用有放回抽样的子数据集训练
- 特征随机:每次分裂只考虑随机选取的一部分特征
多棵"弱"决策树的投票结果比单棵"强"决策树更稳健——降低了方差(Variance),while 保持偏差(Bias)不变。这就是集成学习的核心思想。
Q4: 样本不均衡怎么处理?
答案:
| 方法 | 说明 |
|---|---|
| 过采样 | 增加少数类样本(SMOTE 合成新样本) |
| 欠采样 | 减少多数类样本(随机下采样) |
| 类别权重 | 给少数类更高的损失权重 |
| 阈值调整 | 降低少数类的分类阈值 |
| 集成方法 | BalancedRandomForest、EasyEnsemble |
| 评估指标调整 | 用 F1、AUC 而非 Accuracy |
Q5: L1 和 L2 正则化的区别?
答案:
| L1 正则化(Lasso) | L2 正则化(Ridge) | |
|---|---|---|
| 惩罚项 | ||
| 效果 | 产生稀疏解(很多权重为 0) | 权重接近 0 但不为 0 |
| 特征选择 | 自动做特征选择 | 不做特征选择 |
| 适用场景 | 特征很多、需要筛选 | 特征都有用、防止过拟合 |