sklearn.LinearRegression
是否支持在線/增量學習?我有100組數據,我試圖完全實現它們。對於每個組,有超過10000個實例和〜10個特徵,所以如果我構造一個巨大的矩陣(10×10×10),會導致內存錯誤。如果我可以每次使用新組的批次樣本更新迴歸器,那將會很好。大數據的sklearn線性迴歸
我發現this post相關,但接受的解決方案適用於使用單個新數據(僅一個實例)進行在線學習,而不是批量樣本。
sklearn.LinearRegression
是否支持在線/增量學習?我有100組數據,我試圖完全實現它們。對於每個組,有超過10000個實例和〜10個特徵,所以如果我構造一個巨大的矩陣(10×10×10),會導致內存錯誤。如果我可以每次使用新組的批次樣本更新迴歸器,那將會很好。大數據的sklearn線性迴歸
我發現this post相關,但接受的解決方案適用於使用單個新數據(僅一個實例)進行在線學習,而不是批量樣本。
看看linear_model.SGDRegressor
,它使用隨機梯度學習線性模型。
在一般情況下,sklearn有許多模型,承認「partial_fit
」,它們都非常適用於不適合RAM的大中型數據集。
並非所有的算法都可以逐步學習,而不會立即看到所有的實例。也就是說,實現API的所有估計者都是小批量學習的候選人,也稱爲「在線學習」。
Here是一篇超越增量學習的縮放策略的文章。爲了您的目的,請看sklearn.linear_model.SGDRegressor
課程。這是真正的在線,所以內存和收斂速度不受批量大小的影響。
謝謝caoy。這很有幫助。但sgdregressor的輸入與普通線性迴歸器完全相同(我仍然需要準備好大型數據集)? – ChuNan
@ChuNan,不需要組建大型數據集。看一下示例代碼:特別是,http://china.chinaunix.net/cgi-bin/docs.html#ChuNan,http://scikit-learn.org/dev/auto_examples/applications/plot_out_of_core_classification.html#example-applications-plot-out-of-core-classification-py –
@ChuNan,看看如何在生成器函數「iter_minibatches」中快速構建數據塊。如果你不熟悉Python生成器的概念,請看看:https://wiki.python.org/moin/Generators –