十大機器學習算法

https://zhuanlan.zhihu.com/p/33794257

<header class="Post-Header" style="overflow: hidden; width: 690px; margin: 0px auto;">

Machine Learning: 十大機器學習算法

RiboseYim

Engineer & Writer

?關注他

40 人贊同了該文章

</header>

  • 機器學習算法分類:監督學習、無監督學習、強化學習
  • 基本的機器學習算法:線性回歸、支持向量機(SVM)、最近鄰居(KNN)、邏輯回歸、決策樹、k平均、隨機森林、樸素貝葉斯、降維、梯度增強
  • 公式、圖示、案例

機器學習算法大致可以分為三類:

  • 監督學習算法 (Supervised Algorithms):在監督學習訓練過程中,可以由訓練數據集學到或建立一個模式(函數 / learning model),并依此模式推測新的實例。該算法要求特定的輸入/輸出,首先需要決定使用哪種數據作為范例。例如,文字識別應用中一個手寫的字符,或一行手寫文字。主要算法包括神經網絡、支持向量機、最近鄰居法、樸素貝葉斯法、決策樹等。
  • 無監督學習算法 (Unsupervised Algorithms):這類算法沒有特定的目標輸出,算法將數據集分為不同的組。
  • 強化學習算法 (Reinforcement Algorithms):強化學習普適性強,主要基于決策進行訓練,算法根據輸出結果(決策)的成功或錯誤來訓練自己,通過大量經驗訓練優化后的算法將能夠給出較好的預測。類似有機體在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。在運籌學和控制論的語境下,強化學習被稱作“近似動態規劃”(approximate dynamic programming,ADP)。

基本的機器學習算法:

  • 線性回歸算法 Linear Regression
  • 支持向量機算法 (Support Vector Machine,SVM)
  • 最近鄰居/k-近鄰算法 (K-Nearest Neighbors,KNN)
  • 邏輯回歸算法 Logistic Regression
  • 決策樹算法 Decision Tree
  • k-平均算法 K-Means
  • 隨機森林算法 Random Forest
  • 樸素貝葉斯算法 Naive Bayes
  • 降維算法 Dimensional Reduction
  • 梯度增強算法 Gradient Boosting

1. 線性回歸算法 Linear Regression

回歸分析(Regression Analysis)是統計學的數據分析方法,目的在于了解兩個或多個變量間是否相關、相關方向與強度,并建立數學模型以便觀察特定變量來預測其它變量的變化情況。

線性回歸算法(Linear Regression)的建模過程就是使用數據點來尋找最佳擬合線。公式,y = mx + c,其中 y 是因變量,x 是自變量,利用給定的數據集求 m 和 c 的值。
線性回歸又分為兩種類型,即
簡單線性回歸(simple linear regression),只有 1 個自變量;多變量回歸(multiple regression)*,至少兩組以上自變量。

image

下面是一個線性回歸示例:基于 Python scikit-learn 工具包描述。

image

2. 支持向量機算法(Support Vector Machine,SVM)

支持向量機/網絡算法(SVM)屬于分類型算法。SVM模型將實例表示為空間中的點,將使用一條直線分隔數據點。需要注意的是,支持向量機需要對輸入數據進行完全標記,僅直接適用于兩類任務,應用將多類任務需要減少到幾個二元問題。

image
image
image

3. 最近鄰居/k-近鄰算法 (K-Nearest Neighbors,KNN)

KNN算法是一種基于實例的學習,或者是局部近似和將所有計算推遲到分類之后的惰性學習。用最近的鄰居(k)來預測未知數據點。k 值是預測精度的一個關鍵因素,無論是分類還是回歸,衡量鄰居的權重都非常有用,較近鄰居的權重比較遠鄰居的權重大。

KNN 算法的缺點是對數據的局部結構非常敏感。計算量大,需要對數據進行規范化處理,使每個數據點都在相同的范圍。

image
image
image

延伸:KNN 的一個缺點是依賴于整個訓練數據集,學習向量量化(Learning Vector Quantization,LVQ)是一種監督學習的人神經網絡算法,允許你選擇訓練實例。LVQ 由數據驅動,搜索距離它最近的兩個神經元,對于同類神經元采取拉攏,異類神經元采取排斥,最終得到數據的分布模式。如果基于 KNN 可以獲得較好的數據集分類效果,利用 LVQ 可以減少存儲訓練數據集存儲規模。典型的學習矢量量化算法有LVQ1、LVQ2和LVQ3,尤以LVQ2的應用最為廣泛。

image

4. 邏輯回歸算法 Logistic Regression

邏輯回歸算法(Logistic Regression)一般用于需要明確輸出的場景,如某些事件的發生(預測是否會發生降雨)。通常,邏輯回歸使用某種函數將概率值壓縮到某一特定范圍。
例如,Sigmoid 函數(S 函數)是一種具有 S 形曲線、用于二元分類的函數。它將發生某事件的概率值轉換為 0, 1 的范圍表示。

Y = E ^(b0+b1 x)/(1 + E ^(b0+b1 x ))

以上是一個簡單的邏輯回歸方程,B0,B1是常數。這些常數值將被計算獲得,以確保預測值和實際值之間的誤差最小。

