python - sklearn如何訓(xùn)練大規(guī)模數(shù)據(jù)集
問題描述
問題一:
現(xiàn)在我有40多萬條的數(shù)據(jù),需要對該數(shù)據(jù)使用某種機(jī)器學(xué)習(xí)分類算法建立模型,遇到的問題是因?yàn)閿?shù)據(jù)過于龐大不能一次性的進(jìn)行數(shù)據(jù)的讀取,所以想問一下該如何處理數(shù)據(jù)?
問題二:
關(guān)于sklearn交叉驗(yàn)證有個(gè)疑問:假如我有10000個(gè)訓(xùn)練數(shù)據(jù),由交叉驗(yàn)證原理可以將這一萬個(gè)訓(xùn)練數(shù)據(jù)集使用KFold方法分成n組訓(xùn)練(train數(shù)據(jù)占0.7),現(xiàn)在搞不明白的就是我對第一組的訓(xùn)練集進(jìn)行fit(),然后對測試集進(jìn)行預(yù)測驗(yàn)證得到預(yù)測的準(zhǔn)確率,但是得到預(yù)測準(zhǔn)確率有什么用呢?會(huì)對下一次的訓(xùn)練有影響嗎?還有就是上一次的訓(xùn)練模型會(huì)被用到下一次的fit()函數(shù)嗎?
問題解答
回答1:我最近在學(xué)大數(shù)據(jù)的數(shù)據(jù)挖掘與分析這一塊,對于問題一,我有個(gè)思路你參考一下:既然無法一次性讀取,可以建立分布式數(shù)據(jù)模型,分次讀取數(shù)據(jù),確定地址datanode(可以是某個(gè)變量名),建立一個(gè)namenode(名字與該地址對應(yīng)的表),然后獲取數(shù)據(jù)的時(shí)候,先在namenode中確認(rèn)地址(需要的是哪一個(gè)變量對應(yīng)的數(shù)據(jù)),再訪問該地址獲取數(shù)據(jù)進(jìn)行處理。由于初學(xué),我只是提供下我個(gè)人的思路,答案不唯一,僅供參考,各路大牛不喜勿噴。
回答2:40萬沒多少啊,頂多幾G吧......如果真的是內(nèi)存小到8G也沒有,那還是得看你具體場景啊,舉個(gè)列子,單純算tf-idf,一個(gè)generator,內(nèi)存中只有最后的tf-idf字典。
交叉驗(yàn)證只是為了選取誤差最小的一個(gè),你提到的前面的影響后面,是boosting的概念。
回答3:這種問答網(wǎng)站最好是一個(gè)問題一個(gè)坑,必要時(shí)兩個(gè)分開的問題給連結(jié)連相關(guān)性,避免 Double-barreled question
(1) 見How to optimize for speed,你會(huì)發(fā)現(xiàn)有很多可以調(diào)控試驗(yàn)的方式,包括(a)儘量使用簡單的演算法計(jì)巧 (b)針對現(xiàn)實(shí)狀況做記憶體使用及速度的側(cè)寫 (c)試著用Numpy陣列取代所有nested loops (d)必要時(shí)使用Cython Wrapper 去調(diào)更有效率的C/C++函數(shù)庫。這些只是基本原則和方向,實(shí)際上還是要看你要操作問題的瓶頸分析,是速度還是空間,把代碼最佳化後再考慮是否要用平行計(jì)算等手段
(2) 你這問題得區(qū)分 數(shù)學(xué) 和 實(shí)證 上要求的差異,希望你對 過擬合(overfitting)及 underfitting的 實(shí)證及數(shù)學(xué)意義有所掌握,這裡的問答還蠻不錯(cuò)的,讀一下有幫助的。
相關(guān)文章:
1. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風(fēng)格檢查怎么辦。。。2. javascript - 這不是對象字面量函數(shù)嗎?為什么要new初始化?3. javascript - [js]為什么畫布里不出現(xiàn)圖片呢?在線等4. javascript - 如何將一個(gè)div始終固定在某個(gè)位置;無論屏幕和分辨率怎么變化;div位置始終不變5. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?6. javascript - 求解答:實(shí)例對象調(diào)用constructor,此時(shí)constructor內(nèi)的this的指向?7. javascript - 有什么比較好的網(wǎng)頁版shell前端組件?8. html - vue項(xiàng)目中用到了elementUI問題9. html5 - 有可以一次性把所有 css外部樣式轉(zhuǎn)為html標(biāo)簽內(nèi)style=" "的方法嗎?10. python - 如何判斷爬蟲已經(jīng)成功登陸?
