返回
查看原链接原链接
Bilibili22分34秒 · —

机器学习系列课程总结

机器学习系列课程总结

机器学习并非一个算法的简单清单,而是以数据为驱动、以解决实际业务问题为目标的完整工程方法论,其核心在于学习“从特征到标签”的映射规则。

机器学习全貌概览

三大学习范式

  • 监督学习:训练数据中同时包含特征与标签,即“答案”,模型学习的是从输入到输出的映射关系。
  • 回归问题:预测连续的数值(例如房价、销量与温度)。
  • 分类问题:预测离散的类别,输出为一个有限集合(例如图片中的动物是小猫还是小狗、邮件是否为垃圾邮件)。
  • 无监督学习:所使用的数据中没有明确的答案(标签),模型需要自行发现数据背后潜藏的结构或规律。
  • 聚类问题:将数据点自然分组。
  • 降维:减少用于描述数据的特征数量,同时尽量保留原始信息。
  • 强化学习:让智能体在与环境的持续交互中不断“试错”,并通过奖励信号最终习得适当的策略。其主要应用涵盖游戏、机器人和推荐策略等领域。

机器学习项目通用流程

无论采用哪种学习方法或模型,将一个模型成功训练并部署到线上环境均遵循标准化的操作环节。以一个完整的流程链条而言,需要按照“定义问题-数据准备-模型训练与优化-部署与迭代”的顺序展开。

  1. 定义目标与指标:为后续决定需要什么数据、采用什么算法以及训练到什么程度提供依据。
  2. 数据收集与预处理:完成数据清洗,核心环节包括特征提取等特征层的预处理操作。
  3. 数据划分与模型训练:将数据拆分成为训练集、验证集和测试集,分别用于训练、验证与最终评估。
  4. 问题诊断与优化:观察模型表现,如果出现欠拟合或过拟合,需采取对应的纠正措施。
  5. 部署与迭代:当模型精度达标后部署至线上并持续监控。根据用户反馈或新收集到的数据,对模型进行再训练。

核心基础概念

机器学习与传统编程的本质差异

  • 传统编程:人类提前书写清楚所有规则,机器按规则执行。公式可以精炼为:规则 + 数据 = 结果
  • 机器学习:规则无法提前获得,而是由机器基于历史样本数据自动提取。公式为:数据 + 答案(目标) = 模型(规则)。模型本质上即“规则”本身,训练完成后可用于预测新样本。

关键术语界定

  • 样本:一条记录即称为一个样本,可以是一个用户的全部信息、一套房子的全部信息或一封邮件的各维度信息。
  • 特征:描述样本的不同维度的输入变量。
  • 标签:模型最终希望预测的目标答案。
  • 算法与模型的区别:两者常被混用,但有本质差异。
  • 算法:训练时采用的方法,例如线性回归或决策树。
  • 模型:利用算法在具体数据上训练后得到的最终结果,是一组可直接用于预测的权重或一棵树。
  • 结论:算法是过程(方法论),模型是结果(产出物)。同一种算法在不同数据上会训练出不同模型,而机器学习的第一步不是选算法,而是翻译问题为“从特征到标签的映射”,明白解决何种问题,才能明确数据、算法和模型诉求。

监督学习详解

监督学习可称为“带答案的学习”,训练数据包含输入(特征)和正确答案(标签),核心是学习输入到标签的映射。

分类与回归问题及代表算法

类目核心任务常用算法
回归预测连续数值线性回归、决策树、随机森林、梯度提升决策树
分类预测离散类别逻辑回归、KNN、朴素贝叶斯、决策树
混合分类与回归均可树模型

典型监督学习算法特点

  • 线性回归与逻辑回归:最为典型的监督学习算法,简单、可解释性强且训练速度极快,被视为深度学习的必要基础,是所有学习者需优先掌握的核心内容。
  • KNN(K-近邻,原文提及但未在本课展开):思想朴素,核心逻辑是“看最近的 K 个邻居,通过邻居投票决定类别”。优缺点分明,但原文未展开其推导。
  • 朴素贝叶斯:基于严格概率论与特征独立性假设,主要应用于垃圾邮件识别、新闻分类与情感分析。
  • SVM(支持向量机,原文提及但未在本课展开):用于寻找最大间隔的分类边界,通过核函数能处理非线性问题。适中小型数据,数据量特别少时可使用。
  • 决策树:通过一系列判断规则运行,直觉性强、直观易懂,但容易产生过拟合。它是随机森林与梯度提升决策树的核心基础。
  • 集成树模型:将弱学习器组合为强学习器。代表包括随机森林、XGBoost、LightGBM、CatBoost,它们对结构化数据极为有效。
  • KNN、朴素贝叶斯和 SVM 在系列课程中并未介绍到,因涉及更深数学知识,有兴趣者需自行研读。

