【总结】机器学习划分数据集的几种方法
最近搞了一個機器學(xué)習(xí)算法,精度高并且特征少,正當(dāng)我狂喜之時,突然發(fā)現(xiàn)這只是在固定數(shù)據(jù)集上的結(jié)果。
如果隨機生成數(shù)據(jù)集,還會有這樣的效果嗎?
這確實是一個問題,只在一個數(shù)據(jù)集上測試結(jié)果,很難證明算法魯棒性,結(jié)果也不太可靠。
所以在機器學(xué)習(xí)中便誕生了 交叉驗證 的方法……
🐯:為什么最開始的時候數(shù)據(jù)集要分訓(xùn)練集和測試集呢?
😼:是為了解決過擬合的問題。
🐯:過擬合是啥?
😼:無論是用機器學(xué)習(xí)做分類還是回歸,如果只有訓(xùn)練集的話,模型便會前方百計的去擬合訓(xùn)練集,這時你會發(fā)現(xiàn)模型的特征越多,在訓(xùn)練集上的效果越好。這時如果用模型去測試未知數(shù)據(jù)集的話,效果可能會完全相反。這一點在回歸上體現(xiàn)的尤為突出,從下圖可以看到特征數(shù)超過40時,訓(xùn)練集已經(jīng)完全擬合曲線了,而測試集的相關(guān)系數(shù)卻很低。正如通用近似定理所說:“一個包含足夠多隱含層神經(jīng)元的多層前饋網(wǎng)絡(luò),能以任意精度逼近任意預(yù)定的連續(xù)函數(shù)”
🐯:那要按什么比例來分訓(xùn)練集和測試集呢?
😼:這個好像暫無定論從5:5,6:4,7:3,8:2到9:1都有,還是看各行各業(yè)的傳統(tǒng)吧。
🐯:那按照一個比例分完,就只能得到一個訓(xùn)練集和一個測試集,訓(xùn)練出來的模型不是有不確定性嗎?
😼:沒錯,前面說的“交叉驗證”就是來解決這個問題的。
🐯:趕快說!別磨磨蹭蹭的!
😼:常見的交叉驗證有 K-折交叉驗證 和 留一交叉驗證。
K折交叉驗證,初始采樣分割成K個子樣本,一個單獨的子樣本被保留作為驗證模型的數(shù)據(jù),其他K-1個樣本用來訓(xùn)練。交叉驗證重復(fù)K次,每個子樣本驗證一次,平均K次的結(jié)果或者使用其它結(jié)合方式,最終得到一個單一估測。這個方法的優(yōu)勢在于,同時重復(fù)運用隨機產(chǎn)生的子樣本進行訓(xùn)練和驗證,每次的結(jié)果驗證一次,其中,10折交叉驗證是最常用的。
🐯:那我總共就9個樣本,還怎么分10份呢?
😼:你這就屬于 抬杠 小樣本訓(xùn)練,可以試試第二種交叉驗證:留一法。
正如名稱所建議, 留一驗證(LOOCV)意指只使用原本樣本中的一項來當(dāng)做驗證資料, 而剩余的則留下來當(dāng)做訓(xùn)練資料。 這個步驟一直持續(xù)到每個樣本都被當(dāng)做一次驗證資料。 事實上,這等同于和K-fold 交叉驗證是一樣的,其中K為原本樣本個數(shù)。
🐯:你這,怎么和百度百科講的一樣啊!
😼:哈哈哈,本來打算自己寫的,結(jié)果發(fā)現(xiàn)別人已經(jīng)總結(jié)的挺好了,就再整理分享下~
🐯:我還有幾個問題沒找到答案,怎么聯(lián)系你呢?
😼:掃描下方二維碼!看看群里有沒有答案~
猜你喜歡:👇🏻
?【總結(jié)】一文了解所有的機器學(xué)習(xí)評價指標
?【隨筆】通用近似定理
?【實操】看了太多公式概念?你該學(xué)會怎么用T檢驗了!
總結(jié)
以上是生活随笔為你收集整理的【总结】机器学习划分数据集的几种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Excel】一次性快速批量删除下面多余
- 下一篇: 【论文】引用格式 NoteExpress