機器學習實踐中應避免的七種常見錯誤

2021-01-07 CSDN技術社區

【編者按】在機器學習領域,每個給定的建模問題都存在幾十種解法,每個模型又有難以簡單判定是否合理的不同假設。在這種情況下,大多數從業人員傾向於挑選他們熟悉的建模算法,本文作者則認為,模型算法的假設並不一定適用於手頭的數據;在追求模型最佳性能時,重要的是選擇適合數據集(尤其是「大數據」)的模型算法。

以下為正文:

統計建模和工程開發很相似。

在工程開發中,人們有多種方法搭建一套鍵-值存儲系統,每種設計針對使用模式有一套不同的假設。在統計建模中,也有很多算法來構造一個分類器,每種算法對數據也有各自的假設集合。

當處理少量數據時,因為實驗成本很低,我們儘可能多的嘗試各種算法,從而選出效果最優的算法。但提到「大數據」,提前分析數據,然後設計相應「管道」模型(預處理,建模,優化算法,評價,產品化)是事半功倍的。

正如在我以前的文章裡提到,每個給定的建模問題都存在幾十種解法。每個模型會提出不同的假設條件,我們也很難直觀辨別哪些假設是合理的。在業界,大多數從業人員傾向於挑選他們熟悉的建模算法,而不是最適合數據集的那個。在這篇文章中,我將分享一些常見的認識誤區(要避免的)。在今後的文章中再介紹一些最佳實踐方法(應該做的)。

1. 想當然地使用默認損失函數

很多從業者喜歡用默認的損失函數(比如平方誤差)來訓練和選擇最優模型。事實上,默認的損失函數很少能滿足我們的業務需求。拿詐騙檢測來說。當我們檢測詐騙交易時,我們的業務需求是儘量減少詐騙帶來的損失。然而現有二元分類器默認的損失函數對誤報和漏報的危害一視同仁。對於我們的業務需求,損失函數不僅對漏報的懲罰要超過誤報,對漏報的懲罰程度也要和詐騙金額成比例。而且,詐騙檢測的訓練數據集往往正負樣本極度不均衡。在這種情況下,損失函數就要偏向於照顧稀少類(如通過升/降採樣等)。

2. 用普通線性模型處理非線性問題

當需要構建一個二元分類器時,很多人馬上就想到用邏輯回歸,因為它很簡單。但是,他們忘記了邏輯回歸是線性模型,非線性因素的交叉特徵需要靠手工編碼處理。回到剛才詐騙檢測的例子,要獲得好的模型效果,就需要引入「帳單地址=送貨地址 && 交易金額<$ 50」之類的高階交叉特徵。因此,在處理包含交叉特徵的問題上我們應該儘可能選擇非線性模型,比如有核函數的SVM,或者基於樹的分類器。

3.忽視異常值

異常值很有意思。根據上下文情況,它們要麼需要被特別處理,要麼應該被完全忽略。就拿收入預測來說。如果觀察到收入有異常尖峰,我們可能要加倍注意他們,並分析是什麼原因造成這些峰值。但如果異常值是由於機械誤差、測量誤差或者其它任何非普遍化因素導致的,那我們最好在準備訓練數據之前過濾掉這些異常值。

有些模型算法對異常值非常靈敏。比如,AdaBoost 會對它們「倍加關注」,賦予一個相當大的權重值。相反,決策樹就簡單地把它們當做錯誤分類來處理。如果數據集包含相當數量的異常值,那麼,使用一種具有異常值魯棒性的建模算法或直接過濾掉異常值是非常重要的。

4. 樣本數遠小於特徵數時使用高方差模型

SVM是最流行的建模算法之一,它的強大功能之一就在於用不同核函數去擬合模型。SVM內核被認為是可以自發組合現有特徵,從而形成更高維度特徵空間的方法。由於獲得這項強大功能的代價幾乎忽略不計,大多數人在訓練SVM模型時默認使用核函數。然而,當訓練樣本數遠遠少於特徵維度時(n<<p)——常見於醫學數據——高維特徵空間數據過擬合風險會隨之增加。事實上,在上述情況下我們應該完全避免使用高方差模型。

5. 不做標準化的L1/L2正則化

使用L1或L2正則化是線性回歸或邏輯回歸懲罰權重係數值過大的常用方法。然而,許多人在使用這些正則化方法時都沒有意識到標準化的重要性。

再回到詐騙檢測,設想一個把交易金額作為特徵的線性回歸模型。如果不做正則化,當交易金額以美元為單位時,其擬合係數將會是以美分為單位時的100倍。同時,因為L1/L2正則化對係數值大的項懲罰更重,美元作為單位時交易金額這個維度將會受到更多的懲罰。因此,正則化並不是一視同仁,它往往在更小尺度上懲罰特徵。為了緩解這一問題,需要在預處理過程中標準化所有特徵,使它們處在平等的位置。

6.不考慮線性相關就使用線性模型

