統計建模非常像工程學。
在工程學中,有多種構建鍵-值儲存系統的方式,每個設計都會構造一組不同的關於使用模式的假設集合。在統計建模中,有很多分類器構建演算法,每個演算法構造一組不同的關於資料的假設集合。
當處理少量資料時,嘗試盡可能多的演算法,然後挑選最好的乙個的做法是比較合理的,因為此時實驗成本很低。但當遇到「大資料」時,提前分析資料,然後設計相應「管道」模型(預處理,建模,優化演算法,評價,產品化)是值得的。
正如我之前文章中所指出的,有很多種方法來解決乙個給定建模問題。每個模型做出不同假設,如何導引和確定哪些假設合理的方法並不明確。在業界,大多數實踐者是挑選他們更熟悉而不是最合適的建模演算法。在本文中,我想分享一些常見錯誤(不能做的),並留一些最佳實踐方法(應該做的)在未來一篇文章中介紹。
許多實踐者使用預設損失函式(如,均方誤差)訓練和挑選最好的模型。實際上,現有損失函式很少符合業務目標。以欺詐檢測為例,當試圖檢測欺詐**易時,業務目標是最小化欺詐損失。現有二元分類器損失函式為誤報率和漏報率分配相等權重,為了符合業務目標,損失函式懲罰漏報不僅要多於懲罰誤報,而且要與金額數量成比例地懲罰每個漏報資料。此外,欺詐檢測資料集通常含有高度不平衡的標籤。在這些情況下,偏置損失函式能夠支援罕見情況(如,通過上、下取樣)。
當構建乙個二元分類器時,很多實踐者會立即跳轉到邏輯回歸,因為它很簡單。但是,很多人也忘記了邏輯回歸是一種線性模型,**變數間的非線**互需要手動編碼。回到欺詐檢測問題,要獲得好的模型效能,像「billing address = shipping address and transaction amount < $50」這種高階互動特徵是必須的。因此,每個人都應該選擇適合高階互動特徵的帶核svm或基於樹的分類器。(bagging or boosting)
異常值非常有趣,根據上下文環境,你可以特殊關注或者完全忽略它們。以收入**為例,如果觀察到不同尋常的峰值收入,給予它們額外關注並找出其原因可能是個好主意。但是如果異常是由於機械誤差,測量誤差或任何其它不可歸納的原因造成的,那麼在將資料輸入到建模演算法之前忽略掉這些異常值是個不錯的選擇。
相比於其它模型,有些模型對異常值更為敏感。比如,當決策樹演算法簡單地將每個異常值計為一次誤分類時,adaboost演算法會將那些異常值視為「硬」例項,並為異常值分配極大權值。如果乙個資料集含有相當數量的異常值,那麼,使用一種具有異常值魯棒性的建模演算法或直接過濾掉異常值是非常重要的。
svm是現有建模演算法中最受歡迎演算法之一,它最強大的特性之一是,用不同核函式去擬合模型的能力。svm核函式可被看作是一種自動結合現有特徵,從而形成乙個高維特徵空間的方式。由於獲得這一強大特性不需任何代價,所以大多數實踐者會在訓練svm模型時預設使用核函式。然而,當資料樣本數遠遠少於特徵數—業界常見情況如醫學資料—時,高維特徵空間意味著更高的資料過擬合風險。事實上,當樣本數遠小於特徵數時,應該徹底避免使用高方差模型。
使用l1或l2去懲罰大係數是一種正則化線性或邏輯回歸模型的常見方式。然而,很多實踐者並沒有意識到進行正則化之前標準化特徵的重要性。
回到欺詐檢測問題,設想乙個具有交易金額特徵的線性回歸模型。不進行正則化,如果交易金額的單位為美元,擬合係數將是以美分為單位時的100倍左右。進行正則化,由於l1/l2更大程度上懲罰較大係數,如果單位為美元,那麼交易金額將受到更多懲罰。因此,正則化是有偏的,並且趨向於在更小尺度上懲罰特徵。為了緩解這個問題,標準化所有特徵並將它們置於平等地位,作為乙個預處理步驟。
設想建立乙個具有兩變數x1和x2的線性模型,假設真實模型是y=x1+x2。理想地,如果觀測資料含有少量雜訊,線性回歸解決方案將會恢復真實模型。然而,如果x1和x2線性相關(大多數優化演算法所關心的),y=2*x1, y=3*x1-x2或y=100*x1-99*x2都一樣好,這一問題可能並無不妥,因為它是無偏估計。然而,它卻會使問題變得病態,使係數權重變得無法解釋。
因為很多現有線性回歸量為每個係數返回p值,對於線性模型,許多實踐者認為,係數絕對值越大,其對應特徵越重要。事實很少如此,因為:(a)改變變數尺度就會改變係數絕對值;(b)如果特徵是線性相關的,則係數可以從乙個特徵轉移到另乙個特徵。此外,資料集特徵越多,特徵間越可能線性相關,用係數解釋特徵重要性就越不可靠。
這下你就知道了機器學習實踐中的七種常見錯誤。這份清單並不詳盡,它只不過是引發讀者去考慮,建模假設可能並不適用於手頭資料。為了獲得最好的模型效能,挑選做出最合適假設的建模演算法—而不只是選擇你最熟悉那個演算法,是很重要的。
機器學習實踐中的7種常見錯誤
統計建模非常像工程學。在工程學中,有多種構建鍵 值儲存系統的方式,每個設計都會構造一組不同的關於使用模式的假設集合。在統計建模中,有很多分類器構建演算法,每個演算法構造一組不同的關於資料的假設集合。當處理少量資料時,嘗試盡可能多的演算法,然後挑選最好的乙個的做法是比較合理的,因為此時實驗成本很低。但...
機器學習實踐中應避免的七種常見錯誤
摘要 在機器學習領域,每個給定的建模問題都存在幾十種解法,本文作者認為,模型演算法的假設並不一定適用於手頭的資料 在追求模型最佳效能時,重要的是選擇適合資料集 尤其是 大資料 的模型演算法。編者按 在機器學習領域,每個給定的建模問題都存在幾十種解法,每個模型又有難以簡單判定是否合理的不同假設。在這種...
機器學習 機器學習實踐中應避免的七種常見錯誤
機器學習 機器學習實踐中應避免的七種常見錯誤 在機器學習領域,每個給定的建模問題都存在幾十種解法,每個模型又有難以簡單判定是否合理的不同假設。在這種情況下,大多數從業人員傾向於挑選他們熟悉的建模演算法,本文作者則認為,模型演算法的假設並不一定適用於手頭的資料 在追求模型最佳效能時,重要的是選擇適合資...