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