假設構建一個含有X1和X2兩個變量的線性模型,真實的模型是Y = X1 + X2。理想情況下,如果數據僅含有少量噪點,線性回歸模型能夠還原真實模型。然而,如果X1和X2存在線性相關,對於大多數優化算法而言,無論Y = 2 * X1 , Y = 3 * X1-X2 還是 Y = 100 * X1-99 *X2效果都一樣好。儘管這個問題沒有造成我們預測的偏差,看上去它似乎並無大礙。但是,它使問題變得病態了,因為係數權重無法得到解釋。

7. 把線性模型或者邏輯回歸模型係數的絕對值解釋為特徵重要性

因為很多現成的線性回歸方法返回每個係數的p值,很多人就認為係數的絕對值越大,對應的特徵就發揮更大作用。事實並非如此,因為(一)縮放變量就會改變係數絕對值;(二)如果特徵是線性相關的,其係數可以從一維特徵轉移到另一維特徵。此外,數據集包含的特徵維度越多,特徵之間就越有可能線性相關,用係數解釋特徵重要性就越不靠譜。

以上就是機器學習實踐操作中的7個常見錯誤。這個列表並不完整,它只是激發讀者去思考,模型算法的假設並不一定適用於手頭的數據。在追求模型最佳性能時,重要的是選擇適合數據的模型算法,而不是你最熟悉的那個。

