當前位置:
首頁 > 知識 > 機器學習新手工程師常犯的6大錯誤

機器學習新手工程師常犯的6大錯誤

選自Medium

機器之心編譯

參與:劉曉坤、路雪

機器學習中有很多構建產品或解決方案的方式,每種方式的假設情況都不一樣。很多時候,如何找到合理的假設並不容易。機器學習初學者經常會犯一些事後覺得蠢爆了的錯誤。本文作者創建了一個機器學習新手工程師常犯的錯誤清單。希望大家可以從中學習,創建更魯棒的解決方案。

理所當然地使用默認損失函數

在剛入門的時候,均方誤差作為損失函數是很好的默認選擇。但是當需要處理現實問題的時候,這種未經專門設計的損失函數很少能給出最優解。

拿欺詐檢測為例。為了與你真正的商業目標一致,需要按照欺詐造成的損失美元金額的比例懲罰假負類。使用均方誤差能給你一個還不錯的結果,但不會是當前最佳的結果。

要點:每一次都自定義損失函數,使之緊密匹配你的目標。

對所有問題都使用一種演算法/方法

很多人一旦完成了入門教程之後,就開始在所有的案例中都使用同一種演算法。這很常見,他們覺得這種演算法的效果和其它演算法是一樣的。這種假設是很糟糕的,最終會帶來很差的結果。

解決辦法是讓數據為你選擇模型。當你把數據預處理之後,將其饋送到多個不同的模型中去,看看結果如何。你將會了解哪些模型最適用,而哪些模型並不適合。

要點:如果你一直使用同一種演算法,這可能意味著你的結果並不是最好的。

忽略異常值

異常值有時候很重要,有時候又可以忽略不計,視情況而定。以收入預測為例,有時候收入會突然出現很大的變動,觀察這種現象並了解其原因是很有幫助的。有時候異常值由某種誤差造成,那麼這時可以放心地忽略它們,並將其從你的數據中刪除。

從模型的角度來看,有些模型對異常值更加敏感。以 Adaboost 為例,它會將異常值當做重要的例子,並給予異常值極大的權重,而決策樹可能只是簡單的把異常值當做一個錯誤分類(false classification)。

要點:每一次開始工作之前,先仔細觀察數據,決定異常值是否應該被忽略,如果無法決定,就更仔細地觀察。

未正確處理周期特徵

一天 24 小時、一周七天、一年 12 個月,以及風向都是周期特徵。很多機器學習新手工程師不知道把這些特徵轉換成表示能夠保存信息,如 23 時和 0 時很接近。

以小時為例,最佳處理方式是計算它的 sin 和 cos,這樣你可以將該周期特徵表示為一個圓的 (x,y) 坐標。在以這種方式表示的時間中,23 時和 0 時就是在數值上緊挨著的兩個數,僅此而已。

要點:如果你在研究中遇到周期特徵,但沒有將其轉換成表示,那你就是在給模型添加垃圾數據。

未經歸一化的 L1/L2 正則化

L1 和 L2 正則化懲罰較大的係數,是一種對線性或 logistic 回歸進行正則化的常用方式。但是,很多機器學習工程師沒有意識到使用正則化之前對特徵進行歸一化的重要性。

假設你有一個線性回歸模型,其中一個特徵是「交易金額」。如果交易金額的單位是美元,那麼它的係數應該是單位為美分的係數的 100 倍。這可能會引起偏差,使模型懲罰實際較小的特徵。為了避免該問題,需要將這些特徵進行歸一化,這樣正則化對於所有特徵都是平等的。

要點:正則化很好用,但是如果你不把特徵歸一化,會出現很讓人頭疼的問題。

把線性回歸或 logistic 回歸的係數絕對值當作判斷特徵重要性的依據

很多現成的線性回歸器為每個係數返回 p 值,一些機器學習新手工程師認為對於線性模型而言,係數的值越大,則該特徵越重要。這並不準確,因為變數的大小會改變係數的絕對值。如果特徵是共線的,則係數可以從一個特徵轉換到另一個特徵。數據集的特徵越多,特徵是共線的可能性就越大,這種對特徵重要性的簡單解釋的可信度就越低。

要點:了解哪些特徵對結果的影響力最大非常重要,但是僅憑係數無法確定。

做一些項目並且獲得好的結果,感覺就像贏了一百萬!你努力工作,研究結果證明你做的不錯,但是和任何行業一樣,魔鬼總是隱藏在細節中,精密的圖表也可能隱藏偏差和誤差。本文列出的錯誤並不是全部,只是想刺激讀者思考你的解決方案中可能隱藏哪些細微問題。要想獲取好的結果,按照流程工作很重要,並且仔細檢查確保不犯常見錯誤。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

始於城市大腦,ET大腦正接管阿里雲人工智慧技術
手把手教你可視化交叉驗證代碼,提高模型預測能力
提升DNN參數準確度:MILA提出貝葉斯超網路
這位被阿里挖來的亞馬遜最高級別華人科學家,聊了聊AI給新零售帶來的想像空間

TAG:機器之心 |