gpt4 book ai didi

python - 使用python sklearn增量训练随机森林模型

转载 作者:太空狗 更新时间:2023-10-30 00:27:28 25 4
gpt4 key购买 nike

我正在使用以下代码保存随机森林模型。我正在使用 cPickle 来保存经过训练的模型。当我看到新数据时,我可以增量训练模型吗?目前,火车集有大约 2 年的数据。有没有办法再训练 2 年并将其(某种程度上)附加到现有的已保存模型中。

rf =  RandomForestRegressor(n_estimators=100)
print ("Trying to fit the Random Forest model --> ")
if os.path.exists('rf.pkl'):
print ("Trained model already pickled -- >")
with open('rf.pkl', 'rb') as f:
rf = cPickle.load(f)
else:
df_x_train = x_train[col_feature]
rf.fit(df_x_train,y_train)
print ("Training for the model done ")
with open('rf.pkl', 'wb') as f:
cPickle.dump(rf, f)
df_x_test = x_test[col_feature]
pred = rf.predict(df_x_test)

编辑 1:我没有计算能力来一次用 4 年的数据训练模型。

最佳答案

sklearn User Guide 中讨论了您所说的,使用附加数据增量更新模型。 :

Although not all algorithms can learn incrementally (i.e. without seeing all the instances at once), all estimators implementing the partial_fit API are candidates. Actually, the ability to learn incrementally from a mini-batch of instances (sometimes called “online learning”) is key to out-of-core learning as it guarantees that at any given time there will be only a small amount of instances in the main memory.

它们包括实现 partial_fit() 的分类器和回归器列表,但 RandomForest 不在其中。您还可以确认 RFRegressor 没有实现部分拟合 on the documentation page for RandomForestRegressor .

一些可能的前进方向:

  • 使用实现 partial_fit() 的回归器,例如 SGDRegressor
  • 检查您的 RandomForest 模型的 feature_importances_ 属性,然后在删除不重要的特征后根据 3 或 4 年的数据重新训练您的模型
  • 如果您只能使用两年的数据,则仅使用最近两年的数据训练您的模型
  • 在从所有四年数据中抽取的随机子集上训练您的模型。
  • 更改tree_depth 参数以限制模型的复杂程度。这可以节省计算时间,因此可以让您使用所有数据。它还可以防止过度拟合。使用交叉验证为您的问题选择最佳的树深度超参数
  • 如果您还没有设置您的 RF 模型的参数 n_jobs=-1,以便在您的机器上使用多个内核/处理器。
  • 使用更快的基于集成树的算法,例如 xgboost
  • 在云中的大型机器上运行模型拟合代码,例如 AWS 或 dominodatalab

关于python - 使用python sklearn增量训练随机森林模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44060432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com