监督学习 · 无监督学习 · 模型评估与调优
—— 一篇笔记,吃透机器学习的三大核心基础
写在前面
这份笔记主要介绍三个最基础也最重要的主题——监督学习、无监督学习、模型评估与调优。重点讲清楚“是什么、怎么用、坑在哪里”。适合反复翻阅,也适合面试前快速回顾。
💡 笔记特点:一些知识点后附“我的理解”或“踩坑提醒”,加⭐的是核心结论。
一、监督学习:老师带着学
给机器带答案的例题(特征 + 标签),让它学会规律,然后去预测新数据的答案。
一句话:你给算法喂“问题和答案”,它学着下次自己答。
两大典型任务类型
房价预测 → 就像估价师看面积、地段估算价格。垃圾邮件分类 → 就像邮箱自动把广告邮件丢进垃圾箱。
回归· 以房价预测为例
猜一个连续的数字(比如房价)。输入房子大小、卧室数量,输出具体价格。
房价=w1×面积+w2×房间数+⋯+b
训练过程:
随机初始化权重 ww 和偏置 bb
计算预测值与真实值的误差(损失函数,如均方误差 MSE)
通过梯度下降逐步调整参数,减小误差
⚠️ 踩过的坑
a. 房价分布常右偏(几套豪宅拉高均值)→ 取对数变换可缓解
b. 训练集和测试集预处理必须完全一致(标准化参数、缺失值处理方式)
c. 缺失值不要粗暴删行 → 尝试均值/中位数填充
进阶模型:
线性回归 → 决策树回归 → 随机森林 → XGBoost(Kaggle 神器)
分类· 以垃圾邮件过滤为例
打一个离散的标签(比如是/不是垃圾邮件)。输入邮件内容,输出“垃圾”或“正常”。
计算一封邮件属于“垃圾”还是“正常”的概率,取概率高的类别。
经典算法:朴素贝叶斯
“朴素”的含义:
假设所有单词(特征)相互独立 —— 虽然现实中不成立,但实战效果惊人。
完整流程:
收集标注好的邮件(垃圾/正常)
文本预处理(去HTML、分词、去停用词、词干提取)
计算每个词在垃圾/正常邮件中的出现概率
新邮件到来 → 计算属于两类的概率 → 比较
⭐ 核心结论:监督学习的本质是“从标注数据中学习映射关系”。回归预测数量,分类预测类别。
二、无监督学习:自己找规律
只有特征,没有标签。让机器自己发现数据中的结构、模式或规律。
一句话:只给数据,不给答案,让算法自己发现“谁跟谁像”。
两大典型任务类型
聚类· 以客户分群为例
自动分组,把相似购买行为的客户归为一类(客户分群)。
电商平台有1000个用户,每个用户有“月消费金额”“访问频次”“购买品类”等特征,但没有任何用户标签(不像“高价值客户”这种标注)。想自动将用户分成几类,以便做差异化运营。K-Means 算法(最经典):
随机选择 K 个点作为初始聚类中心
每个样本分配到最近的中心,形成 K 个簇
重新计算每个簇的中心(均值)
重复 2-3 直到中心不再变化
如何选择 K 值?
我的理解:聚类就像整理一堆混在一起的乐高积木,你没图纸(没有标签),但可以根据颜色、形状把相似的积木堆在一起。至于分几堆(K 值),需要你自己判断。
⚠️ 注意:
降维· 以数据压缩和可视化为目的
压缩数据但保留主要特征,把几十个指标压成两三个,方便画图看规律。
为什么需要降维?
直观例子:
有一堆二维点,大致沿着一条斜线分布。PCA 会找到那条斜线作为第一主成分,然后把所有点投影到这条线上,数据就从二维变成了一维,但保留了绝大部分“变化信息”。
PCA 的步骤(简版):
数据标准化(每个特征均值为0,方差为1)
计算协方差矩阵
计算特征值和特征向量
按特征值排序,取前 k 个特征向量构成投影矩阵
原始数据 × 投影矩阵 → 降维后的数据
其他降维方法:
⭐ 核心结论:无监督学习解决的是“没有标准答案的问题”。聚类用于发现天然的分组,降维用于简化数据和可视化。
三、模型评估与调优:怎么判断模型好不好?
一句话定义
用科学的方法衡量模型表现,并通过调参让模型更强、更稳。
分类问题的评估指标(重点)
先记住四个基础情况(二分类时):
真实\预测 | 预测是“是” | 预测是“否” |
实际是“是” | 正确命中(TP) | 漏掉了(FN) |
实际是“否” | 错报了(FP) | 正确排除(TN) |
常用指标
⚠️ 踩坑提醒(经典案例)
假设你在做信用卡欺诈检测,正负样本极度不平衡(欺诈仅占0.1%)。如果你只盯着准确率,一个“把所有交易都判为正常”的模型也能达到99.9%的准确率,但它一个欺诈都抓不到。
⭐ 核心结论:在不平衡分类任务中,准确率极具误导性,应优先关注召回率、精确率、F1或AUC。选对评估指标,比调参重要十倍。常用指标解读:
→ 问题:如果95%都是“否”,模型全猜“否”也能有95%准确率,很假。
→ 比如垃圾过滤,别把正常邮件误杀了。
→ 比如癌症筛查,宁可错判也别漏掉病人。
→ 当你想同时兼顾“别乱报”和“别漏报”时用。
→ 数值越接近1越好,0.5等于瞎猜。特别适合正负样本数量相差很大的情况。
选哪个指标?
怕误报(如垃圾箱里收不到重要邮件) → 看精确率
怕漏报(如疾病筛查) → 看召回率
综合平衡 → 看F1分数
数据严重不平衡 → 看AUC
回归问题的评估指标
一张表总结(带例子)
应该先问自己:这个模型预测错了,业务上会带来多大损失?
模型调优的核心方法
过拟合 vs 欠拟合
欠拟合就像你背了几个公式就去考高数,啥都不会;过拟合就像你把历年真题答案全背下来了,结果题目一换就崩了。
交叉验证
K折交叉验证:
将训练集分成 K 份,轮流用其中 K-1 份训练,1 份验证,重复 K 次,取平均性能。
作用:
更稳定地评估模型(避免某次划分的偶然性)
充分利用有限数据
常用 K 值:5 或 10
交叉验证就是帮你避免“运气好”带来的错觉——它让你看到模型在不同数据子集上的稳定性。
⚠️ 踩坑提醒:做交叉验证时,千万不要在划分数据前做任何特征工程(比如标准化、缺失值填充)。正确顺序:先划分 K 折 → 在每一折的训练集上拟合预处理参数 → 再应用到验证集。否则会造成数据泄露,评估结果会虚高。
超参数调优
常用工具:GridSearchCV、RandomizedSearchCV(sklearn)
经验:先试随机搜索(一般足够好),确定大致范围后再用网格搜索精细调。
⚠️ 踩坑提醒:超参数调优时,千万别把测试集的信息泄露到训练过程中。正确做法:只对训练集做交叉验证 + 超参数搜索,找到最佳参数后,最后只一次在测试集上评估最终模型。
学习曲线与验证曲线
学习曲线是诊断过拟合/欠拟合最直观的工具。
学习曲线:横轴训练样本数,纵轴误差 → 判断是否欠拟合/过拟合
验证曲线:横轴某个超参数,纵轴分数 → 找最佳参数值
⚠️ 踩坑提醒:验证曲线(Validation Curve)可以帮助你选择一个超参数的最佳值,但注意它只针对单个超参数。如果你想同时调多个超参数,还是得用网格搜索或随机搜索。
⭐ 核心结论:评估是镜子,调优是手术。没有好评估,调优就是瞎忙。过拟合和欠拟合是永恒的敌人,交叉验证和正则化是最好的朋友。
总复习 · 一张表记住三个主题
最后的话
这份笔记是我在学机器学习入门阶段反复咀嚼后的提炼。监督学习让你学会“预测”,无监督学习让你学会“探索”,评估与调优让你学会“判断与改进”。三者缺一不可,共同构成机器学习实战的基础三板斧。
如果你刚接触这些概念,可能会觉得信息量大。别急,先理解每个部分的核心思想,然后跟着一个小项目(比如用线性回归预测房价 + 用 K-Means 做客户分群 + 用交叉验证调参)把流程跑通。纸上得来终觉浅,绝知此事要写代码。
后续我会继续整理逻辑回归、决策树、集成学习等进阶笔记。如果这份笔记对你有帮助,欢迎收藏或转发给同样在学习机器学习的朋友。
📌 有任何疑问或想让我深入讲某个点,评论区告诉我,我会在后续笔记中回应。