Python 滞后参数预测

Python 滞后参数预测,python,scikit-learn,Python,Scikit Learn,亲爱的Stackoverflow用户您好, 我刚开始使用Python,很想向你学习 石油和天然气行业中有两组相同变量的数据。 第一组数据立即在表面上测量,与实际值有一点偏差。 第二组是滞后的(最多20分钟的滞后),但准确,因为它是在地下深处测量的 如何使用第一组数据提前预测第二组数据?例如,我想在前200个数据点上训练模型,然后使用下200个数据点预测滞后数据。但是,下面的代码给出了非常错误的值。原因可能是什么 import pandas as pd from sklearn.ensemble

亲爱的Stackoverflow用户您好, 我刚开始使用Python,很想向你学习

石油和天然气行业中有两组相同变量的数据。 第一组数据立即在表面上测量,与实际值有一点偏差。 第二组是滞后的(最多20分钟的滞后),但准确,因为它是在地下深处测量的

如何使用第一组数据提前预测第二组数据?例如,我想在前200个数据点上训练模型,然后使用下200个数据点预测滞后数据。但是,下面的代码给出了非常错误的值。原因可能是什么

import pandas as pd
from sklearn.ensemble import RandomForestRegressor

sf=pd.read_csv("/Users/straminal/Desktop/DR/SF.csv", names=.['a','b','c','d','e','f','g','h'])
dh=pd.read_csv("/Users/straminal/Desktop/DR/DH.csv", names=['a','b','c','d','e'])

Surface1=sf.iloc[0:200,1]
Downhole1=dh.iloc[0:200,1]
Surface2=sf.iloc[200:400,1]

X1=[Surface1]
Y1=[Downhole1]
X2=[Surface2]
clf = RandomForestRegressor(n_estimators=100)
clf.fit(X1, Y1)

Downhole2 = clf.predict(X2)
print (Downhole2)

谢谢。

我想你不能总是100%准确地预测。总会有残差,但如果你使用一个好的模型,长期残差之和应该是零

我不确定森林是做这项工作的最佳方式

看看卡尔曼滤波器

图表:

图表中的噪声测量是表面测量,实际测量是井下测量

另外,这个链接提供了一个很好的解释

从维基:

卡尔曼滤波器在美国海军核弹道导弹潜艇导航系统的实施中,以及在美国海军战斧导弹和美国空军空射巡航导弹等巡航导弹的制导和导航系统中起着至关重要的作用。它们还用于可重复使用运载火箭的制导和导航系统以及停靠在国际空间站的航天器的姿态控制和导航系统