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
其中,每个索引位置的值等于上一个索引位置的原始值