機器學習是數據分析師高級進階的一個核心技能。分享關於機器學習的文章,沒有算法,沒有代碼,只是可以快速的瞭解機器學習!算法
--------------------------------------------------------------------------------------------------------------------------------------------------數據庫
在瞭解了須要解決的機器學習問題的類型以後,能夠開始考慮蒐集來的數據的類型以及能夠嘗試的機器學習算法。在這裏介紹一遍最流行的機器學習算法,經過瀏覽主要的算法來大體瞭解能夠利用的方法是頗有幫助的。網絡
可利用的算法很是之多,困難之處在於既有不一樣種類的方法,也有對這些方法的擴展。這致使很快就難以區分到底什麼纔是正統的算法。但願經過兩種方式來思考和區分在這個領域中你將會遇到的算法。機器學習
第一種劃分算法的方式是根據學習的方式,第二種則是基於形式和功能的類似性。兩種方法都是有用的。函數
學習方式學習
基於經驗、環境,或者任何咱們稱之爲輸入數據的相互做用,一個算法能夠用不一樣的方式對一個問題建模。在機器學習和人工智能教課書中,流行的作法是首先考慮一個算法的學習方式。算法的主要學習方式和學習模型只有幾個,逐一介紹,而且給出幾個算法和它們適合解決的問題類型來做爲例子。大數據
監督學習:輸入數據被稱爲訓練數據,它們有已知的標籤或者結果,好比垃圾郵件/非垃圾郵件或者某段時間的股票價格。模型的參數肯定須要經過一個訓練的過程,在這個過程當中模型將會要求做出預測,當預測不符時,則須要做出修改。優化
無監督學習:輸入數據不帶標籤或者沒有一個已知的結果,經過推測輸入數據中存在的結構來創建模型。這類問題的例子有關聯規則學習和聚類。算法的例子包括Apriori算法和K-means算法。編碼
半監督學習:輸入數據由帶標記和不帶標記的組成。合適的預測模型雖然已經存在,可是模型在預測的同時還必須能經過發現潛在的結構來組織數據。這類問題包括分類和迴歸。典型算法包括對一些其餘靈活的模型的推廣,這些模型對如何給未標記數據建模作出了一些假設。人工智能
強化學習:輸入數據做爲來自環境的激勵提供給模型,且模型必須作出反應。反饋並不像監督學習那樣來自於訓練的過程,而是做爲環境的懲罰或者獎賞。典型問題有系統和機器人控制。算法的例子包括Q學習和時序差分學習。
當你處理大量數據來對商業決策建模時,一般會使用監督和無監督學習。目前一個熱門話題是半監督學習,好比會應用在圖像分類中,涉及到的數據集很大但只是包含極少數標記的數據。
-----------------------------------------------------------------------------------------------------------------------------------------------
算法類似性
一般,咱們會把算法按照功能和形式的類似性來區分。好比樹形結構和神經網絡的方法。這是一種有用的分類方法,但也不是完美的。仍然有些算法很容易就能夠被納入好幾個類別。好比學習矢量量化,它既是受啓發於神經網絡的方法,又是基於實例的方法,也有一些算法的名字即描述了它處理的問題,也是某一類算法的名稱,好比迴歸和聚類。正由於如此,你會從不一樣的來源看到對算法進行不一樣的歸類。就像及其學習算法自身同樣,沒有完美的模型,只有足夠好的模型。
在這個小節裏,將會按照我以爲最直觀的方式列出許多流行的機器學習算法。雖然不論是類別仍是算法都不是全面詳盡的,但我認爲它們都具備表明性,有助於對整個領域有一個大體的瞭解。
迴歸分析
迴歸是這樣一種建模方式,它先肯定一個衡量模型預測偏差的量,而後經過這個量反覆優化變量之間的關係。迴歸方法是統計學的主要應用,被歸爲統計機器學習。這有些讓人迷茫,由於門能夠用迴歸來指代一類問題或一類算法。實際上,迴歸是一個過程。如下是一些例子:
普通最小二乘法
邏輯迴歸
逐步迴歸
多元自適應樣條迴歸MARS
局部多項式迴歸擬合LOESS
基於實例的學習模型對決策問題進行建模,這些決策基於訓練數據中被認爲重要的或者模型所必須的實例。這類方法一般會創建一個範例數據庫,而後根據某個類似性衡量標準來把新數據和數據庫進行比較,從而找到最匹配的項,最後作出預測。所以,基於實例的方法還被叫作「贏者通吃」方法和基於記憶的學習。這種方法的中點在於已有實例的表示以及實例間類似性的衡量標準。
K最近鄰算法KNN
學習矢量量化LVQ
自組織映射SOM
正則化方法
這是對另外一種方法(一般是迴歸分析方法)的擴展,它懲罰複雜度高的模型,傾向推廣性好的更加簡單的模型。在這裏列下了一些正則化的方法,由於他們流行、強大,並且一般只是對其餘方法簡單的改進。
嶺迴歸
套索算法LASSO
彈性網絡
決策樹學習
決策樹方法對決策過程進行建模,決策時基於數據中屬性的實際數值。決策在樹形結構上分叉直到對特定的某個記錄能作出預測。在分類後者迴歸的問題中咱們用數據來訓練決策樹。
分類與迴歸數算法CART
迭代二叉樹3代ID3
C4.5算法
卡方自動互動檢視CHAID
單層決策樹
隨機森林
多元自適應樣條迴歸MARS
梯度推動機GBM
貝葉斯算法
貝葉斯方法是那些明確地分類和迴歸問題中應用貝葉斯定理的算法。
樸素貝葉斯算法
AODE算法
貝葉斯信度網絡BBN
核函數方法
核函數方法中最爲出名的是流行的支持向量機算法,它實際上是一系列方法。核函數方法關心的是如何把輸入數據映射到一個高緯度的矢量空間,在這個空間中,某些分類或者回歸問題能夠較容易地解決。
支持向量機SVM
徑向基函數RBF
線性判別分析LDA
聚類方法
就像迴歸同樣,聚類既表示一類問題,也表示一類方法。聚類方法通常按照建模方式來劃分:基於質心的或者層級結構的。全部的方法都是利用數據的內在結構來儘可能地把數據納入具備最大共性的一類裏。
K均值法
最大指望算法EM
關聯規則學習
關聯規則學習是提取規則的一類算法,這些規則能最好地解釋觀測到的數據中的變量之間的關係。這些規則能在大型多維數據集中發現重要且在商業上有用的關聯,而後進一步被利用。
Apriori算法
Eclat算法
人工神經網絡
人工神經網絡是受啓發與生物神經網絡的結構或功能的算法。它們是一類經常使用在迴歸和分類問題中的模式匹配方法,但其實這個龐大的子類包含了上百種算法和算法的變形,能夠解決各類類型的問題,一些經典流行的方法(已經把深度學習從這個分類中分出來了):
感知機
反向傳播算法
Hopfield神經網絡
自適應映射SOM
學習矢量量化LVQ
深度學習
深度學習方法是利用便宜冗餘的計算資源對人工神經網絡的現代版改進。這類方法試圖簡歷大得多也複雜得多的神經網絡,就如前面說到的,許多方法都是基於大數據集中很是有限的標記數據來解決半監督學習問題。
受限玻爾茲曼機RBM
深度信念網DBM
卷積神經網絡
層疊自動編碼器SAE
降維方法
如同聚類方法,降維方法試圖利用數據中的內在結構來總結或描述數據,所不一樣的是它以無監督的方式利用更少的信息。這對於可視化高維數據或者爲以後的監督學習簡化數據都有幫助。
主成分分析PCA
偏最小二乘法迴歸PLS
薩蒙映射
多維尺度分析MDS
投影尋蹤
集成方法
集成方法由多個較弱模型組合而成,這些子模型獨立訓練,它們的預測結構以某種方式整合起來得出總的預測。不少努力都集中在選擇什麼類型的學習模型做爲子模型,以及用什麼方式整合它們的結果。這是一類很是強大的技術,所以也很流行。
推動技術Boosting
自展集成Bagging
適應性推動AdaBoost
層疊泛化策略Blending
梯度推動機GBM
隨機森林