神经网络是极为灵活的模型,有可能会出现数据过拟合的问题。发生这种情况时,模型可以很好地预测拟合数据,但不能很好地预测将来观测。为此,“神经”平台采用了以下方法来避免发生数据过拟合:
• 对模型参数应用罚值
• 使用独立的数据集评估模型的预测能力
验证是使用数据集的一部分估计模型参数并使用另一部分评估模型预测能力的过程。
• 训练集是估计模型参数的那部分数据。
• 验证集是估计最优罚值并评估或验证模型预测能力的那部分数据。
• 测试集是对模型预测能力的最终独立评估。仅当使用验证列时才能使用测试集。
通过将原始数据细分为不同子集来创建训练集、验证集和测试集。选择以下方法之一来取数据集的子集。
保留排除行
使用行状态对数据取子集。未排除的行用作训练集,排除的行用作验证集。
有关使用行状态和如何排除行的详细信息,请参见《使用 JMP》中的隐藏和排除行。
保留
将原始数据随机划分为训练集和验证集。您可以指定要用作验证集(保留)的数据占原始数据的比例。
K 重
将原始数据划分为 K 个子集。这 K 个子集依次对基于剩余 k-1 个子集的数据构建的模型进行验证,总共拟合 K 个模型。给出最佳验证统计量的模型将被选为最终模型。
该方法最适合小数据集,因为它能充分利用有限的数据。
验证列
使用该列的值将数据划分为多个部分。可以使用“神经”启动窗口中的“验证”角色分配该列(Figure 3.3)。
该列的值将确定如何拆分数据以及使用什么方法进行验证:
‒ 若该列有三个唯一值,则:
最小值用于训练集。
中间值用于验证集。
最大值用于测试集。
‒ 若该列有两个唯一值,则仅使用训练集和验证集。
‒ 若该列包含三个以上唯一值,则执行 K 重验证。