预测曲线拟合matlab

时间:2017-03-07 12:29:30

标签: matlab machine-learning curve-fitting prediction least-squares

我有一个关于曲线拟合的问题,我有许多曲线,如图中的曲线。

X轴:时间 Y轴:温度

每个样品每30秒出现一次。

目标:预测瞬态结束时的值

在这种情况下你会做什么? 我在做什么是这样的: 对于每个新样品,我开始一个新的拟合(因此每个拟合独立于前一个)并在测量开始后检查拟合曲线的值2小时(我在2小时之前设置的所有曲线)。如果对于后续拟合的数字(假设为5),将来的值保持大致相同(+ - 0.2°C),我假设估计是正确的。

这种方法在我看来太简单了,我认为我没有利用所有信息。例如,我正在准时制作的错误信息(例如,在我预测的4:00时,我在4:30看到我正在做错误。)

enter image description here

在图片中,曲线的红色部分被排除(但未来的真实数据会通过它)。估计是蓝色的。你看,在这种情况下,我没有一个好的预测...一般来说,我也有更平坦的曲线。

1 个答案:

答案 0 :(得分:0)

根据上面的评论,我试图制定一个答案,因为没有其他人提供一些意见

我认为你正在使用一个很好的基本程序。通过使用更合适的拟合曲线可以获得更好的结果,该曲线包括所有主导动力学,但避免了overfitting数据。根据你的数字,我能想到的最简单的形式是:

s + a(1-e^(-t/tau))

参数s(初始温度),a(幅度=稳态值)和tau(显性时间常数)。正如您自己提到的那样,限制参数的允许范围可以避免过度拟合并提高估算质量。

使用随机高阶函数,就像您现在使用的那样,可以提供良好的插值结果,但是用于外推是危险的,因为在拟合区域之外可能会发生奇怪的效果。

<强>替代

使用错误(例如,校正外推错误)可能是可能的,但是很棘手,并且可能并不总能给出好的结果。

训练神经网络来执行估算可能有点过分,但如果正确应用可能会给出更好的结果。请注意,您需要大量的训练数据,这些数据应代表您稍后将使用神经网络的数据。