遇到有這六大缺陷的數(shù)據(jù)集該怎么辦?這有一份數(shù)據(jù)處理急救包
不要再向你的機(jī)器學(xué)習(xí)模型里喂垃圾了!
在這篇文章中,身兼AI工程師/音樂(lè)家/圍棋愛好者多職的“斜杠青年”Julien Despois給出了數(shù)據(jù)科學(xué)中需要避免的6大錯(cuò)誤。
全文編譯整理如下:
簡(jiǎn)介
身為一名數(shù)據(jù)科學(xué)工作者,你應(yīng)該聽說(shuō)過(guò)一句話:
你的結(jié)果會(huì)和你的數(shù)據(jù)一樣好。
很多人試圖通過(guò)提升模型來(lái)彌補(bǔ)不太理想的數(shù)據(jù)集。這等同于你的舊車因?yàn)橛昧肆畠r(jià)汽油性能不好,但你買了一輛豪華跑車。很明顯藥不對(duì)癥嘛!
在這篇文章中,我會(huì)講一講如何通過(guò)優(yōu)化數(shù)據(jù)集提升模型結(jié)果,并將以圖像分類任務(wù)為例進(jìn)行說(shuō)明,但這些tips可被應(yīng)用在各種各樣的數(shù)據(jù)集中。
今天的正餐,正式開始——
問(wèn)題一:數(shù)據(jù)集太小
如果數(shù)據(jù)集太小,模型將沒(méi)有足夠樣例概括可區(qū)分特征。這將使數(shù)據(jù)過(guò)擬合,從而出現(xiàn)訓(xùn)練誤差(training error)低但測(cè)試誤差(test error)高的情況。
解決方案1:
去收集更多數(shù)據(jù)吧~嘗試找到更多和原始數(shù)據(jù)集來(lái)源相同的數(shù)據(jù),如果圖像很相似或者你追求的就是泛化,也可用其他來(lái)源的數(shù)據(jù)。
小貼士:這并非易事,需要你投入時(shí)間和經(jīng)費(fèi)。在開始之前,你要先分析確定需要多少額外數(shù)據(jù)。將不同大小的數(shù)據(jù)集得出的結(jié)果做比較,然后思考一下這個(gè)問(wèn)題。

△ 數(shù)據(jù)集中數(shù)據(jù)量和錯(cuò)誤率的關(guān)系
解決方案2:
通過(guò)為同一張圖像創(chuàng)建多個(gè)細(xì)微變化的副本來(lái)擴(kuò)充數(shù)據(jù),可以讓你以非常低的成本創(chuàng)造很多額外的圖像。你可以試著裁剪、旋轉(zhuǎn)或縮放圖片,也可以添加噪音、模糊、改變圖片顏色或遮擋部分內(nèi)容。

△ 一張圖片的各種變化
不管怎么操作吧,只需保證這些數(shù)據(jù)仍代表相同類就好了。
雖然這種操作很厲害,但仍不如收集更多原始數(shù)據(jù)效果好。
△ 處理后圖像仍被分類為貓
小貼士:這種“擴(kuò)充術(shù)”不適合所有問(wèn)題,比如如果你想分類黃檸檬和綠檸檬,就不要調(diào)顏色了嘛~

數(shù)據(jù)集太小的問(wèn)題解決后,第二個(gè)問(wèn)題來(lái)了——
問(wèn)題二:分類質(zhì)量差
這是個(gè)簡(jiǎn)單但耗時(shí)的問(wèn)題,需要你瀏覽一遍數(shù)據(jù)集確認(rèn)每個(gè)樣例的標(biāo)簽打得對(duì)不對(duì)。
除此以外,一定為你的分類選擇合適的粒度(granularity)?;谝鉀Q的問(wèn)題,來(lái)增加或減少你的分類。
比如,要識(shí)別貓,你可以用全局分類器先確定它是動(dòng)物,之后再用動(dòng)物分類器確定它是一只小貓。一個(gè)大型的模型能同時(shí)做到這兩點(diǎn),但分起類來(lái)也更加困難。

△ 小貓的分類過(guò)程
問(wèn)題三:數(shù)據(jù)集質(zhì)量差
就像前言中說(shuō)的那樣,數(shù)據(jù)質(zhì)量差會(huì)導(dǎo)致結(jié)果的質(zhì)量差。
可能你的數(shù)據(jù)集中有一些樣例離達(dá)標(biāo)真的很遠(yuǎn),比如下面這幾張圖像。

