【问题标题】:How to use RandomForest to predict a result after n days?如何使用 RandomForest 预测 n 天后的结果?
【发布时间】:2018-09-15 13:26:30
【问题描述】:

如何使用随机森林分类器进行预测?但未分类测试数据?

例如,我有一个类似的数据集

  1. [日期、温度、湿度、变化]
  2. [2018-04-05, 30, 75%,nan]
  3. [2018-04-06, 30, 90%,0]
  4. [2018-04-07, 31, 80%,1]
  5. [2018-04-08, 32, 50%,1]
  6. [2018-04-09, 29, 80%,-1]

“变化”是要预测的目标。我想预测未来 10 天内所有的“变化”值。我该怎么做?我正在使用 Python。谢谢!!

【问题讨论】:

  • 对于这个 1E+3、1E+4、1E+5,你有多少个观察数据点?
  • @user3666197 抱歉,我不太了解您关于“观察数据点”的问题。但我有一个包含 26 个特征和一个目标的 csv 文件。
  • 没关系,[Date, Temp, Humid, Change ]数据行数你准备好使用了吗?
  • 大约 10 行数据。

标签: python scikit-learn random-forest decision-tree prediction


【解决方案1】:

您不会使用 RandomForestClassifier() 模型集合,

但是 .RandomForestRegressor() 代替。


主要工作流程如下:

您将实例化用于回归的监督学习“空”集成模型:

   aRfREGRESSOR = sklearn.ensemble.RandomForestRegressor( <_Learner_PARAMETERs_> )

接下来,

您将准备训练数据:

 X = transform_input_data_into_X_features_( <_input_data_on_MEASUREMENTs_> )
 y = transform_input_data_into_Y_GND_TRUTH( <_input_data_on_CHANGE_on_10thDAY_after> )

接下来,

您将使用监督训练方法训练模型,同时提供 X(观察)和 y(各自的预测目标): p>

 aRfREGRESSOR.fit( X, y )

接下来,

集成模型现在可以进行预测了:

aRfREGRESSOR.predict( transform_input_data_into_X_features(  <_a_MEASUREMENT_> ) )

【讨论】:

  • 感谢您的回答。但是我可以将其更改为分类问题吗?例如,我想将接下来 5 天的温度分类为数据集中的增加或减少,而不是温度的确切值。我可以吗?
  • 为什么不呢,还要为每个这样的任务创建另一个模型。如果训练 Up_or_Down_Temperature_after_5_Days_from_Now 预测器,可以享受基于集成的分类器,以尽可能从已知数据中学习(使用监督学习过程)。
  • 我已经建立了一个 RF 分类器模型,但是我得到了 100% 准确率和 OOB 错误的结果......我该如何解决它?
猜你喜欢
  • 2016-01-02
  • 1970-01-01
  • 2013-05-23
  • 2012-11-06
  • 1970-01-01
  • 2013-01-23
  • 2016-06-02
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多