假设你有一个数据集,就像一套你想用来准备考试的闪卡。为了做好充分准备,你不会只记忆闪卡,然后用 一模一样 的卡片来测试自己。你会学习一套,然后用一套你从未见过的新卡片来测试自己,看看你是否真的掌握了所学内容。训练集 就像你一开始学习的闪卡。它是你的整体数据集中,直接输入机器学习算法的特定部分。它的主要作用是让模型 学习。这里说的“学习”是什么意思?在训练阶段,模型会检查训练数据,寻找模式、关联和结构。对于一个分类任务(例如识别垃圾邮件),模型会学会哪些输入特征(词语、发件人地址等)与哪个类别(垃圾邮件或非垃圾邮件)相关联。对于一个回归任务(例如预测房价),模型会学会输入特征(房屋面积、卧室数量、位置等)如何组合以估计一个数值(价格)。实际上,模型会根据训练集中的例子调整其内部参数。它会尝试找到一种数学表示或一套规则,将输入特征与此训练数据中已知的输出标签或值关联起来。可以把它看作模型 仅 依据这部分特定数据来构建其对问题的理解。用于训练模型的数据集通常包含两部分:输入特征: 用于预测的可测量属性或变量(例如,邮件文本、图像像素、房屋大小)。通常表示为 $X$。输出标签/值: 模型试图预测的正确答案或目标(例如,“垃圾邮件”/“非垃圾邮件”、实际房价)。通常表示为 $y$。模型在训练集中使用 $X$ 和 $y$ 来找出映射 $f$,使得 $f(X)$ 接近 $y$。因为模型明确使用训练集来调整自身并学习这些模式,所以其 在此数据上 测得的性能可能会误导性地高。模型可能只是简单地记住了训练样本,包括它们的噪声和特定特点,而不是学会了更普遍的模式。这就是为什么我们绝对需要一个单独的数据集,即测试集(我们接下来会讨论),以便对模型在新数据上表现如何进行诚实的评估。通常,训练集占你总数据的较大比例(常见的划分是训练集占70%或80%),因为给模型提供更多例子通常有助于它学习更多模式。