模型验证和测试
您不能仅仅因为模型与训练数据完美契合而信任它。原因很简单:您强制模型拟合训练数据!
解决方案:模型验证。验证使用模型来预测训练数据之外情况下的输出,并计算这些结果的相同统计拟合度量。这意味着您需要将数据集划分为两个不同的数据文件。第一个是用于生成模型的训练数据集,第二个是验证数据集,用于根据未用于训练模型的数据检查模型的准确性。
模型开发、验证和测试的 7 个步骤
- 创建开发、验证和测试数据集。
- 使用训练数据集开发模型。
- 计算标识模型开发性能的统计值。
- 将模型结果计算到验证数据集中的数据点。
- 计算统计值,将模型结果与验证数据进行比较。
- 将模型结果计算到测试数据集中的数据点。
- 计算统计值,将模型结果与测试数据进行比较。
假设您正在为一个项目创建多个模型。自然的选择是选择最准确地拟合您的验证数据的模型并继续前进。但是,现在我们还有另一个潜在的陷阱。仅仅因为模型与验证数据紧密匹配并不意味着模型与现实匹配。虽然有问题的模型在这个特定的测试中表现最好,但它仍然可能是错误的。
最后一步,也是问题的最终解决方案,是在验证阶段表现最好的模型与第三个数据集:测试数据进行比较。同样,此测试数据是原始数据源中数据的子集。它仅包含模型开发和验证中既未使用的点。只有当我们将模型与测试数据进行比较时,我们才会认为模型可以使用,并且统计计算显示令人满意的匹配。
从彼得·格兰特那里获得更多什么是多元回归?
模型开发、验证和测试:循序渐进
这个过程分为七个步骤。
1. 创建开发、验证和测试数据集
首先,您有一个大型数据集。请记住:您需要将其分解为三个单独的数据集,每个数据集仅用于项目的一个阶段。创建每个数据集时,请确保它们包含高极值和低极值以及每个变量范围中间的数据点的混合。此过程将确保模型在频谱的所有范围内都是准确的。此外,请确保大部分数据都在训练数据集中。模型只能与用于创建它的数据集一样准确,更多的数据意味着更高的准确性机会。
2. 使用训练数据集开发模型
将数据集输入到模型开发脚本中,以开发您选择的模型。您可以开发几种不同的模型,具体取决于可用的数据源和需要回答的问题。(可以在从头开始的数据科学中找到有关模型类型的更多信息。在此阶段,您需要创建多个不同结构的不同模型,或多个不同顺序的回归模型。换句话说,生成您认为可能表现良好的任何模型。
来自内置数据科学专家的更多信息泊松过程和泊松分布,解释(用流星!
3. 计算统计值,识别模型开发性能
开发模型后,需要将它们与使用的训练数据进行比较。性能较高的模型比较性能较低的模型更好地拟合数据。为此,您需要计算为此目的设计的统计值。例如,检查回归模型性能的常用方法是计算 r² 值。
4. 将模型结果计算到验证数据集中的数据点
在此步骤中,你将使用验证数据作为模型的输入数据来生成预测。然后,需要将模型预测的值与验证数据集中的值进行比较。完成后,您将同时获得实际值(来自数据集)和预测值(来自模型)。这允许您将不同模型的性能与验证数据集中的数据进行比较。
训练、测试和验证集,说明
5. 计算统计值,将模型结果与验证数据进行比较
现在,您已经拥有验证数据集中每个实例的数据值和模型预测,您可以计算与以前相同的统计值,并将模型预测与验证数据集进行比较。这是该过程的关键部分。
第一个统计计算确定了模型与您强制拟合的数据集的拟合优度。在这种情况下,您需要确保模型能够匹配单独的数据集,该数据集对模型开发没有影响。在每个模型上完成您选择的统计计算,然后选择性能最高的模型。
想了解更多关于建模的信息?偏差-方差权衡简介
6. 将模型结果计算到测试数据集中的数据点
使用测试数据集作为模型的输入来生成预测。仅使用验证阶段中性能最高的模型执行此任务。完成此步骤后,您将拥有数据集中每个输入数据实例的实际值和模型的相应预测。
7. 计算统计值,将模型结果与测试数据进行比较
最后,执行您选择的统计计算,将模型的预测与数据集进行比较。在这种情况下,您只有一个模型,因此您没有寻找最合适的模型。相反,您需要检查以确保模型与测试数据集足够接近以令人满意。
开发与测试数据集匹配的模型后,即可开始生成预测。不过,不要以为这意味着您已经完全完成了模型开发;您很有可能最终决定需要根据新的可用数据集调整模型。