ML:机器学习的三要素——数据、模型和学习过程

张开发
2026/4/19 4:32:38 15 分钟阅读

分享文章

ML:机器学习的三要素——数据、模型和学习过程
在机器学习Machine Learning中不同任务虽然形式各异但从基本结构上看通常都离不开三个核心要素数据Data、模型Model和学习过程Learning Process。如果用更规范的方式概括机器学习研究的是这样一类问题给定某种经验Experience,让计算机去完成某项任务Task,并用某种性能Performance,来衡量学习效果。也就是说机器学习并不是简单地存储数据而是要通过数据中的经验学得一种能够用于预测或决策的规律。为了便于理解本文围绕一个简单而典型的任务展开根据水果的特征判断它是苹果还是橘子。借助这个例子可以较直观地理解机器学习三要素的含义及其相互关系。一、从一个水果识别任务说起假设现在有一个任务给定一个水果的若干特征让计算机自动判断它是苹果还是橘子。对人来说这并不困难。我们通常会观察水果的颜色、形状、表面纹理等特征然后作出判断。机器学习的基本思想与此类似先收集大量样本再让计算机从这些样本中总结规律最终能够对新的水果样本进行识别。在这个任务中• “识别苹果还是橘子”就是要完成的任务Task,• 收集到的水果样本就是学习所依赖的经验Experience,• 模型识别得准不准就是用来衡量的性能Performance,围绕这个任务机器学习的三个核心问题也就自然出现了• 用什么数据来让计算机学习• 用什么形式表示识别规律• 怎样让模型从数据中逐步学会判断这正对应了机器学习的三要素数据、模型和学习过程。二、数据经验的载体1、数据为什么重要在机器学习中数据Data是模型学习的基础。没有数据模型就没有经验来源也就无从学习。就像人需要通过大量观察来认识事物一样机器学习模型也必须通过样本去发现输入与输出之间的关系。在水果识别任务中如果没有足够多的苹果和橘子的样本模型就很难学会如何区分它们。因此可以把数据理解为机器学习中的“经验载体”。经验越充分模型通常越有可能学到稳定而有效的规律。2、样本、特征与标签在机器学习中数据通常由样本Sample、特征Feature和标签Label这几个概念构成。1样本样本Sample是数据的基本单位表示一个具体的数据实例。例如一个苹果的观测记录可以看作一个样本一个橘子的观测记录也可以看作一个样本。若一个数据集Dataset包含个样本则可以简单表示为其中表示数据集表示第个样本。2特征特征Feature是描述样本属性的具体指标是模型进行判断时直接使用的信息。在水果识别任务中可以从水果图像中提取一些关键特征例如• 红色分量占比• 圆形度• 表面光滑度这些都是用来描述水果的特征。若一个样本由个特征组成则可以把它写成一个向量这里表示第个样本在第个特征上的取值。3标签在许多机器学习任务中除了输入特征之外还会预先给出样本对应的正确结果这个结果就是标签Label。比如在水果识别这个二分类任务中可以规定• 苹果记为 1• 橘子记为 0因此标签可以写成若把样本和标签放在一起则带标签的数据集可表示为这说明机器学习监督学习中的经验不只是“看到了什么”还包括“正确答案是什么”。3、数据集的直观理解在入门阶段可以把数据集理解为一个“样本表”。每一行表示一个样本每一列表示一个特征最后一列通常是标签。以苹果和橘子的识别任务为例假设提取了三个特征红色分量占比、圆形度和光滑度那么部分样本可以表示为红色分量占比圆形度光滑度标签苹果1橘子00.720.850.7810.350.750.5500.680.820.731从这个例子中可以看出• 每一行是一个样本• 前三列是特征• 最后一列是标签所有样本合在一起就构成了一个数据集。为了更规范地表示也可以把输入写成一个特征矩阵把标签写成一个目标向量不过在入门阶段更重要的是先理解数据集本质上就是许多个“带有特征和答案的样本”。三、模型任务的实现者1、什么是模型有了数据之后还需要有一种方式来表达“怎样根据特征判断类别”这就是模型Model。模型可以看作一种输入到输出的映射规则。它接收样本特征作为输入输出预测结果。用数学方式可以简单写成其中•表示输入样本•表示模型•表示模型给出的预测结果在水果识别任务中模型的作用就是根据颜色、形状、纹理等特征输出“苹果”或“橘子”的判断。2、用线性模型理解分类在入门阶段可以先用一个简单的线性模型Linear Model来理解模型的含义。假设一个水果样本有三个特征•红色分量占比•圆形度•光滑度那么模型可以写成其中•表示各个特征对应的权重•表示偏置•表示模型对该样本计算得到的结果这个式子的含义并不复杂模型会综合考虑各个特征的影响并给出一个判断分数。如果这个分数偏向某一类就判为苹果如果偏向另一类就判为橘子。在二分类任务中可以进一步写成这表示• 当模型输出值大于等于 0 时判为苹果• 当模型输出值小于 0 时判为橘子这里使用线性模型主要是为了便于说明“模型”这一概念。实际问题中还可能使用决策树、K 近邻、神经网络等不同形式的模型。3、模型的本质模型并不是现实规律本身而是对现实规律的一种近似表达。在水果识别任务中真实世界中“苹果”和“橘子”的差异可能很复杂并不一定能完全由一个简单公式精确表达。模型所做的是根据已有数据尽可能用一种可计算的方式去近似这种规律。因此模型本质上是任务的实现者是连接输入特征与输出结果的桥梁。四、学习过程性能的提升途径1、什么是学习过程有了数据也有了模型形式但模型一开始并不会自动识别苹果和橘子。它内部的参数例如权重和偏置需要通过数据来确定。这个从数据中确定模型参数的过程就是学习过程Learning Process也常称为训练Training。也就是说学习过程的核心任务是利用数据不断调整模型让模型的预测越来越接近真实答案。2、训练样本与训练集在训练过程中使用的数据称为训练数据Training Data其中每个样本称为训练样本Training Sample所有训练样本组成的集合称为训练集Training Set。例如前面列出的苹果与橘子样本表就可以作为一个简单的训练集。模型通过反复观察这些样本逐渐学会• 红色分量较高时更可能是苹果• 圆形度较高时也更可能是苹果• 光滑度较高时可能进一步增强“苹果”的判断。当然这些规律不是人工硬编码进去的而是通过学习过程从数据中“学出来”的。3、学习就是调整参数若把模型写成其中表示模型参数那么学习的目的就是找到一组较合适的参数使模型在训练数据上表现较好。对于线性模型来说可以理解为也就是说学习过程本质上是在寻找一组合适的权重和偏置让模型更会“分辨苹果和橘子”。4、如何判断模型学得好不好学习过程中必须回答一个问题当前模型参数好不好这就需要一个衡量标准。在机器学习中模型预测结果与真实结果之间的差异称为误差Error。误差越小通常说明模型表现越好。入门阶段可以用非常直观的分类正确与否来理解模型性能。例如• 如果真实标签是苹果模型也预测为苹果则说明预测正确• 如果真实标签是橘子模型却预测为苹果则说明预测错误在分类任务中一个常见的性能指标是准确率Accuracy可写为预测正确的样本数总样本数准确率越高说明模型在该任务上的表现越好。5、学习过程的本质从整体上看学习过程就是依据训练数据不断比较“模型预测”和“真实答案”之间的差异并据此调整模型参数使模型性能逐步提高。图 1典型的机器学习过程因此学习过程可以理解为模型性能的提升途径。它不是一次性的“算一下”而是一个不断改进的过程。五、测试、误差与泛化1、为什么不能只看训练结果如果模型在训练集上表现很好是否就说明模型已经学好了答案并不一定。因为模型有可能只是把训练样本“记住了”却没有真正掌握一般规律。因此在机器学习中不能只看模型对训练样本的表现还要看它对新样本的表现。2、测试与预测当模型训练完成后可以把它用于新的水果样本。例如给它一个未见过的样本输入其红色分量占比、圆形度和光滑度让模型预测它是苹果还是橘子。这个过程可以称为测试Testing或预测。机器学习真正关心的不只是模型能否识别训练中见过的样本更重要的是它能否正确识别新的、未见过的样本。3、训练误差与泛化误差在训练集上的误差称为训练误差Training Error也常称为经验误差Empirical Error在新样本上的表现则更能反映模型的泛化能力。所谓泛化Generalization就是模型把从训练数据中学到的规律推广到新样本上的能力。对水果识别任务来说我们真正希望得到的是这样一个模型它不只是会识别训练集中那几个苹果和橘子而是面对新的苹果和新的橘子时依然能够作出较正确的判断。这正是机器学习的核心目标学得能够适用于新样本的模型而不仅仅是在训练样本上表现良好的模型。六、三要素之间的关系通过前面的分析可以看到机器学习三要素之间并不是彼此孤立的而是构成了一个完整的学习闭环• 数据提供经验• 模型承担任务• 学习过程提升性能可以用下面的示意图来表示在苹果与橘子的识别任务中这一过程可以直观地理解为1先收集一批带标签的水果样本2再选择一种模型来表示“特征到类别”的关系3然后通过训练不断调整模型参数4最终得到一个能够识别新水果的模型。这正体现了机器学习的基本思想从经验中学习规律再用规律解决新问题。Python 示例用代码体验机器学习三要素下面的示例使用水果的三个特征红色分量占比、圆形度、光滑度训练一个模型来判断水果是苹果还是橘子。代码中可以直观看到数据、模型和学习过程是如何联系起来的。import numpy as npfrom sklearn.linear_model import LogisticRegression # # 1. 数据Data# 每一行表示一个水果样本# 每一列分别表示# 红色分量占比、圆形度、光滑度# 标签苹果1橘子0# X np.array([ [0.72, 0.85, 0.78], # 苹果 [0.35, 0.75, 0.55], # 橘子 [0.68, 0.82, 0.73], # 苹果 [0.30, 0.70, 0.50], # 橘子 [0.80, 0.88, 0.81], # 苹果 [0.28, 0.72, 0.48] # 橘子]) y np.array([1, 0, 1, 0, 1, 0]) # # 2. 模型Model# 这里使用逻辑回归模型进行二分类# 它根据输入特征学习“苹果”与“橘子”的分类规律# model LogisticRegression() # # 3. 学习过程Learning Process# 使用训练数据拟合模型# 本质上就是根据样本不断调整模型参数# model.fit(X, y) # # 4. 使用学得的模型进行预测# 下面给出两个新的水果样本# X_new np.array([ [0.75, 0.86, 0.79], # 更像苹果 [0.32, 0.73, 0.52] # 更像橘子]) pred model.predict(X_new) # 输出预测结果for i, p in enumerate(pred, start1): fruit 苹果 if p 1 else 橘子 print(f第{i}个新样本预测结果{fruit}) # # 5. 查看模型在训练集上的准确率# 用于直观理解性能Performance# accuracy model.score(X, y)print(训练集准确率, accuracy)从这段代码可以看到• X 和 y 构成了训练所需的数据• LogisticRegression() 给出了一个具体模型• model.fit(X, y) 表示学习过程• model.predict(X_new) 体现了模型对新样本的预测能力• model.score(X, y) 则给出了一个简单的性能指标因此这段程序正好对应了机器学习三要素的协同关系数据提供经验模型表达规律学习过程完成训练最终得到可用于预测的新模型。 小结机器学习的三要素是数据、模型和学习过程。数据是经验 E 的载体模型是任务 T 的实现者学习过程是性能 P 的提升途径。以苹果与橘子的识别任务为例机器学习就是利用带标签的样本数据通过训练得到一个能够区分两类水果、并能推广到新样本上的模型。“点赞有美意赞赏是鼓励”

更多文章