△ 三張不合格的貓咪圖像樣例
這些圖像會(huì)干擾模型的正確分類,你需要將這些圖像在數(shù)據(jù)集中剔除。
雖然是個(gè)漫長(zhǎng)枯燥的過(guò)程,但對(duì)結(jié)果的提升效果很明顯。
另一個(gè)常見問(wèn)題是,數(shù)據(jù)集可能是由與實(shí)際應(yīng)用程序不匹配的數(shù)據(jù)組成的。如果圖像來(lái)自完全不同來(lái)源,這個(gè)問(wèn)題可能尤為嚴(yán)重。
解決方案:先思考一下這項(xiàng)技術(shù)的長(zhǎng)期應(yīng)用,因?yàn)樗P(guān)系到獲取生產(chǎn)中的數(shù)據(jù)。嘗試用相同的工具查找/構(gòu)建一個(gè)數(shù)據(jù)集。

△ 使用與實(shí)際應(yīng)用差別太大的數(shù)據(jù)訓(xùn)練模型非常不明智
問(wèn)題四:分類不平衡
如果每個(gè)分類的樣例數(shù)量與其他類別數(shù)量差距太大,則模型可能傾向于數(shù)量占主導(dǎo)地位的類,因?yàn)樗鼤?huì)讓錯(cuò)誤率變低。
解決方案1:
你可以收集更多非代表性的分類。然而這通常需要花費(fèi)時(shí)較多間和金錢,也可能根本不可行。
解決方案2:
對(duì)數(shù)據(jù)進(jìn)行過(guò)采樣/降采樣處理。這意味著你可能需要從那些比例過(guò)多的分類中移除一些樣例,也可以在比例較少的類別中進(jìn)行上面提到過(guò)的樣例擴(kuò)充處理。

△ 先擴(kuò)充樣例不足的分類(貓咪),這將使類別的分布更平滑
問(wèn)題五:數(shù)據(jù)不平衡
如果你的數(shù)據(jù)沒(méi)有專門的格式,或者它的值沒(méi)有在特定的范圍,模型處理起來(lái)可能很困難。如果圖像有特定的縱橫比或像素值,得到的結(jié)果會(huì)更好。
解決方案1:
裁剪或拉伸數(shù)據(jù),使其與其他樣例的格式相同,如下圖所示。

△ 裁剪和拉伸是改善格式的兩種方法
解決方案2:
將數(shù)據(jù)規(guī)范化,使每個(gè)樣例在相同的值范圍內(nèi)。

問(wèn)題六:沒(méi)有驗(yàn)證或測(cè)試
數(shù)據(jù)集被清理、擴(kuò)充并打上標(biāo)簽后,你就需要把它們分個(gè)組了。
許多數(shù)據(jù)研究人員會(huì)將這些數(shù)據(jù)分成兩組:80%用于訓(xùn)練,20%用于測(cè)試,這將會(huì)使發(fā)現(xiàn)過(guò)擬合變?nèi)菀住?/p>
然而,如果你在同一個(gè)測(cè)試集上嘗試多個(gè)模型,情況則有所不同。選擇測(cè)試精度的***模型,實(shí)際上是對(duì)測(cè)試集進(jìn)行過(guò)擬合處理。
解決方案:
將數(shù)據(jù)集分為訓(xùn)練、驗(yàn)證和測(cè)試三組,這可以保護(hù)你的測(cè)試集,防止它因?yàn)樗x的模型而過(guò)擬合。那這個(gè)過(guò)程就變成了:
- 在訓(xùn)練集上訓(xùn)練模型
- 在驗(yàn)證集上測(cè)試它們,確保它們沒(méi)有過(guò)擬合
- 選擇***模型,并用測(cè)試集測(cè)試,看看你的模型準(zhǔn)確性有多高。

注意:提醒一句,記得經(jīng)常用整個(gè)數(shù)據(jù)集去訓(xùn)練模型,數(shù)據(jù)越多,效果越好。
總結(jié)
***,送廣大數(shù)據(jù)科學(xué)工作者一句N字箴言:
擁有***模型的人不是贏家,擁有***數(shù)據(jù)的人才是。