模型训练完整过程(从业务到可用模型)

  1. 定义问题:明确业务目标,判定预测对象是什么,以及如何定义成功(评估指标)。
  2. 准备与清洗数据:处理缺失值、异常值,对类别特征实施 One-Hot 编码,还可构造业务特征、筛选特征,必要时使用 PCA 做特征组合。
  3. 划分数据:通常分为训练集、验证集与测试集;在必要时采用 K-Fold 交叉验证。
  4. 训练与优化:定义损失函数,通过梯度下降或树模型分裂规则不断优化模型并可进行调参。
  5. 评估模型:检查泛化能力,诊断欠拟合/过拟合问题与类别不平衡问题。
  6. 上线与迭代:评估合格后部署上线,利用反馈数据重新训练模型。

损失函数与梯度下降原理

  • 损失函数:用于量化模型预测值与真实值之间的差距。
  • 梯度下降的常见认知误区:梯度下降并非直接对特征求导,而是对模型中所有模型参数求偏导,从而形成一个向量。该向量即为损失函数在当前点下降最快的方向(负梯度方向),沿此方向以极小的步幅(学习率)持续更新参数,使预测结果逐步逼近真实目标。

模型评估指标

  • 回归模型
  • MAE(平均绝对误差) :将误差取绝对值后计算均值。
  • MSE(均方误差) :将误差平方后取均值。平方的作用在于放大高误差影响并缩小低误差影响,促使模型更快速收敛(例如误差 5 平方为 25,被放大;误差 0.01 平方为 0.0001 进一步缩小)。
  • RMSE(均方根误差) :是对 MSE 取根号后得到的,能让量纲回归到与原始样本一致的水平。
  • R方(R²) :用于解释方差的比例。
  • 分类模型:准确率、精确率、召回率、F1 指标、ROC-AUC 曲线分析、混淆矩阵等,综合考察分类效果,而非单看训练集表现。

欠拟合与过拟合诊断及对策

  • 欠拟合(High Bias) :模型学到的规律过少,在训练集和测试集上的表现都很差、误差高。
  • 解决方案:增加数据量,加长训练轮数,增加特征或特征组合,换更强模型(如使用多项式回归 X² 将一次函数变高阶),弱化正则化以避免筛掉过多特征,给予模型更长训练时间。
  • 过拟合(High Variance) :与欠拟针锋相对。训练集误差极低,但遇到未见过的新测试数据时效果急剧下降。根因是模型过于复杂,将训练数据中的噪声也当作规律进行“死记硬背”,不具备对未知数据的泛化能力。
  • 解决方案:降低模型复杂度,剪枝,引入正则化,早停(Early Stopping),交叉验证。

核心结论:模型选择并非要看训练集最高分,而是着重权衡拟合能力与泛化能力之间的平衡,不能只看训练集表现出色。

集成学习:让模型组成团队

核心思想对比

  • Bagging(代表算法:随机森林) :并行式思维。采用“有放回”的采样方式生成多份独立数据并分别训练多个模型,做决策时是集体智慧大集合——分类问题采用少数服从多数的“投票”,回归问题取“均值”。“三个臭皮匠,顶一个诸葛亮”,Bagging 能有效降低方差,缓解过拟合问题。
  • Boosting(代表家族:梯度提升决策树) :串行式的纠错。序列中后一棵树深耕于前一棵树与真实值之间尚存的误差,逐树前赴后继将误差缩小,后续模型专注于拟合前序模型的不足。Boosting 主要降低偏差,大幅提升预测精度。

梯度提升决策树家族代表

  • XGBoost:利用正则化控制模型复杂度、运用二阶梯度加速训练过程,工程优化成熟度高。
  • LightGBM:高效致胜,处理大规模数据尤为快捷。
  • CatBoost:全称为 Categorical Boosting,专精于特征大多为类别型的数据场景,优势明显且推理速度快。

无监督学习

无监督学习所得数据中不包含标签,需要探索数据背后的内在结构。

K-Means 聚类算法

算法步骤可归纳为:

  1. 预先指定 K 个簇(即“N 个簇”)。
  2. 随机分配初始簇中心(质心或“知心”)。
  3. 循环更新质心位置直至收敛。
  4. 最终得出稳定的 K 个簇。

典型应用场景包括:用户分类、图像压缩与异常检测。基于聚类问题的局限,也存在多种优化模型(原文仅提及存在优化空间,未列出具体名称)。

PCA 降维

  • 核心思想:不似简单“弃用无用特征”,其通过数学运算寻找数据变化幅度最大的方向(主成分),把高维数据整合映射为尽可能解释原始数据全部信息的新特征,达到减少特征数量的目的。
  • 代价与局限:新特征由各原始特征以不同权重组合而来,导致业务可解释性下降——往往难以直观读懂新特征的业务含义,需要依赖后续分析。

工业界最佳实践与自动化工具集

