【我們為什麼挑選這篇文章】「沒有一種機器學習模型可以解決所有問題」,這句話說得很實在,但機器學習的需求每次都有所不同,如何去找到合適的算法?這個標準很難拿捏,這篇文章很好的協助大家釐清這個問題。(責任編輯:林子鈞)

本文經知乎專欄  論智 (公眾號 ID :jqr_AI) 授權轉載

當我們要解決任意一種機器學習問題時,都需要選擇合適的演算法。在機器學習中存在一種「沒有免費的午餐」定律,即沒有一款機器學習模型可以解決所有問題。不同的機器學習算法表現取決於數據的大小和結構。所以,除非用傳統的試錯法實驗,否則我們沒有明確的方法證明某種選擇是對的。

但是,每種機器學習算法都有各自的有缺點,這也能讓我們在選擇時有所參考。雖然一種算法不能通用,但每個算法都有一些特徵,能讓人快速選擇並調整參數。接下來,我們大致瀏覽幾種常見的用於回歸問題的機器學習算法,並根據他們的優點和弱點總結出在什麼情況下可以使用。

線性和多項式回歸

首先是簡單的情況,單一變量的線性回歸是用於表示單一輸入自變量和因變量之間的關係的模型。多變量線性回歸更常見,其中模型是表示多個輸入自變量和輸出因變量之間的關係。模型保持線性是因為輸出是輸入變量的線性結合。

第三種行間情況稱為多項式回歸,這裡的模型是特徵向量的非線性結合,即向量是指數變量,sin、cos 等等。這種情況需要考慮數據和輸出之間的關係,回歸模型可以用隨機梯度下降訓練。

優點:

  • 建模速度快,在模型結構不複雜並且數據較少的情況下很有用。
  • 線性回歸易於理解,在商業決策時很有價值。

缺點:

  • 對非線性數據來說,多項式回歸在設計時有難度,因為在這種情況下必須瞭解數據結構和特徵變量之間的關係。
  • 綜上,遇到複雜數據時,這些模型的表現就不理想了。

神經網絡

神經網絡包含了許多互相連接的節點,稱為神經元。輸入的特徵變量經過這些神經元後變成多變量的線性組合,與各個特徵變量相乘的值稱為權重。之後在這一線性結合上應用非線性,使得神經網絡可以對複雜的非線性關係建模。神經網絡可以有多個圖層,一層的輸出會傳遞到下一層。在輸出時,通常不會應用非線性。神經網絡用隨機梯度下降和反向傳播算法訓練。

優點:

  • 由於神經網絡有很多層(所以就有很多參數),同時是非線性的,它們能高效地對複雜的非線性關係進行建模。
  • 通常我們不用擔心神經網絡中的數據,它們在學習任何特徵向量關係時都很靈活。
  • 研究表明,單單增加神經網絡的訓練數據,不論是新數據還是對原始數據進行增強,都會提高網絡性能。

缺點:

  • 由於模型的複雜性,它們不容易被理解。
  • 訓練時可能有難度,同時需要大量計算力、仔細地調參並且設置好學習速率。
  • 它們需要大量數據才能達到較高的性能,與其他機器學習相比,在小數據集上通常表現更優。

回歸樹和隨機森林

首先從基本情況開始,決策樹是一種直觀的模型,決策者需要在每個節點進行選擇,從而穿過整個「樹」。樹形歸納是將一組訓練樣本作為輸入,決定哪些從哪些屬性分割數據,不斷重複這一過程,知道所有訓練樣本都被歸類。在構建樹時,我們的目標是用數據分割創建最純粹的子節點。純粹性是通過信息增益的概念來衡量的。在實際中,這是通過比較熵或區分當前數據集中的單一樣本和所需信息量與當前數據需要進一步區分所需要的信息量。

隨機森林是決策樹的簡單集成,即是輸入向量經過多個決策樹的過程。對於回歸,所有樹的輸出值是平均的;對於分類,最終要用投票策略決定。

優點:

  • 對複雜、高度非線性的關係非常實用。它們通常能達到非常高的表現性能,比多項式回歸更好。
  • 易於使用理解。雖然最後的訓練模型會學會很多複雜的關係,但是訓練過程中的決策邊界易於理解。

缺點:

  • 由於訓練決策樹的本質,它們更易於過度擬合。一個完整的決策樹模型會非常複雜,并包含很多不必要的結構。雖然有時通過“修剪”和與更大的隨機森林結合可以減輕這一狀況。
  • 利用更大的隨機森林,可以達到更好地效果,但同時會拖慢速度,需要更多內存。

結論

這就是三種算法的優缺點總結。希望你覺得有用!

機器學習乾貨

GitHub 機器學習 100 天自學專案,內容強大學了保證一生平安!

4 小時入門機器學習跟 TensorFlow,免費線上課程還手把手教你太佛心!

機器學習大神最常用的 5 個回歸損失函數,你知道幾個?

(本文經原作者 論智(公眾號 ID :jqr_AI) 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈如何為你的回歸問題選擇最合適的機器學習算法?〉)