成為資料科學家應該知道的10種機器學習演算法

銀河1號發表於2019-03-16

瞭解為了成為資料科學家而應該瞭解的十種機器學習演算法。

機器學習從業者有不同的個性。雖然其中一些是“我是X專家,X可以訓練任何型別的資料”,其中X =某種演算法,其他人是“正確的工具用於正確的工作”的人。他們中的很多人還訂閱了“各行各業的高手”的策略,他們擁有一個深厚的專業領域,並且對機器學習的不同領域略有了解。也就是說,沒有人可以否認這樣一個事實:作為實踐資料科學家,我們必須瞭解一些常見機器學習演算法的基礎知識,這將有助於我們處理我們遇到的新域問題。這是常見機器學習演算法的旋風之旅,以及有關它們的快速資源,可以幫助你開始使用它們。

Principal Component Analysis (PCA)/SVD

PCA是一種無監督的方法,用於理解由向量組成的資料集的全域性屬性。此處分析協方差資料點矩陣,以瞭解哪些維度(大多數)/資料點(有時)更重要(即,它們之間的差異很大,但與其他維度的協方差很小)。考慮矩陣的頂級PC的一種方法是考慮具有最高特徵值的特徵向量。SVD本質上也是一種計算有序分量的方法,但是你不需要得到點的協方差矩陣來得到它。
成為資料科學家應該知道的10種機器學習演算法
該演算法通過獲取降維資料點來幫助人們克服維數的困擾。

Libraries

入門教程

最小二乘法和多項式擬合

還記得你在大學裡的數值分析課程,你曾經習慣用線條和曲線擬合得到方程式嗎?對於維度較小的非常小的資料集,你可以使用它們在機器學習中擬合曲線。(對於具有多個維度的大型資料或資料集,你可能最終會過度擬合,因此請不要打擾。)OLS具有封閉式的解決方案,因此你無需使用複雜的優化技術。
成為資料科學家應該知道的10種機器學習演算法
很明顯,使用此演算法來擬合簡單的曲線/迴歸。

Libraries

入門教程

約束線性迴歸

最小二乘法可能會與資料中的異常值,虛假場和噪聲混淆。因此,我們需要約束來減少我們在資料集上擬合的線的方差。正確的方法是擬合線性迴歸模型,以確保權重不會出錯。模型可以具有L1範數(LASSO)或L2(嶺迴歸)或兩者(彈性迴歸)。平均平方損失得到優化。
成為資料科學家應該知道的10種機器學習演算法
使用這些演算法來擬合帶有約束的迴歸線,並避免從模型中過度擬合和掩蓋噪聲維度。

Libraries

入門教程

K-Means聚類

每個人都喜歡無監督的聚類演算法。給定一組向量形式的資料點,我們可以根據它們之間的距離製作點集。它是一種期望最大化演算法,它迭代地移動叢集的中心,然後逐個移動每個叢集中心的點。演算法所採用的輸入是要生成的簇的數量以及它將嘗試聚合簇的迭代次數。
成為資料科學家應該知道的10種機器學習演算法

從名稱中可以明顯看出,你可以使用此演算法在資料集中建立K個群集。

Libraries

入門教程

Logistic迴歸

Logistic迴歸是受約束的線性迴歸,在應用權重後具有非線性(主要使用Sigmoid函式或者你也可以使用tanh)應用,因此將輸出限制為接近+/-類(在sigmoid的情況下為1和0)。使用Gradient Descent優化交叉熵損失函式。初學者須知:Logistic迴歸用於分類,而不是迴歸。你還可以將Logistic迴歸視為單層神經網路。使用梯度下降或L-BFGS等優化方法訓練Logistic迴歸。NLP人員通常會將其命名為Maximum Entropy Classifier。
這就是Sigmoid的樣子:
成為資料科學家應該知道的10種機器學習演算法
使用LR來訓練簡單但非常強大的分類器。

Libraries

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

入門教程

SVM(支援向量機)

SVM是線性模型,如線性/邏輯迴歸,不同之處在於它們具有不同的基於邊緣的損失函式(支援向量的推導是我在特徵值計算中看到的最美麗的數學結果之一)。你可以使用L-BFGS甚至SGD等優化方法優化損耗函式。
成為資料科學家應該知道的10種機器學習演算法
SVM的另一項創新是將資料核心用於特徵設計。如果你有很好的領域洞察力,你可以用更智慧的RBF核心替換舊的RBF核心並獲利。
SVM可以做的一件獨特事情是學習一個類分類器。
SVM可用於訓練分類器(甚至是迴歸量)。

Library

入門教程

注意:基於SGD的Logistic迴歸和SVM訓練都可以在SKLearn中找到,我經常使用它,因為它讓我可以用通用介面檢查LR和SVM。你還可以使用小批量在> RAM大小的資料集上訓練它。

前饋神經網路

