一张图看懂机器学习全貌(附B站课程笔记整理)

本文基于B站UP主谦行Aling的《人工智能通识·机器学习》课程笔记整理而成。从基础概念到核心算法,一文带你系统掌握机器学习入门全貌。
一、什么是机器学习?
1.1 传统编程 vs 机器学习
| 传统编程 | 机器学习 |
|---|---|
| 人把规则写清楚,机器按规则执行 | 给机器历史样本,让它自动提取规律 |
| 规则 + 数据 → 结果 | 数据 + 答案 → 模型 |
模型训练完成后,就能把学到的规律用于新样本预测:房价、销量、点击、欺诈、流失、图像分类......
1.2 核心概念辨析
-
样本(Sample):一条记录,如一个用户、一套房、一封邮件
-
特征(Feature):描述样本的输入变量(如面积、房间数)
-
标签(Label):希望模型预测的答案(如房价)
-
算法(Algorithm):学习方法,如线性回归、决策树
-
模型(Model):学习结果,如一组权重参数、一棵决策树
💡 关键认知 :机器学习的第一步,不是选算法,而是把问题翻译成"特征 → 标签"的学习任务。
二、学习路线与前置知识
掌握一定的基础是必需的,但无需成为专家。课程中涉及理论会提供 Just-in-Time 通俗讲解。
2.1 数学基础(三驾马车)
| 领域 | 核心内容 |
|---|---|
| 线性代数 | 向量与矩阵基础概念,加/减/点积/乘法 |
| 概率与统计 | 均值、方差、概率分布、贝叶斯定理 |
| 微积分 | 导数、偏导数含义及链式法则 |
2.2 编程技能栈
-
Python:机器学习的事实标准
-
Jupyter Notebook:适合边写边跑、实验可视化的开发环境
-
生态工具箱:
-
NumPy/Pandas------ 数据处理 -
Matplotlib/Seaborn------ 可视化 -
Scikit-learn------ 经典算法库
-
三、机器学习的三大分支
根据数据集是否带有标签,以及学习方式的不同,机器学习衍生出三大主要分支:
3.1 监督学习(Supervised Learning)
数据集中的每个数据点都包含标签(如已知房价),机器通过学习特征与标签的关系进行预测。
两大核心类型:
| 类型 | 说明 | 应用场景 | 代表算法 |
|---|---|---|---|
| 回归模型 | 预测连续数值型数据 | 房价预测、股票走势、温度预测 | 线性回归、决策树、随机森林、XGBoost |
| 分类模型 | 预测离散的分类型数据 | 图像识别、垃圾邮件检测、客户群体划分 | 感知器、逻辑回归、朴素贝叶斯、KNN、SVM |
3.2 无监督学习(Unsupervised Learning)
数据点不包含标签,机器需要自己在数据中寻找隐藏的结构或规律。
目标不再是预测某个具体的数值或类别,而是让模型自行探索发现数据内部隐藏的结构、模式或规律。
三大方向:
| 方向 | 核心作用 | 案例 |
|---|---|---|
| 聚类(Clustering) | 将数据集分组 | 电商百万用户精准营销------无干预自动划分用户画像 |
| 降维(Dimensionality Reduction) | 信息整合与特征重构 | 房价预测中合并"距离地铁米数""学校数量""商场个数"为综合地段评分 |
| 生成算法(AIGC) | 从数据中创造全新内容 | AI绘画(GAN)、生成虚拟人脸扩充训练集 |
3.3 强化学习(Reinforcement Learning)
在动态环境中通过不断试错,学习如何做出更优决策以获得最大奖励。
-
核心机制 :设定智能体(Agent),置于环境中采取动作,环境反馈奖励(Reward) 或惩罚(Penalty)
-
终极目标:探索出一套能获得最大长期累计奖励的策略
-
应用场景:自动驾驶、围棋(AlphaGo)、推荐系统、机器人控制
四、线性回归------最经典的基础模型
4.1 什么是线性回归?
线性回归(Linear Regression)是机器学习中最经典的模型之一,它通过构建线性方程来拟合数据的内在分布规律,从而实现对连续数值的预测。
⚠️ 重要误区 :线性 ≠ 直线!
数学上,"线性"描述的是输入与输出之间按比例变化、可叠加的关系:
-
齐次性:f(ax) = a * f(x)
-
可加性:f(x + y) = f(x) + f(y)
几何解释:在一维空间中表现为一条直线;在高维空间中表现为平面或超平面。
4.2 "回归"一词的由来
"回归"(Regression)源于统计学家弗朗西斯·高尔顿 (Francis Galton)的经典研究。他观察到:身高极高或极矮的父母,其子女的身高往往会向群体平均值靠拢 ,这一现象被称为**"回归均值"**。
在机器学习领域,回归的概念被进一步引申:旨在通过数据建模变量间的映射关系,进而实现对连续数值的预测。
4.3 模型公式
最简单的线性回归模型只有一个特征(如房屋面积),预测公式为:
\\hat{y} = wx + b
| 符号 | 含义 | 示例 |
|---|---|---|
| y | 模型的预测值 | 预测房价 |
| x | 输入特征 | 房屋面积 |
| w | 权重(weight / 斜率) | 面积每增加1m²,房价变化多少 |
| b | 偏置(bias / 截距) | 当面积为0时的理论基准价 |
这里的 w 和 b 就是模型需要学习的参数。训练模型本质上就是搜索一组最合适的 w 和 b。
4.4 损失函数:衡量模型准不准
模型要找到最好的参数,首先得回答一个问题:当前这组参数到底好不好?
我们需要一种方法来度量预测值与真实值之间的偏差------这就是损失函数(Loss Function)。
均方误差(MSE)
MSE = \\frac{1}{n}\\sum_{i=1}\^{n}(\\hat{y}_i - y_i)\^2
计算步骤:
-
对每个样本,计算 预测值 − 真实值(即误差)
-
将误差取平方(消除正负号、放大较大误差)
-
对所有样本求平均
🎯 一句话概括 :预测值离真实值越远,损失越大。模型训练的目标,就是让损失函数的值尽可能小。
4.5 梯度下降:寻找最优参数
有了损失函数后,我们如何找到使损失最小的 w 和 b?答案是梯度下降(Gradient Descent)------沿着损失函数梯度的反方向迭代更新参数:
w := w - \\alpha \\cdot \\frac{\\partial L}{\\partial w}
其中 \\alpha 是学习率(learning rate),控制每步移动的大小。学习率太大会震荡不收敛,太小则收敛太慢。
4.6 数据预处理
在将原始数据送入模型前,通常需要进行以下处理:
-
缺失值处理:填充均值/中位数,或直接删除
-
标准化/归一化:将不同量纲的特征缩放到同一范围(如0~1或标准正态分布)
-
类别编码:将文本标签转换为数值(One-Hot Encoding、Label Encoding)
-
特征选择:剔除无关或冗余特征
4.7 过拟合与欠拟合
| 问题 | 表现 | 原因 | 解决方案 |
|---|---|---|---|
| 欠拟合(Underfitting) | 训练集和测试集误差都很高 | 模型过于简单 | 增加特征、使用更复杂的模型 |
| 过拟合(Overfitting) | 训练集误差低但测试集误差高 | 模型过于复杂/噪声干扰 | 正则化、Early Stopping、增加数据量 |
**Early Stopping(早停)**是一种有效的防过拟合策略:设置一个足够大的上限轮数,让算法自己找到最佳停止点。在XGBoost等集成模型中,当验证集误差连续多轮不再下降时自动停止训练。
五、逻辑回归------分类问题的基石
逻辑回归(Logistic Regression)虽然名字里带"回归",但实际上是一个二分类模型 。它在线性回归的基础上,通过 Sigmoid 函数 将输出映射到 (0, 1) 区间,表示属于正类的概率:
P(y=1\|x) = \\sigma(wx + b) = \\frac{1}{1 + e\^{-(wx+b)}}
核心特点:
-
输出可解释为概率值
-
决策边界可以是线性的
-
可扩展到多分类(Softmax)
-
广泛应用于信用评分、点击率预估等场景
六、决策树------直观易懂的树形模型
决策树(Decision Tree)是一棵从上到下的树状结构,通过一系列"是/否"判断对数据进行划分:
-
节点:一个特征的判断条件
-
分支:判断结果的走向
-
叶节点:最终的预测结果(分类标签或回归值)
优点:
-
✅ 完全符合人类直觉,结果可解释性强
-
✅ 不需要特征缩放
-
✅ 能处理混合类型的特征
缺点:
-
❌ 容易过拟合(单棵树深度不受限制时)
-
❌ 对数据中的微小变化敏感
七、随机森林------多树并行的力量
随机森林(Random Forest)采用 Bagging(Bootstrap Aggregating) 策略:
核心思想 :构建多棵决策树,每棵树基于不同的数据子集和特征子集 进行训练,最终通过投票(分类)或平均(回归) 得到最终结果。
| 特性 | 决策树 | 随机森林 | GBDT / XGBoost |
|---|---|---|---|
| 模型数量 | 1棵 | 多棵(并行) | 多棵(串行) |
| 集成策略 | 无 | Bagging: 投票/平均 | Boosting: 逐步累加 |
| 单棵树特点 | 可深可浅 | 深树(低偏差高方差) | 浅树(高偏差低方差) |
| 核心目标 | 基线模型 | 降低方差 | 降低偏差 |
| 过拟合风险 | 高 | 低 | 中等 |
sklearn 使用示例:
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(
n_estimators=200, # 决策树数量
max_depth=10, # 每棵树的最大深度
random_state=42,
n_jobs=-1 # 用满CPU核心加速
)
rf.fit(X_train, y_train)
y_pred = rf.predict(X_test)
八、Boosting 模型------逐步纠错的进化之路
8.1 Boosting 思想
与 Bagging 的"并行投票"不同,Boosting 采用串行纠错的策略:
-
先训练一个弱模型
-
找出错分的样本,给它们更高的权重
-
再训练下一个模型,重点关注之前犯错的样本
-
重复上述过程,最终将多个弱模型加权组合
8.2 GBDT / XGBoost
GBDT(Gradient Boosting Decision Tree) 是 Boosting 思想与决策树的结合:
-
使用浅树(高偏差低方差)
-
通过梯度下降方向指导每轮新树的学习目标
-
逐步降低偏差
XGBoost 是 GBDT 的工业级优化版本:
-
更快的训练速度
-
内置正则化防止过拟合
-
支持缺失值自动处理
-
丰富的超参数调优空间
Early Stopping 防止过拟合:
from xgboost import XGBRegressor
xgb_es = XGBRegressor(
n_estimators=10000,
max_depth=5,
learning_rate=0.05,
early_stopping_rounds=20 # 20轮不提升就停止
)
xgb_es.fit(X_train, y_train,
eval_set=[(X_test, y_test)],
verbose=50)
# 最佳迭代轮数: 1186, 最佳 MSE: 0.1939
验证集 RMSE 会先快速下降然后趋于平缓,Early Stopping 恰好在最低点附近停下来。
8.3 三大 Boosting 框架对比
| 框架 | 特点 |
|---|---|
| XGBoost | 经典之作,文档丰富,社区成熟 |
| LightGBM | 微软出品,速度更快,内存更省 |
| CatBoost | Yandex 出品,对类别特征处理优秀 |
💡 实战建议:XGBoost / LightGBM / CatBoost 是工业级进化的代表,更快、更准、更易用。三者选其一即可应对大多数表格数据的竞赛和业务需求。
九、无监督学习------聚类与降维
9.1 K-Means 聚类
K-Means 是最经典的无监督学习算法,核心作用是将数据集分组。
工作原理:
-
随机初始化 k 个中心点(质心)
-
将每个样本分配给最近的质心
-
重新计算每个簇的质心位置
-
重复步骤2-3直到收敛
应用场景:
-
🛒 电商用户分群:根据购买频次、消费金额等自动划分用户画像
-
🖼️ 图像压缩:从数十万种颜色中找出若干典型代表,减少存储空间
-
🔍 异常检测:识别偏离常规的数据点(异常访问、恶意攻击)
所谓聚类,就是在没有标签 的前提下,根据样本之间的相似性,将数据自动划分为若干组,使得同组内样本尽可能相似,不同组之间尽可能有差异。
9.2 PCA 降维------化繁为简的艺术
在实际业务中,我们常遇到包含成百上千个特征的数据集。当特征维度不断增长时,一系列问题随之而来,被称为维度灾难(Curse of Dimensionality):
| 问题 | 影响 |
|---|---|
| 计算成本急剧增长 | 参数量变大,导致严重的算力和时间开销 |
| 数据稀疏性与过拟合风险 | 高维空间数据变得稀疏,所需数据量呈指数级增加 |
| 距离度量失效 | 高维空间中任意两点距离趋于相等,KNN/K-Means等基于距离的算法几乎无效 |
| 多重共线性问题 | 特征之间存在强相关性(如"面积"与"房间数"),干扰模型评估 |
PCA(主成分分析)原理
PCA 通过线性变换将高维数据投影到低维空间,同时保留最大信息量:
-
标准化原始数据
-
计算协方差矩阵
-
求解协方差矩阵的特征值和特征向量
-
按解释方差率选取前 k 个主成分
-
构建投影矩阵 W,将数据变换到新空间
解释方差率公式: \\text{解释方差率} = \\frac{\\lambda_i}{\\sum_{j=1}\^n \\lambda_j}
一般根据累计解释方差率决定降到什么维度,选出前 k 大的特征值加起来除以总和,找到能超过阈值(如95%)的最小k。
案例:总方差和 = 372.6
-
PC1 解释率 ≈ 89.9%
-
PC2 解释率 ≈ 10.1%
-
前两个成分累计解释率达100% → 选择 k=2,将三维数据降到二维
十、机器学习全貌总结
10.1 一张图看懂机器学习
| 监督学习 | 无监督学习 | 强化学习 |
|---|---|---|
| 有标签:从输入学习到答案的映射 | 无标签:发现数据自己的结构 | 在环境中试错,用奖励塑造策略 |
| • 回归:房价、销量、温度 | • 聚类:K-Means、DBSCAN | • Agent / Environment |
| • 分类:垃圾邮件、流失预测 | • 降维:PCA、特征提取 | • Action / Reward / Policy |
| • 线性/逻辑回归、树模型、KNN、SVM | • 异常检测、生成建模 | • 游戏、机器人、推荐策略 |
10.2 机器学习通用五步法
无论什么任务,机器学习项目都可以遵循以下五步流程:
| 步骤 | 内容 | 关键动作 |
|---|---|---|
| 01 | 定义目标与指标 | 明确业务问题,选择合适的评估指标 |
| 02 | 清洗数据与特征 | 缺失值处理、特征工程、数据划分 |
| 03 | 训练、验证、测试 | 划分数据集,交叉验证,模型选择 |
| 04 | 处理欠拟合/过拟合 | 正则化、Early Stopping、集成学习 |
| 05 | 上线监控与重训 | 模型部署、性能监控、定期重训 |
🎯 一句话总结 :机器学习不是算法清单,而是"用数据解决问题"的完整工程方法。
十一、写在最后
本文涵盖了机器学习入门的完整知识体系:
-
基础认知:ML是什么?与传统编程有何区别?
-
三大分支:监督学习、无监督学习、强化学习
-
核心算法:线性回归 → 逻辑回归 → 决策树 → 随机森林 → XGBoost
-
无监督技术:K-Means 聚类 + PCA 降维
-
工程实践:数据处理、过拟合处理、模型评估、部署流程
下一步建议:
-
🔧 动手实践!用
sklearn在真实数据集上跑一遍这些算法 -
📚 深入阅读:《统计学习方法》(李)、《西瓜书》(周志华)、《Hands-On Machine Learning》(Aurélien Géron)
-
🎬 视频学习:B站搜索"谦行Aling 机器学习"
本文内容整理自B站UP主 谦行Aling 的《人工智能通识·机器学习》系列课程笔记,仅供学习交流使用。