使用新数据更新回归树

时间:2017-08-07 18:38:30

标签: java machine-learning weka

我有一个包含2500个实例的数据集。数据集中有一个属性,我想基于其值创建不同的线性回归模型(因此我使用的是回归树)

我想知道当新实例(~100个实例)每小时加载到数据集时,我如何更新模型。我不想每次都从头开始创建模型。

(我打算使用Weka库,但我对任何其他可以帮助我的java机器学习库开放)

2 个答案:

答案 0 :(得分:0)

一般情况下,您可能已经建议默认方法是从头开始。然而,有一种非常直接的方法可以在不经常重建树的情况下改进树。

对于你的n个数据记录,我建议采用以下方法:

  • 查看一个叶节点中的错误是否大于您可以容忍这些样本的错误
  • 查看此特定叶节点是否超出m(您需要选择的边界)样本超出容差范围
  • 对它们进行拍照并在此叶节点的末尾构建一个新的非常小的树

如果您使用sklearn,则可以使用 dtree.decision_path dtree.apply 等方法。有关详细信息,请参阅

http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html#sklearn.tree.DecisionTreeRegressor

我猜想在你的情况下,在主树的末尾添加一个非常小的树以进行“细化”就足够了。我更熟悉sklearn和MATLAB,但我认为Weak提供了类似的方法。

速度快

答案 1 :(得分:0)

我建议您使用R或tensorflow来保存模型并重新加载它们,如果这就是您所要求的。 据我所知,你想为每个新的100个实例改进你的模型,对吧? 如果是这种情况,那么R,tensorflow或sklearn应该有所帮助,并建议你尝试使用python进行机器学习。