機器學習算法:為您的問題選擇哪種算法

當我開始我的數據科學之旅時,我經常面臨為我的特定問題選擇最合適的算法的問題。如果你像我一樣,當你打開一些關於機器學習算法的文章時,你會看到許多詳細的描述。矛盾的是,這並沒有使選擇使用哪一個更容易。

在這篇文章中,我將嘗試解釋一些基本的概念,並給出一些關於在不同任務中使用不同種類的機器學習算法的直覺。在本文的最後,您將找到所描述算法的主要特性的結構化概述。

首先,你應該區分四種機器學習任務:

監督式學習

無監督學習

Semi-supervised學習

強化學習

監督式學習

監督學習是從標記的訓練數據中推斷出一個函數的任務。通過擬合標記訓練集,我們希望找到最優的模型參數來預測其他對象(測試集)上的未知標籤。如果標籤是實數,我們稱之為任務迴歸。如果標籤來自有限數量的值,其中這些值是無序的,那麼它就是分類。

無監督學習

在無監督學習中,我們對物體的信息更少。特別地,列車組沒有標記。我們現在的目標是什麼?可以觀察到對象組之間的一些相似性,並將它們包含在適當的集群中。有些對象與所有集群都有很大的不同,因此,我們假設這些對象是異常的。

Semi-Supervised學習

半監督學習任務包括我們前面描述的兩個問題:它們使用標記的和未標記的數據。對於那些無法負擔數據標籤費用的人來說,這是一個大好機會。這種方法可以顯著提高精度,因為我們可以在有少量標記數據的列車集中使用無標記數據。

強化學習

強化學習不同於我們之前的任何任務,因為我們這裡沒有標記或未標記的數據集。RL是機器學習的一個領域,它關注的是軟件代理應該如何在某些環境中採取行動,以最大化累積回報的概念。

想象你是一個機器人在一個陌生的地方。你可以進行一些活動,並從環境中獲得獎勵。在每一個動作之後,你的行為會變得更加複雜和聰明,所以你在訓練自己在每一步都以最有效的方式表現。在生物學中,這被稱為對自然環境的適應。

常用的機器學習算法

現在我們已經對機器學習任務的類型有了一些直觀的認識,讓我們來探索最流行的算法及其在現實生活中的應用。

線性迴歸與線性分類器

這些可能是機器學習中最簡單的算法。你有對象x1,…xn(矩陣A)和標籤(向量b)的特徵,你的目標是根據某個損失函數找到這些特徵的最優權值w1,…wn和偏置;例如,用於迴歸問題的MSE或MAE。在MSE的情況下,由最小二乘法得到一個數學方程:

在實際應用中,用梯度下降法來優化更容易,這樣計算效率更高。儘管這個算法很簡單,但是當你有成千上萬的特性時,它會工作得很好。更復雜的算法會遇到許多特徵過度擬合和數據集不夠大的問題,而線性迴歸提供了不錯的質量。

為了防止過擬合,我們經常使用正則化技術。其思想是將權重模塊和權重平方和分別添加到我們的損失函數中。在本文的最後,請閱讀關於這些算法的教程。

邏輯迴歸

不要將這些分類算法與在標題中使用“迴歸”的迴歸方法混淆。邏輯迴歸執行二進制分類,因此標籤輸出是二進制的。定義P(y=1|x)為給定輸入特徵向量x的條件下,輸出y=1的條件概率,係數w為模型要學習的權重。

由於這個算法計算屬於每個類的概率,您應該考慮概率與0或1之間的差異,並將其平均到所有對象上,就像我們在線性迴歸中所做的那樣。這樣的損失函數是交叉熵的平均值:

別慌!我會讓你輕鬆的。允許y是正確的答案:0或1,y_pred -預測的答案。如果y = 0,那麼sum = 0下的第一個加數,第二個加數越小,根據對數的性質,y_pred越接近0。類似地,在y = 1的情況下。