理论与实战之间存在相当距离。在工业场景或竞赛实践中,模型训练绝不像理论推导时那样“一切从零手搓参数与分析”。各环节均存在高度成熟的工具,可极大提高迭代效率。

数据分析与可视化(EDA)

  • 传统 EDA(探索性数据分析)需要研究者逐一生成数据报告,分析全貌;如果可以利用专用工具,即可一键生成描述性统计报告。
  • 可视化覆盖内容全面,包括:数据缺失值/分布/相关性分析、异常值筛查、数据质量评估、样本问题(如重复值)、特征均值/缺失率/零值数量/最大最小值、统计直方图、高频取值集合(Common Values)、极端值列表(最小或最大 10 个),并可跨特征关系比较、展示含 PCA 聚合的可视化效果。

自动机器学习工具(AutoML)

  • 跑基线(Baseline)优于自我摸索:在训练复杂模型前,优先训练一个默认的基线模型。若在此基础上训练出的自定义模型反而不如基线,说明训练方向存在误区。
  • AutoGluon(亚马逊开源) :能根据数据自动完成训练、调参与模型集成的全过程,快速产出一个极具竞争力的基线模型。原文甚至指出很多情况下人工调参效果未必胜出该工具的自动化基线与各种模型的分数输出(示例用 XGBoost 等快速测出分数)。

数据管道与防泄漏

  • 数据预处理中的“数据泄漏”为常见隐患,可使用 Sklearn 中默认提供的 Pipeline 组件协助解决。

超参数自动优化

  • 人工设置超参或网格搜索(Grid Search)耗时费力,开源优化方案可承担自动化超参设定任务,兼具高度灵活性和可扩展性。

实验追踪与模型管理

  • 长期进行多轮实验时,易丢失关键记录和选择标准。团队可用专用工具持续记录每次运行的参数、性能指标与模型文件,保存多个版本,对跨团队合作与复现一致性具有显著价值。

标签噪声检测与清洗(CleanLab)

  • 当标签数据本身包含错误时,就算训练再久也无法达到良好结果。可使用 CleanLab 之类的方案,基于模型置信度检测疑似标注错误的数据点:
  • 处理策略一:翻转标签类别。
  • 处理策略二:删除问题样本。
  • 也可人工抽检出问题的数据再做决策。
  • 演示案例(信用卡欺诈):该数据集的核心挑战在于负样本极其稀少,若这些极其重要的负样本之中仍含有标记错误,学习难度会加剧。CleanLab 在示例中成功识别出 142 个疑似有问题的样本,操作人员需自行权衡采用删除或反转策略。

不平衡数据处理

  • 上述若干开源方案同样具备辅助处理数据类别不平衡问题的能力。

关键提醒:工具能加速流程,但前提依旧是自己牢固掌握机器学习的理论背景——只有懂得底层原理,才知道工具当前正在帮你解决什么、为什么要解决。

从机器学习迈向深度学习

学习路径建议

深度学习是机器学习系列课程的自然延伸。相比于直接要求必须掌握高难度 Python 或线性代数,也不建议急着一头扎入手写数字识别等任务,机器学习功底是对深度学习最佳的入门准备。有了扎实的基础后,再学深度学习会获得“事半功倍”(原文表述为“事倍功半”,按上下文语义应为“事半功倍”之意)的效果。

传统机器学习与深度学习的对位比较

  • 传统机器学习:适用于特征可具象为行列关系的结构化数据;严重依赖人工特征工程;优点是高度可解释以及训练成本相对较低。本质上可以视作一系列数学运算的加速与大量迭代,但特征提取只能靠人工完成。
  • 深度学习:核心手段是多层神经网络,它能自动学习多层次抽象特征表示。面对无法用表格形式完整描述的图片、语音、文本等复杂数据,模型自行从数据中提取特征来学习。
  • 数据量与算力成本:深度学习对数据量需求更大,算力更昂贵——数据量和 GPU 算力长期受限于时代,直到约 90 年代至 00 年代,互联网兴起带来海量数据以及 GPU 快速发展提供算力保障,深度学习才开始腾飞,直至 Transformer 的出现催生出大模型。

核心演进逻辑与后续学习框架

  • 最终目标:将核心逻辑从“人工设计特征”转化为“神经网络自动表征学习”。
  • 前提统一:学完机器学习后,应已经理解“机器如何学习、如何认知与预测”,掌握了训练全局流程,也明白了梯度下降如何让模型逐步精进。
  • 弥合差异:进入深度学习后,核心额外要弄懂“什么是神经网络”以及“怎样把特征提取这一步骤也交给模型”,其余方面(损失与总体设计逻辑)与机器学习保持高度一致,二者的差别仅在于处理超大与超高维数据时使用的特殊策略。

一句话概括:机器学习的完结,即深度学习的起点,二者的内在逻辑几乎完全一致,区分仅在于将特征处理从“人工定义”彻底转变为“模型自主发现”。