Python
使用決策樹進行增量學習 (scikit-learn)
我正在嘗試使用我擁有的一些非常大的數據來訓練回歸樹:大約 3Tb。
我正在使用 scikit-learn,當然我無法將這麼多的數據加載到內存中。做一些在線研究,我發現一些 scikit-learn 算法有一個 partial_fit 方法可以用於這個目的。不幸的是 scikit-learn 決策樹沒有部分擬合方法。
我想知道你們中是否有人遇到過這個問題,是否有替代方法來處理它。
順便說一句,我的數據存儲在熊貓數據框中。
Scikit-learn 僅提供最常見的決策樹算法(D3、C4.5、C5.0 和 CART)的實現。這些依賴於將整個數據集保存在內存中,因此無法對它們使用部分擬合。您只能在數據的小子集上學習多個決策樹,並將它們排列成一個隨機森林。
還有一些其他算法可用於誘導適用於磁盤或流數據的決策樹。我認為最知名的算法是 SLIQ、SPRINT 和 HOEFFDING 樹(參見本文)。雖然它們似乎都沒有在任何常見的機器學習框架 (afaik) 中實現,但您可以在 github 上找到一些獨立的 python 實現。如果你使用 Spark,他們也有一些用於大數據的決策樹算法。
PS:順便說一句,你如何在一個 pandas 數據框中存儲 3Tb 的數據?(你在使用 PyTables 嗎?)