模型预测你好
我正在研究一个包含约 3000 条记录和约 100 个预测因子的数据库。响应是一个具有良好高斯分布的电气参数。数据库是一个多变量时间序列,因为响应和预测因子都与时间有关。预测因子是在生产线上的特定工艺步骤中收集的,而电气参数是在约 2 周后测量的。这里的想法是使用机器在线数据(预测因子)来预测电气测量值。
作为第一个模型,我使用了随机森林。训练组和测试组的 R2 和误差都非常好。无论如何,当我尝试将模型部署到从未见过的数据上时,模型性能非常糟糕。我能够用随机森林推断的弱点来解释这种行为。然后排除基于模型树的模型,唯一的选择仍然是多项式拟合和神经网络。第一个在 R2 和误差方面不可接受,而具有 2 层和 3 个激活函数的 NN 能够在训练和测试数据上返回良好的 R2 和误差。然后,一旦我建立了模型,我就将它部署到从未见过的数据(图形生成器中的星号)上。即使趋势预测是正确的,单个值却不正确。特别是从未见过的数据上的 NN 显示出非常高的可变性。所以在这个故事的结尾,我没有 JMP 中的任何其他模型可以测试。至少这是我的想法。有人能给我一些技巧或建议来解决这个问题吗?
在附件的 ppt 中列出了所有图表。
谢谢菲利斯
数据探索与可视化回复:模型预测感谢所有回复我帖子的人。 好的观察。 我试图做一些简单的实验来更好地理解这个问题。
在附上的ppt中我的结论和结果。欢迎任何意见和建议。
幸福
回复:模型预测正如您所说,您不会将观察结果随机分配给训练、验证和测试。 我没有看到有人说是随机分配的,但如果是这样,就不应该这样做。 您根据时间进行分配。 训练集是最旧的,验证是下一组,测试是最后一组。 这种方式很好地表明了预测能力。
训练、验证和测试集需要代表稳定过程。 如果你很好地适应训练和验证,而不是测试,那自然会让人相信发生了什么事情改变了测试集。 无论它发生/改变了什么,都应该是模型中的另一个预测因素。
回复:模型预测我尊重这里的其他评论,因为那些人对这些事情的了解比我多。但有一个问题他们没有提到,我想我会提出来。既然是多元时间序列数据,那么使用随机验证和测试数据集有什么意义呢?这不是忽略了数据中的时间结构吗?当然,您可以使用神经网络、随机森林等,但我不希望在新数据上表现很好,因为这些模型忽略了数据中的时间结构。对于时间序列数据,我会认为测试数据应该是一个连续的观察范围,所以可以对时间结构进行建模和测试。那么,将这些方法与随机验证和测试数据集一起用于您拥有的时间序列数据是否合适?
回复:模型预测我同意一切@Dan_Obermiller和@statman推荐或说明。
另一个想法……由于您似乎正在处理偶然的历史生产过程和数据,您是否有能力运行设计的实验? 我走这条路的原因是,如果你的基于历史信息的模型不能特别扩展到未来的观察,那么很可能还有其他重要的因果变量进入系统,而历史数据没有从效果建模的角度考虑这些变量观点...但您可以将其中一些纳入以 DOE 为中心的调查。
你正在大海捞针,我知道没有比 DOE 更有效的方法了。 例如,您可能没有使用历史过程数据来考虑生产中的原材料变化,但在 DOE 类型的调查中,您有多种选择来处理这种事情,例如阻塞。 或者如果作为@statman建议如果存在效应稀缺,也许最终筛选设计可以工作?
这里的想法是利用您过去的建模工作和您学到的知识,以及您的过程知识,并使用 DOE 的力量来帮助您找到“有用的模型”。
在我从事工业工作期间,一位与我共事的聪明工程师说过一句话:“在我们可以随意打开和关闭故障模式之前,我们不了解这个过程。” DOE 是让我们“……理解过程”的唯一最有效的方法。
回复:模型预测还有几点需要考虑:在您尝试过的模型上有多个选项需要考虑,这可能会提高拟合度。 对于随机森林:你用了多少棵树? 你有没有尝试更多? 每棵树有多大? 你试过把它们变大吗? 是什么让您认为具有 3 个节点的神经网络就足够了? 你尝试过多次旅行吗? 您是否尝试过使用增强型神经网络? 如果是这样,您是否尝试过更改学习率? 如果您发现验证集和测试集性能之间确实存在很大差异,是否发生了某些改变会使测试集变得如此不同? 它还可能会质疑您如何在训练、验证和测试之间拆分数据。
但是,如果您对训练、验证和测试集的创建感到满意并相信它们都具有代表性,那么还有改进模型的选项和方法。 给定足够的节点和搜索迭代,神经网络可以提供完美的拟合,因为它是一个通用逼近器。 但这是不可取的,因为它只适合该数据,而不适合未来的数据(见@statman的评论)。 所以请记住,期待一个“完美”的预测是不现实的。 两个都@P_Bartell和@statman指出要考虑的事情。 你真的不应该期望比你的测量系统误差做得更好。 这使您可以为预测误差设置一个现实的目标。
回复:模型预测不幸的是,在预测方面开发良好的模型并非易事。 R^2 是枚举统计量。 它仅适用于手头的数据。 模型的 RMSE 是枚举统计量,仅适用于手头的数据集。 模型的外推不是枚举问题(参见戴明:枚举与分析问题),而是获取代表未来条件的数据的练习。 显然,您用来对现有数据建模的数据集并不代表未来的情况。 在这里没有任何统计方法可以帮助您。 您的测量系统可能存在问题,因为@P_Bartell建议或许多其他原因说明您的数据集不代表未来的情况。 该过程是否稳定(根据 Shewhart)? 也许您应该在尝试对其建模之前进行定向采样以了解该过程。 我怀疑所有 100 个预测变量对相关响应变量都具有相同的影响(参见效果稀缺性原则)。
回复:模型预测这里有几个想法给你:
1. 你对你的测量系统变异了解多少? 如果接近“无”……我会绕过您对因果/预测建模的研究,以包括测量系统变异性研究。 生产数据收集和响应测量之间的两周滞后导致从训练/验证到外推到未来预测和结果的漂移或高度可变的测量系统。
2. 您有 JMP Pro 吗...时间序列功能数据探索和分析是 JMP Pro 的标志性功能之一,您的研究是为功能数据探索量身定制的。 有关详细信息,我建议观看此点播网络研讨会:功能数据浏览器