Python 天真的预测未来一天
我想用我拥有的数据集做一个简单的预测,我正在努力做到这一点Python 天真的预测未来一天,python,pandas,statistics,Python,Pandas,Statistics,我想用我拥有的数据集做一个简单的预测,我正在努力做到这一点 values = DataFrame(dataset.iloc[:, -1]) Y_naive = pd.concat([values.shift(24), values], axis=1) Y_naive.columns = ['t', 't+1'] x = Y_naive.values 我基本上拥有的是每小时一次的数据,我想在其中比较最后一列的表现形式{0,1}。因为我想将这个天真的预测与其他日前预
values = DataFrame(dataset.iloc[:, -1])
Y_naive = pd.concat([values.shift(24), values], axis=1)
Y_naive.columns = ['t', 't+1']
x = Y_naive.values
我基本上拥有的是每小时一次的数据,我想在其中比较最后一列的表现形式{0,1}。因为我想将这个天真的预测与其他日前预测进行比较,所以我想使用前一天(班次(24))的数据来预测实际表现。
天真预测:
def naive_forecast(x):
return x
predictions = list()
for x in test_x:
yhat = naive_forecast(x)
predictions.append(yhat)
对我来说,这是非常不清楚如何做映射过程。这意味着如何放弃这样一个论点:对于二进制分类测试,我希望使用24小时前的数据,以迭代方式将其映射到整个数据集的数据上。()如果不清楚原始数据帧的外观,这将很难回答。值的列和行是什么 我会尽力回答你的问题。简单的预测只是前一时期的价值。假设您的原始数据帧设置为
索引“原始”
时间1 x1
时间2 x2
时间3 x3
NaivePrediction列中的值只会被原始值转移到适当的时间索引中。通过一个简单的df示例
索引“原始”
2017-08-19 17:49:08.102868 0
2017-08-20 17:49:08.109869 1
2017-08-21 17:49:08.109869 2
2017-08-22 17:49:08.109869 3
换班一天:
naive_prediction=df.shift(1,freq=datetime.timedelta(days=1))
naive_prediction.columns=['naive_prediction']
返回
索引“原始预测”
2017-08-20 17:49:08.102868 0
2017-08-21 17:49:08.109869 1
2017-08-22 17:49:08.109869 2
2017-08-23 17:49:08.109869 3
现在我们只需要修改这两个数据帧,naive_prediction列将包含每个索引位置的适当值
final\u df=df.merge(原始预测,how=“outer”,left\u index=True,right\u index=True)
它应该返回一个
索引“原始”“原始预测”
2017-08-19 17:49:08.102868 0南
2017-08-20 17:49:08.109869 1 0
2017-08-21 17:49:08.109869 2 1
2017-08-22 17:49:08.109869 3 2
2017-08-23 17:49:08.109869南3
每个索引位置的值等于上一个索引位置的原始值。如果不清楚原始数据帧的外观,这将很难回答。值的列和行是什么 我会尽力回答你的问题。简单的预测只是前一时期的价值。假设您的原始数据帧设置为
索引“原始”
时间1 x1
时间2 x2
时间3 x3
NaivePrediction列中的值只会被原始值转移到适当的时间索引中。通过一个简单的df示例
索引“原始”
2017-08-19 17:49:08.102868 0
2017-08-20 17:49:08.109869 1
2017-08-21 17:49:08.109869 2
2017-08-22 17:49:08.109869 3
换班一天:
naive_prediction=df.shift(1,freq=datetime.timedelta(days=1))
naive_prediction.columns=['naive_prediction']
返回
索引“原始预测”
2017-08-20 17:49:08.102868 0
2017-08-21 17:49:08.109869 1
2017-08-22 17:49:08.109869 2
2017-08-23 17:49:08.109869 3
现在我们只需要修改这两个数据帧,naive_prediction列将包含每个索引位置的适当值
final\u df=df.merge(原始预测,how=“outer”,left\u index=True,right\u index=True)
它应该返回一个
索引“原始”“原始预测”
2017-08-19 17:49:08.102868 0南
2017-08-20 17:49:08.109869 1 0
2017-08-21 17:49:08.109869 2 1
2017-08-22 17:49:08.109869 3 2
2017-08-23 17:49:08.109869南3
其中,每个索引位置的值等于上一个索引位置的原始值