這些基本上是多層Logistic迴歸分類器。許多層的權重由非線性分開(sigmoid,tanh,relu + softmax和cool new selu)。另一個流行的名字是Multi-Layered Perceptrons。FFNN可用作自動編碼器的分類和無監督特徵學習。
成為資料科學家應該知道的10種機器學習演算法
多層感知器
成為資料科學家應該知道的10種機器學習演算法
FFNN作為自動編碼器
FFNN可用於訓練分類器或提取特徵作為自動編碼器。

Libraries

入門教程

卷積神經網路(Convnets)

使用卷積神經網路幾乎可以實現當今世界上任何最先進的基於視覺的機器學習結果。它們可用於影象分類,物體檢測甚至影象分割。在80年代末期至90年代初由Yann Lecun發明的Convnets具有卷積層,可作為層次特徵提取器。你也可以在文字中使用它們(甚至是圖形)。
成為資料科學家應該知道的10種機器學習演算法
使用convnets進行最先進的影象和文字分類,物件檢測,影象分割。

Libraries

入門教程

遞迴神經網路(RNN)

RNN通過在時間t遞迴地在聚合器狀態上應用相同的權重集並且在時間t輸入來給模型序列建模(給定序列有輸入時間0..t..T,在每個時間t具有隱藏狀態這是從RNN的t-1步輸出的。純粹的RNN現在很少使用,但其對應物如LSTM和GRU在大多數序列建模任務中都是最先進的。
成為資料科學家應該知道的10種機器學習演算法
RNN(如果存在密集連線的單元和非線性,則現在f通常是LSTM或GRU)。LSTM單元用於代替純RNN中的普通密集層。
成為資料科學家應該知道的10種機器學習演算法
將RNN用於任何序列建模任務,尤其是文字分類,機器翻譯和語言建模。

Library:

github.com/tensorflow/…(谷歌的許多很酷的NLP研究論文都在這裡)

入門教程

條件隨機場(CRF)

CRF可能是概率圖形模型(PGM)系列中最常用的模型。它們用於像RNN一樣的序列建模,也可以與RNN結合使用。在神經機器翻譯系統出現之前CRF是最先進的,並且在許多序列標記任務中使用小資料集,它們仍然比需要更大量資料的RNN更好地學習。它們還可以用於其他結構化預測任務,如影象分割等.CRF對序列的每個元素(比如句子)進行建模,使得鄰居影響序列中元件的標籤,而不是所有標籤彼此獨立。
使用CRF標記序列(在文字,影象,時間序列,DNA等中)。

Library:

入門教程

決策樹

假設我給了一張Excel表格,上面有關於各種水果的資料,我必須說出蘋果的外觀。我要做的是問一個問題“哪些水果是紅色和圓形的?”並將所有回答是和否的水果分開。現在,所有紅色和圓形水果可能不是蘋果,所有蘋果都不會是紅色和圓形的。所以我會問一個問題“哪些水果上有紅色或黃色的暗示?“在紅色和圓形的水果上,會問”哪些水果是綠色和圓形的?“不是紅色和圓形的水果。基於這些問題,我可以準確地說出蘋果。這一系列問題就是決策樹。但是,這是一個基於我的直覺的決策樹。直覺不能用於高維和複雜資料。我們必須通過檢視標記資料自動提出級聯問題。這就是基於機器學習的決策樹所做的事情。像CART樹這樣的早期版本曾經用於簡單資料,但隨著資料集越來越大,偏差 - 方差權衡需要用更好的演算法來解決。現在使用的兩種常見的決策樹演算法是隨機森林(在隨機的屬性子集上構建不同的分類器並將它們組合用於輸出)和Boosting Trees(將樹木級聯培訓在其他樹上,糾正下面的錯誤)他們)。
決策樹可用於對資料點進行分類(甚至迴歸)。

Library

入門教程

TD演算法

如果你仍然想知道上述任何方法如何解決像DeepMind那樣擊敗Go世界冠軍的任務,他們都不能。在此之前我們討論的所有10種演算法都是模式識別,而不是策略學習者。要學習解決多步問題的策略,例如贏得國際象棋或玩Atari控制檯,我們需要讓世界上沒有代理人,並從其面臨的獎勵/懲罰中學習。這種型別的機器學習稱為強化學習。最近在該領域取得的成功很多(並非全部)是將Convnet或LSTM的感知能力與稱為時間差異學習的一組演算法相結合的結果。這些包括Q-Learning,SARSA和其他一些變體。
這些演算法主要用於自動播放遊戲,也用於語言生成和物件檢測中的其他應用。

Library

入門教程

這些是你可以學習成為資料科學家的十種機器學習演算法。
你還可以在此處閱讀有關機器學習庫的資訊
更多文章歡迎訪問: http://www.apexyun.com
公眾號:銀河系1號
聯絡郵箱:public@space-explore.com
(未經同意,請勿轉載)  


相關文章