原文連結:MachineLearning Done Wrong ;聯繫作者:Cheng-Tao Chu's  LinkedIn(編譯/zhyhooo 責編/周建丁)

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • 七種需要避免的Vue.js常見錯誤
    就個人而言,我已經使用Vue.js一段時間了,除了收穫愉快的體驗與經驗,也曾犯過一些錯誤。為了避免大家跌入同樣的「坑」中,我在此將其中常見的七大錯誤總結如下: 1.添加模板編譯器 在嘗試導入Vue.js時,我發現:即使自己遵循了官方指南的說明事項,組件的內聯(inline)模板也會返回空白頁面。
  • 在製作幫助文檔時應避免的8個常見錯誤
    下面是幾個製作時應避免的最常見的錯誤。1.以老式的方式製作FAQ/Q&A頁面樣式將一些常見問題添加到幫助文檔中,但是只是將這些問題進行羅列,不提供任何搜索選項,這樣到方式讓用戶很難找到問題,只有去找尋人工客服,增加客服到工作量。
  • 留學申請文書 5大錯誤應避免
    本文,我們將探討一些常見的、應避免的留學申請文書錯誤,並討論改善方法,從而介紹如何才能撰寫優質的個人陳述。優質大學申請文書需具備什麼要素? 在探討一些應避免的文書錯誤前,我們先討論優質申請文書的效用。有效的個人陳述必須直接、清楚地回答文書的題目,讓人全面了解你的個人與學術背景,可以讓大學招生官員知道你的大略目標。
  • 學科教學|避免這些常見錯誤
    剖析:該題錯誤很多,填H+的人:不理解還原劑概念,H+質子應是氧化劑不是還原劑.而[H+]則代表氫離子濃度.H2雖可作還原劑,但光反應的產物,不是以氫的分子狀態存在的,與事實不符.解: 光合作用光反應為暗反應提供能量及還原劑(B).
  • 機器學習常見的損失函數以及何時使用它們
    每一個機器學習工程師都應該知道機器學習中這些常見的損失函數以及何時使用它們。在數學優化和決策理論中,損失函數或成本函數將一個或多個變量的值映射為一個實數,該實數直觀地表示與該事件相關的一些「成本」。損失函數是機器學習算法中的一個重要部分,主要用於進行算法對特徵數據集建模效果的評估,衡量算法的性能。損失函數是每個樣本預測值和真實值的差值,而成本函數是所有損失函數的平均值。但是一般兩者語義沒有明顯的區分。 損失函數直接反映了機器學習模型的預測結果。一般而言,損失函數越低,所建立的模型所提供的結果就越好。
  • 攝影中如何避免8個常見的錯誤,拍出好看照片!
    如果單從攝影理論學習角度考慮,一般都能學好攝影技巧,但一到實際拍攝中就很難避免這些錯誤,下面介紹一些常見的攝影技巧可以使你的照片看起來更專業,避免攝影常見的錯誤。解決方式使用三分法則的分界線,在風景攝影中,沿垂直線之一的路徑從前景通向背景進行延伸,與被攝場景無關的物體也不應進入畫面。錯誤七:視線傾斜錯誤很明顯,這在攝影中很常見。傾斜的地平線只會偶爾增加藝術價值。但利用不當會分散注意力。
  • 5個最常見的採購錯誤以及解決方法
    常見的採購錯誤很容易變成採購恐怖。如果您使用的系統效率低下,則將導致大量聯合採購和採購問題。發生問題時,可以藉此機會學習如何改進並避免下次發生。您只需要瀏覽一些最佳的採購 成功案例,即可了解公司的成功案例很大程度上取決於您的採購系統的有效性。
  • 如何避免esl寫作中的5個常見錯誤?
    錯誤1:第一人稱與第三人稱在英語寫作中,有兩個與敘述有關的常見問題。首先,兩者之間存在著不必要的互換,這可能會讓讀者難以理解。其次,在特定的語境下,敘事的選擇是不正確的。在學術語境中寫作時,最好使用第三人稱敘事。這是學術界一個公認的潛規則,不遵守它可能會導致作品評分較差。
  • 2017年6月英語四級翻譯技巧:避免常見錯誤
    新東方網>大學教育>四六級>複習輔導>四級>四級輔導>翻譯>正文2017年6月英語四級翻譯技巧:避免常見錯誤 2017-05-24 15:05 來源
  • 寫作英文論文應避免的常見表達問題
    因此,在醫刊匯看來,寫作英文論文時,應避免以下的常見表達問題。一、文體不符合學術文章的規範。語言表達有書面語與口頭語之分,而書面語又可據其使用的範圍與目的分為科學語體、文學語體、政論語體等若干類。原因在於作者不是不知道要避免使用第一人稱,更多的是不知道如果避免使用第一人稱。三、存在簡單的漢英互譯現象。很多時候,國內有些作者傾向於先形成中文的學術文章,然後再將其翻譯成英文。以為這樣既可以保持思維的連續性,又簡單易行。殊不知,英語和漢語的表達方式並不是一一對應的關係,需要相應的語言文化背景知識及文字功底作為依託,才能使譯文脫離翻譯的痕跡。
  • 新手常見的5個Python錯誤
    我們還將討論列印的錯誤類型,並了解原因以及如何避免出現特殊錯誤。1. 縮進Indentation 縮進是指代碼行或代碼塊開頭的空格數。常用在if-else、with語句或者函數之後。通常用空格鍵或四個空格鍵縮進一次,或按一次Tab鍵。其在python中格外重要,可以替代其他程式語言(如C,C ++或Java)中的花括號「 {}」之類的東西。
  • 高中語文常見的七種應用文格式
    導讀:書信、啟事、通知、新聞、廣播稿、申請書等這些常見的應用文,不僅考試會考到,日常生活總也會常用
  • 需要在跑步過程中避免的11個常見錯誤
    網易體育12月21日報導:所有的跑步者在訓練和比賽中都會犯一些錯誤。在某些情況下,我們無數次重複同樣的錯誤。但我們希望能從這些錯誤中吸取教訓,並採取行動避免在未來重蹈覆轍。
  • 機器學習常見算法分類匯總
    機器
  • 8種常見機器學習算法比較
    而且,實際中,訓練樣本往往還有一定的噪音誤差,所以如果太追求在訓練集上的完美而採用一個很複雜的模型,會使得模型把訓練集裡面的誤差都當成了真實的數據分布特徵,從而得到錯誤的數據分布估計。這樣的話,到了真正的測試集上就錯的一塌糊塗了(這種現象叫過擬合)。但是也不能用太簡單的模型,否則在數據分布比較複雜的時候,模型就不足以刻畫數據分布了(體現為連在訓練集上的錯誤率都很高,這種現象較欠擬合)。
  • 高二語文中常見的七種應用文格式
    導讀:書信、啟事、通知、新聞、廣播稿、申請書等這些常見的應用文,不僅考試會考到,日常生活總也會常用,下文介紹了常見的七種用用問格式。   1.書信   一般書信(包括請柬)包括五個部分:(1)稱呼。
  • 深度學習與機器學習:了解差異
    有監督的機器學習問題又分為分類(預測非數字答案,例如錯過抵押貸款的可能性)和回歸(預測數字答案,例如下個月在曼哈頓商店出售的小部件的數量)。無監督學習可進一步分為聚類(查找類似對象的組,例如跑鞋,步行鞋和正裝鞋),關聯(查找對象的常見序列,例如咖啡和奶油)和降維(投影,特徵選擇) ,以及特徵提取。
  • CRM:6個常見的銷售代表錯誤以及如何避免它們
    我們看一下銷售人員常犯的一些常見錯誤以及如何防止它們。常見的銷售代表錯誤以及如何預防有人會說銷售是藝術品因此,讓我們看一下銷售人員最常犯的錯誤,以及如何防止他們混淆錯誤的要素。一項研究表明,說話與聽的比率應為43:57,以贏得客戶的青睞;保持禮貌,傾聽你的聲音,然後傾聽客戶的問題,只問相關的問題。不要忘記在呼叫過程中輸入CRM系統中收集的所有數據,以使將來的交互變得更加容易。
  • 算法應用|機器學習python應用,初識機器學習是怎樣滴感受?
    本系列文章主要介紹機器學習在實踐中的應用,介紹利用 Python 的生態環境,使用機器學習的算法來解決工程實踐中的問題,而不是介紹算法本身。本系列文章參考了《機器學習Python實踐》,會通過例子一步一步地引導大家使用機器學習來處理和分類與回歸模型相關的問題。
  • 14種機器學習常見算法分類匯總!
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。根據數據類型的不同,對一個問題的建模有不同的方式。