2017-08-07 53 views
2

我有一個包含2500個實例的數據集。數據集中有一個屬性,我想根據它的值創建不同的線性迴歸模型(因此我使用迴歸樹)使用新數據更新迴歸樹

我想知道如何更新模型,何時出現新實例(約100個實例)每小時加載到數據集。我不想每次都從頭開始創建模型。

(我打算使用Weka的庫,但我接受任何其他的Java學習機庫,可以幫助我在這個意義上)

+0

我相信你可以在python sklearn中做到這一點。檢查http://scikit-learn.org/stable/modules/scaling_strategies.html「增量學習」 – Stergios

+0

@Stergios我在Java中做它。 –

回答

0
一般

,你可能已經暗示了默認的態度是再次從頭開始。儘管如此,有一種非常簡單的方法可以在不重建太多時間的情況下改進樹。

爲了您的n個數據記錄,我會建議使用以下方法:

如果
  • 看在一個葉節點誤差大於你能忍受這些樣品
  • 看,如果這種特定的葉節點你必須大於m(邊界,你需要選擇)樣本,超出你的容忍邊界
  • 產品圖他們,在這個葉節點年底建立一個新的非常小的樹

如果您使用sklearn,可以使用如下方法:dtree.decision_pathdtree.apply這可能對您有所幫助。詳情參見

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

我猜想,你的情況非常小的樹,在加入主樹的結尾「求精」就足夠了。我更熟悉sklearn和MATLAB,但我認爲Weak提供了類似的方法。

好速度

0

我會建議你在哪裏得到保存模型和重新加載它們,如果多數民衆贊成你問你用R或tensorflow。 據我所知,你想改善你的模型爲每個新的100個實例,對吧? 如果是這樣的話,那麼R,tensorflow或sklearn應該會有所幫助,並且會建議您嘗試python進行機器學習。