模型在历史数据上拟合得很好,换一批样本,预测误差却明显增加,这时继续提高训练集的拟合优度未必有用。JMP如何用验证集评估预测模型的泛化能力JMP训练集拟合良好但验证集误差偏大如何分析,需要先确认数据怎样划分、哪些样本真正参与了建模,再检查误差集中在哪里。以下以连续响应预测为例,验证列的自动创建及角色设置主要采用JMP Pro功能。
一、JMP如何用验证集评估预测模型的泛化能力
验证集应模拟模型将来遇到的数据。预测下一批产品,与预测同一批产品中尚未检测的样本,对数据划分的要求并不一样。
1、按应用场景创建验证列
①在JMP Pro中打开【Analyze】→【Predictive Modeling】→【Make Validation Column】,根据数据结构选择划分方式。
②需要平衡类别比例时,将相关列加入【Stratification Columns】;同一对象有多条记录时,考虑使用【Grouping Columns】;预测未来数据时,按时间使用【Cutpoint Column】划分。
③设置【Training Set】、【Validation Set】和【Test Set】比例,随机划分时填写【Random Seed】,点击【Go】生成验证列。
不要为了凑出某个比例拆散同一对象的重复测量。训练集和验证集过于相似,得到的成绩可能很好,却不能代表对新对象的预测能力。
2、确认验证列进入模型设置
①打开【Analyze】→【Fit Model】,将响应加入【Y】,添加预测变量,选择【Standard Least Squares】,再将划分列指定给【Validation】。
②运行模型,检查报告是否出现【Crossvalidation】,并核对训练、验证和测试样本数量。
以该平台为例,数值较小的验证列水平对应训练集,其后依次为验证集、测试集。仅在表中增加一列文字标记,并不等于拟合过程已经排除了验证样本。
3、用同一口径比较预测误差
①在【Crossvalidation】中比较各数据集的【RASE】、【RSquare】及样本数量,不要把训练报告中口径不同的误差指标直接拼在一起。
②从报告红三角选择【Save Columns】→【Prediction Formula】,保留预测结果,供后续按批次、时间和响应范围检查。
RASE按预测误差平方的平均值开方,与响应使用相同单位。R²还受样本响应波动范围影响,验证集R²下降时,应同时看实际误差,不能只凭一个数判断模型是否失效。
二、JMP训练集拟合良好但验证集误差偏大如何分析
先保留当前模型和划分,不要一看到差距就换随机种子。需要弄清楚的是:模型记住了训练样本中的偶然变化,还是验证数据已经超出原来的适用范围。
1、检查复杂度是否超过数据支持
①返回【Fit Model】,保留同一验证列,减少缺乏依据的高阶项和交互项,重新运行,比较【Crossvalidation】中的验证误差。
②分别保存原模型与简化模型的【Prediction Formula】,查看误差改善发生在哪些样本,而不只比较汇总值。
③打开【Graph】→【Graph Builder】,以预测值和实际值绘图,再检查残差随预测值的变化。
如果简化后训练误差略有增加,验证误差反而下降,说明原模型可能拟合了部分偶然波动。但若两组误差都很大,或残差仍有明显弯曲趋势,还应检查遗漏变量、模型形式和测量噪声。
2、检查样本差异与数据处理过程
①打开【Analyze】→【Distribution】,选择主要预测变量和响应,将验证分组列加入【By】,比较范围、缺失情况及类别覆盖。
②在【Graph Builder】中按时间、设备或批次观察残差,确认误差是普遍增加,还是集中在某个工况。
③通过【Cols】→【Column Info】检查公式列及数据来源,核对是否使用了预测发生后才知道的信息,以及缺失填补、标准化等处理是否提前利用了验证数据。
例如训练样本只覆盖较低温度,验证样本却大多来自高温段,误差增加可能与外推有关。此时应说明数据覆盖不足,不能只靠增加模型项解决。确认数据录入错误可以修正;真实但难预测的样本,不宜为了降低误差直接删除。
三、JMP如何判断修改后的模型是否值得保留
比较模型时,要给各方案相同的评估条件。反复换数据划分、只留下最好的一次,会让验证结果逐渐失去参考价值。
1、固定划分并保存比较依据
①保留验证列,通过报告红三角的【Save Script】保存分析设置,另存模型版本和使用的预测变量。
②比较新旧模型的【Crossvalidation】,同时记录验证误差、样本数量及主要失误工况。需要重复划分或交叉验证时,预先确定方案,不挑选成绩最好的一次汇报。
小验证集容易被少数样本左右。结果波动较大时,应报告这种不稳定性,并检查不同划分下结论是否一致。
2、增加一个简单的对照模型
①在【Fit Model】中仅保留有业务依据的少量主效应,使用同一【Validation】列重新拟合。
②比较简单模型与复杂模型的验证【RASE】。若改善很小,再结合维护难度、输入变量获取成本和误差分布决定是否保留复杂方案。
复杂模型训练成绩更好,不足以成为采用它的理由。真正用于预测时,还要考虑输入是否及时、稳定地取得。
3、用未参与选模的数据做最终检查
①选定模型后,使用此前保留的测试集,查看【Crossvalidation】中的【Test】结果,再检查关键批次和边界样本。
②通过【Save Columns】→【Prediction Formula】保留预测公式,对后续新批次记录预测值与实测值,按约定误差要求复核。
测试结果一旦被用于继续调参,就不再属于完全独立的最终检验。还需要新的数据,才能重新评估修改后模型的表现。
总结
JMP如何用验证集评估预测模型的泛化能力JMP训练集拟合良好但验证集误差偏大如何分析,取决于验证数据能否代表将来的使用场景。训练与验证之间存在差距,需要结合模型复杂度、数据覆盖和处理流程解释,不能简单归为过拟合。保留统一的比较条件,并用未参与选模的数据验收,才能知道改善是否可靠。希望这些方法能帮助大家更客观地判断预测结果,有相关需求也欢迎进一步交流。
