機(jī)器學(xué)習(xí)常見(jiàn)的誤區(qū)有哪些
在最近的一次報(bào)告中,Ben Hamner向我們介紹了他和他的同事在Kaggle比賽中看到的一些機(jī)器學(xué)習(xí)項(xiàng)目的常見(jiàn)誤區(qū)。
在這篇文章中,我們將從Ben的報(bào)告中了解一些常見(jiàn)的誤區(qū),它們是什么及如何避免陷入這些誤區(qū)。
機(jī)器學(xué)習(xí)的過(guò)程在報(bào)告之前,Ben向我們展示了一個(gè)解決機(jī)器學(xué)習(xí)問(wèn)題大體流程。
機(jī)器學(xué)習(xí)流程,摘自Ben Hamner的《機(jī)器學(xué)習(xí)小精靈》
這個(gè)流程包括如下9步:
以一個(gè)行業(yè)問(wèn)題開(kāi)始
源數(shù)據(jù)
切分?jǐn)?shù)據(jù)
選擇一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)
進(jìn)行特征提取
訓(xùn)練模型
特征選擇
模型選擇
生產(chǎn)系統(tǒng)
Ben強(qiáng)調(diào)這個(gè)過(guò)程是迭代的過(guò)程,而非線性的。
他也談及在這個(gè)過(guò)程中的每一步都可能出錯(cuò),每個(gè)錯(cuò)誤都可能使整個(gè)機(jī)器學(xué)習(xí)過(guò)程難以達(dá)到預(yù)期效果。
鑒別狗和貓
Ben提出了一個(gè)研究建造一個(gè)“自動(dòng)貓門(mén)”的案例,這個(gè)“門(mén)”對(duì)貓開(kāi)放而對(duì)狗關(guān)閉。這是一個(gè)啟發(fā)性的例子,因?yàn)樗O(shè)計(jì)到了處理數(shù)據(jù)問(wèn)題上的一系列關(guān)鍵問(wèn)題。
鑒別狗和貓,摘自Ben Hamner的《機(jī)器學(xué)習(xí)小精靈》
樣本大小
這個(gè)例子的第一個(gè)賣(mài)點(diǎn)就是,模型學(xué)習(xí)的準(zhǔn)確度與數(shù)據(jù)樣本大小有關(guān),并展示更多的樣本與更好的準(zhǔn)確度之間的關(guān)系。
他通過(guò)不斷增加訓(xùn)練數(shù)據(jù),直到模型準(zhǔn)確度趨于穩(wěn)定。這個(gè)例子能夠很好讓你了解,你的系統(tǒng)對(duì)樣本大小及相應(yīng)調(diào)整有多敏感。
錯(cuò)誤的問(wèn)題
第二個(gè)賣(mài)點(diǎn)就是這個(gè)系統(tǒng)失敗了,它對(duì)所有的貓都拒之門(mén)外。
這個(gè)例子突出了理解我們需要解決的問(wèn)題的約束是非常重要的,而不是關(guān)注你想解決的問(wèn)題。
機(jī)器學(xué)習(xí)工程中的誤區(qū)
Ben接著討論了解決機(jī)器學(xué)習(xí)問(wèn)題中的4個(gè)常見(jiàn)誤區(qū)。
雖然這些問(wèn)題非常常見(jiàn),但是他指出它們相對(duì)比較容易被識(shí)別及解決。
過(guò)擬合,摘自Ben Hamner的《機(jī)器學(xué)習(xí)小精靈》
數(shù)據(jù)泄露:利用模型中的生產(chǎn)系統(tǒng)不能訪問(wèn)的數(shù)據(jù)。在時(shí)序問(wèn)題中這個(gè)問(wèn)題特別常見(jiàn)。也可能發(fā)生在像系統(tǒng)id的數(shù)據(jù)上,id可能表示一個(gè)類(lèi)標(biāo)簽。運(yùn)行模型并且仔細(xì)查看有助于系統(tǒng)的特征。完整檢查并考慮其是否有意義。
過(guò)擬合:在訓(xùn)練數(shù)據(jù)上建模太精密,同時(shí)模型中又存在一些噪聲點(diǎn)。這時(shí)過(guò)擬合會(huì)降低模型的擴(kuò)展能力, 其在更高的維度與更復(fù)雜的類(lèi)界限下更甚。
數(shù)據(jù)采用和切分:相對(duì)于數(shù)據(jù)泄露,你需要非常小心地知道訓(xùn)練、測(cè)試、交叉檢驗(yàn)數(shù)據(jù)集是否是真正的獨(dú)立數(shù)據(jù)集。對(duì)于時(shí)序問(wèn)題,很多想法和工作需要保證可以按時(shí)間順序給系統(tǒng)回復(fù)數(shù)據(jù)和驗(yàn)證模型的準(zhǔn)確性。
數(shù)據(jù)質(zhì)量:檢查你的數(shù)據(jù)的一致性。Ben給了一個(gè)航班起飛及著陸地點(diǎn)的數(shù)據(jù),很多不一致,重復(fù)及錯(cuò)誤的數(shù)據(jù)需要被識(shí)別及明確地處理。這些數(shù)據(jù)會(huì)直接損害建模及模型的擴(kuò)展能力。