邏輯迴歸的優點是什麼?它採用特徵的線性組合並應用一個非線性函數(sigmoid),所以它是一個非常非常小的神經網絡實例!

決策樹

另一個流行且易於理解的算法是決策樹。他們的圖形幫助你看到你在想什麼,他們的引擎需要一個系統的,文檔化的思維過程。

這個算法的思想非常簡單。在每個節點中,我們在所有特性和所有可能的分割點中選擇最好的分割。選擇每個分割的方式都是為了最大化某些功能。在分類樹中,我們使用交叉熵和基尼指數。在迴歸樹中,我們最小化落在那個區域的點的目標值的預測變量和我們賦給它的目標值之間的平方誤差之和。

我們為每個節點遞歸地執行這個過程,並在滿足停止條件時結束。它們可以從節點中的最小葉數到樹的高度變化。單棵樹很少被使用,但是與其他許多樹一起使用,它們構建了非常有效的算法,如隨機森林或梯度樹增強。

k - means

有時,您不知道任何標籤,您的目標是根據對象的特性分配標籤。這稱為集群化任務。

假設要將所有數據對象劃分為k個集群。您需要從數據中隨機選擇k個點,並將它們命名為集群中心。其他對象的集群由最近的集群中心定義。然後,轉換簇的中心,重複這個過程,直到收斂。

這是最清晰的聚類技術,但仍然存在一些缺點。首先,您應該知道一些我們不知道的集群。其次,結果依賴於開始時隨機選取的點,該算法不能保證得到函數的全局最小值。

有一系列的聚類方法,它們有不同的優點和缺點,可以在推薦閱讀中學習。

主成分分析

你有沒有在考試前的晚上,甚至早上,為一場困難的考試做過準備?你不可能記住所有你需要的信息,但是你想在有限的時間內最大化你能記住的信息;例如,先學習在很多考試中出現的定理,等等。

主成分分析也是基於同樣的思想。該算法提供了降維功能。有時,您擁有廣泛的特性,可能彼此之間高度相關,並且模型很容易在大量數據上過度匹配。然後,您可以應用PCA。

令人驚訝的是,這些向量是數據集特徵相關矩陣的特徵向量。

現在的算法很清楚:

計算特徵列的相關矩陣,並求出特徵向量。

我們取這些多維向量並計算所有特徵在它們上面的投影。

新的特徵是來自投影的座標,它們的數量取決於特徵向量的數量,你可以根據特徵向量來計算投影。

神經網絡

當我們討論邏輯迴歸時,我已經提到了神經網絡。在非常具體的任務中,有許多不同的體系結構是有價值的。更常見的是,它是一系列層或組件,這些層或組件之間存在線性連接,並且遵循非線性關係。

如果你處理圖像,卷積深度神經網絡會顯示出很好的結果。非線性由卷積層和池化層表示,能夠捕捉圖像的特徵。

對於文本和序列的處理,最好選擇遞歸神經網絡。RNNs包含LSTM或GRU模塊,可以處理預先知道維度的數據。RNNs最著名的應用之一是機器翻譯。

結論

我希望您現在能夠理解最常用的機器學習算法的一般概念,並直觀地瞭解如何為您的特定問題選擇一種算法。為了讓您更容易理解,我準備了它們的主要特性的結構化概述:

線性迴歸和線性分類器:儘管它們看起來很簡單,但它們在大量的特徵上非常有用,因為更好的算法會遇到過擬合問題。

邏輯迴歸:最簡單的非線性分類器,參數和非線性函數(sigmoid)的線性組合,用於二元分類。

決策樹:通常類似於人的決策過程,易於解釋,但它們最常用於組合,如隨機森林或梯度增強。

K-means:一種更原始但很容易理解的算法,可以作為各種問題的基準。

主成分分析:一個偉大的選擇,以減少維數,你的特徵空間的信息損失最小。

神經網絡:機器學習算法的新時代,可以應用於很多任務,但它們的訓練需要巨大的計算複雜性。