解除尷尬,機器學(xué)習(xí)新手常犯的6大錯
人工智能技術(shù)是越來越火,伴隨著深度學(xué)習(xí)技術(shù)和機器學(xué)習(xí)技術(shù)也是十分的受人歡迎,然而新技術(shù)的發(fā)展,由于經(jīng)驗不足或者是技術(shù)不夠,在學(xué)習(xí)的過程中常常是頭腦混沌,分不清方向了,今天我們就一起來講講拿那些機器學(xué)習(xí)新手工程師們的尷尬吧!
理所當(dāng)然地使用默認損失函數(shù)
在剛?cè)腴T的時候,均方誤差作為損失函數(shù)是很好的默認選擇。但是當(dāng)需要處理現(xiàn)實問題的時候,這種未經(jīng)專門設(shè)計的損失函數(shù)很少能給出最優(yōu)解。
拿欺詐檢測為例。為了與你真正的商業(yè)目標一致,需要按照欺詐造成的損失美元金額的比例懲罰假負類。使用均方誤差能給你一個還不錯的結(jié)果,但不會是當(dāng)前最佳的結(jié)果。
要點:每一次都自定義損失函數(shù),使之緊密匹配你的目標。
對所有問題都使用一種算法/方法很多人一旦完成了入門教程之后,就開始在所有的案例中都使用同一種算法。這很常見,他們覺得這種算法的效果和其它算法是一樣的。這種假設(shè)是很糟糕的,最終會帶來很差的結(jié)果。
解決辦法是讓數(shù)據(jù)為你選擇模型。當(dāng)你把數(shù)據(jù)預(yù)處理之后,將其饋送到多個不同的模型中去,看看結(jié)果如何。你將會了解哪些模型最適用,而哪些模型并不適合。
要點:如果你一直使用同一種算法,這可能意味著你的結(jié)果并不是最好的。
忽略異常值異常值有時候很重要,有時候又可以忽略不計,視情況而定。以收入預(yù)測為例,有時候收入會突然出現(xiàn)很大的變動,觀察這種現(xiàn)象并了解其原因是很有幫助的。有時候異常值由某種誤差造成,那么這時可以放心地忽略它們,并將其從你的數(shù)據(jù)中刪除。
從模型的角度來看,有些模型對異常值更加敏感。以 Adaboost 為例,它會將異常值當(dāng)做重要的例子,并給予異常值極大的權(quán)重,而決策樹可能只是簡單的把異常值當(dāng)做一個錯誤分類(false classificaTIon)。
要點:每一次開始工作之前,先仔細觀察數(shù)據(jù),決定異常值是否應(yīng)該被忽略,如果無法決定,就更仔細地觀察。
未正確處理周期特征一天 24 小時、一周七天、一年 12 個月,以及風(fēng)向都是周期特征。很多機器學(xué)習(xí)新手工程師不知道把這些特征轉(zhuǎn)換成表示能夠保存信息,如 23 時和 0 時很接近。
以小時為例,最佳處理方式是計算它的 sin 和 cos,這樣你可以將該周期特征表示為一個圓的 (x,y) 坐標。在以這種方式表示的時間中,23 時和 0 時就是在數(shù)值上緊挨著的兩個數(shù),僅此而已。
要點:如果你在研究中遇到周期特征,但沒有將其轉(zhuǎn)換成表示,那你就是在給模型添加垃圾數(shù)據(jù)。
未經(jīng)標準化的 L1/L2 正則化L1 和 L2 正則化懲罰較大的系數(shù),是一種對線性或 logisTIc 回歸進行正則化的常用方式。但是,很多機器學(xué)習(xí)工程師沒有意識到使用正則化之前對特征進行標準化的重要性。
假設(shè)你有一個線性回歸模型,其中一個特征是「交易金額」。如果交易金額的單位是美元,那么它的系數(shù)應(yīng)該是單位為美分的系數(shù)的 100 倍。這可能會引起偏差,使模型懲罰實際較小的特征。為了避免該問題,需要將這些特征進行標準化,這樣正則化對于所有特征都是平等的。
要點:正則化很好用,但是如果你不把特征標準化,會出現(xiàn)很讓人頭疼的問題。
把線性回歸或 logisTIc 回歸的系數(shù)絕對值當(dāng)作判斷特征重要性的依據(jù)很多現(xiàn)成的線性回歸器為每個系數(shù)返回 p 值,一些機器學(xué)習(xí)新手工程師認為對于線性模型而言,系數(shù)的值越大,則該特征越重要。這并不準確,因為變量的大小會改變系數(shù)的絕對值。如果特征是共線的,則系數(shù)可以從一個特征轉(zhuǎn)換到另一個特征。數(shù)據(jù)集的特征越多,特征是共線的可能性就越大,這種對特征重要性的簡單解釋的可信度就越低。
要點:了解哪些特征對結(jié)果的影響力最大非常重要,但是僅憑系數(shù)無法確定。
做一些項目并且獲得好的結(jié)果,感覺就像贏了一百萬!你努力工作,研究結(jié)果證明你做的不錯,但是和任何行業(yè)一樣,魔鬼總是隱藏在細節(jié)中,精密的圖表也可能隱藏偏差和誤差。本文列出的錯誤并不是全部,只是想刺激讀者思考你的解決方案中可能隱藏哪些細微問題。要想獲取好的結(jié)果,按照流程工作很重要,并且仔細檢查確保不犯常見錯誤。