image
image

5. 決策樹算法 Decision Tree

決策樹(Decision tree)是一種特殊的樹結構,由一個決策圖和可能的結果(例如成本和風險)組成,用來輔助決策。機器學習中,決策樹是一個預測模型,樹中每個節點表示某個對象,而每個分叉路徑則代表某個可能的屬性值,而每個葉節點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,通常該算法用于解決分類問題。

一個決策樹包含三種類型的節點:

  • 決策節點:通常用矩形框來表示
  • 機會節點:通常用圓圈來表示
  • 終結點:通常用三角形來表示

簡單決策樹算法案例,確定人群中誰喜歡使用信用卡。考慮人群的年齡和婚姻狀況,如果年齡在30歲或是已婚,人們更傾向于選擇信用卡,反之則更少。
通過確定合適的屬性來定義更多的類別,可以進一步擴展此決策樹。在這個例子中,如果一個人結婚了,他超過30歲,他們更有可能擁有信用卡(100% 偏好)。測試數據用于生成決策樹。

image
image

注意:對于那些各類別樣本數量不一致的數據,在決策樹當中信息增益的結果偏向于那些具有更多數值的特征。

6. k-平均算法 K-Means

k-平均算法(K-Means)是一種無監督學習算法,為聚類問題提供了一種解決方案。
K-Means 算法把 n 個點(可以是樣本的一次觀察或一個實例)劃分到 k 個集群(cluster),使得每個點都屬于離他最近的均值(即聚類中心,centroid)對應的集群。重復上述過程一直持續到重心不改變。

image

7. 隨機森林算法 Random Forest

隨機森林算法(Random Forest)的名稱由 1995 年由貝爾實驗室提出的random decision forests 而來,正如它的名字所說的那樣,隨機森林可以看作一個決策樹的集合。
隨機森林中每棵決策樹估計一個分類,這個過程稱為“投票(vote)”。理想情況下,我們根據每棵決策樹的每個投票,選擇最多投票的分類。

image
image

8. 樸素貝葉斯算法 Naive Bayes

樸素貝葉斯算法(Naive Bayes)基于概率論的貝葉斯定理,應用非常廣泛,從文本分類、垃圾郵件過濾器、醫療診斷等等。樸素貝葉斯適用于特征之間的相互獨立的場景,例如利用花瓣的長度和寬度來預測花的類型。“樸素”的內涵可以理解為特征和特征之間獨立性強。

與樸素貝葉斯算法密切相關的一個概念是最大似然估計(Maximum likelihood estimation),歷史上大部分的最大似然估計理論也都是在貝葉斯統計中得到大發展。例如,建立人口身高模型,很難有人力與物力去統計全國每個人的身高,但是可以通過采樣,獲取部分人的身高,然后通過最大似然估計來獲取分布的均值與方差。

Naive Bayes is called naive because it assumes that each input variable is independent.

image

9. 降維算法 Dimensional Reduction

在機器學習和統計學領域,降維是指在限定條件下,降低隨機變量個數,得到一組“不相關”主變量的過程,并可進一步細分為特征選擇和特征提取兩大方法。

一些數據集可能包含許多難以處理的變量。特別是資源豐富的情況下,系統中的數據將非常詳細。在這種情況下,數據集可能包含數千個變量,其中大多數變量也可能是不必要的。在這種情況下,幾乎不可能確定對我們的預測影響最大的變量。此時,我們需要使用降維算法,降維的過程中也可能需要用到其他算法,例如借用隨機森林,決策樹來識別最重要的變量。

10. 梯度增強算法 Gradient Boosting

梯度增強算法(Gradient Boosting)使用多個弱算法來創建更強大的精確算法。它與使用單個估計量不同,而是使用多個估計量創建一個更穩定和更健壯的算法。梯度增強算法有幾種:

  • XGBoost? — 使用線性和樹算法
  • LightGBM? — 只使用基于樹的算法
    梯度增強算法的特點是精度較高。此外,LightGBM 算法具有令人難以置信的高性能。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容

  • 機器學習算法分類:監督學習、無監督學習、強化學習 基本的機器學習算法:線性回歸、支持向量機(SVM)、最近鄰居(K...
    鄭佳露閱讀 597評論 0 1
  • 機器學習算法分類:監督學習、無監督學習、強化學習 基本的機器學習算法:線性回歸、支持向量機(SVM)、最近鄰居(K...
    RiboseYim閱讀 14,305評論 0 22
  • 本文列出了數據科學家使用的十大機器學習算法,并且介紹了這十大算法的特點,供各位機器學習的新人們更好地理解和應用。 ...
    煎蛋俠_閱讀 524評論 0 2
  • 在機器學習領域,有種說法叫做“世上沒有免費的午餐”,簡而言之,它是指沒有任何一種算法能在每個問題上都能有最好的效果...
    andyham閱讀 2,317評論 0 2
  • 不知為什么,隨著年歲的增長,慢慢開始感覺到生活的不易。身邊雖然沒有碰到骨肉相殘,忘恩負義的例子。但是在生活...
    緣分_986c閱讀 347評論 2 2