機(jī)器學(xué)習(xí)算法分類:監(jiān)督學(xué)習(xí)茶鉴、無監(jiān)督學(xué)習(xí)锋玲、強(qiáng)化學(xué)習(xí)
基本的機(jī)器學(xué)習(xí)算法:線性回歸、支持向量機(jī)(SVM)涵叮、最近鄰居(KNN)惭蹂、邏輯回歸伞插、決策樹、k平均盾碗、隨機(jī)森林媚污、樸素貝葉斯、降維廷雅、梯度增強(qiáng)
公式耗美、圖示、案例
機(jī)器學(xué)習(xí)算法大致可以分為三類:
監(jiān)督學(xué)習(xí)算法 (Supervised Algorithms):在監(jiān)督學(xué)習(xí)訓(xùn)練過程中航缀,可以由訓(xùn)練數(shù)據(jù)集學(xué)到或建立一個模式(函數(shù) / learning model)商架,并依此模式推測新的實例。該算法要求特定的輸入/輸出芥玉,首先需要決定使用哪種數(shù)據(jù)作為范例蛇摸。例如,文字識別應(yīng)用中一個手寫的字符灿巧,或一行手寫文字赶袄。主要算法包括神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)砸烦、最近鄰居法弃鸦、樸素貝葉斯法、決策樹等幢痘。
無監(jiān)督學(xué)習(xí)算法 (Unsupervised Algorithms):這類算法沒有特定的目標(biāo)輸出唬格,算法將數(shù)據(jù)集分為不同的組。
強(qiáng)化學(xué)習(xí)算法 (Reinforcement Algorithms):強(qiáng)化學(xué)習(xí)普適性強(qiáng)颜说,主要基于決策進(jìn)行訓(xùn)練购岗,算法根據(jù)輸出結(jié)果(決策)的成功或錯誤來訓(xùn)練自己,通過大量經(jīng)驗訓(xùn)練優(yōu)化后的算法將能夠給出較好的預(yù)測门粪。類似有機(jī)體在環(huán)境給予的獎勵或懲罰的刺激下喊积,逐步形成對刺激的預(yù)期,產(chǎn)生能獲得最大利益的習(xí)慣性行為玄妈。在運(yùn)籌學(xué)和控制論的語境下乾吻,強(qiáng)化學(xué)習(xí)被稱作“近似動態(tài)規(guī)劃”(approximate dynamic programming,ADP)拟蜻。
基本的機(jī)器學(xué)習(xí)算法:
線性回歸算法 Linear Regression
支持向量機(jī)算法 (Support Vector Machine,SVM)? ?--??將多類任務(wù)需要減少到幾個二元問題绎签。
最近鄰居/k-近鄰算法 (K-Nearest Neighbors,KNN)? ?--??KNN算法是一種基于實例的學(xué)習(xí)
邏輯回歸算法 Logistic Regression
決策樹算法 Decision Tree
k-平均算法 K-Means? --?k-平均算法(K-Means)是一種無監(jiān)督學(xué)習(xí)算法,為聚類問題提供了一種解決方案酝锅。
隨機(jī)森林算法 Random Forest
樸素貝葉斯算法 Naive Bayes? ?--?基于概率論的貝葉斯定理诡必,應(yīng)用非常廣泛,從文本分類搔扁、垃圾郵件過濾器爸舒、醫(yī)療診斷等等蟋字。樸素貝葉斯適用于特征之間的相互獨立的場景,
降維算法 Dimensional Reduction
梯度增強(qiáng)算法 Gradient Boosting
1. 線性回歸算法 Linear Regression
回歸分析(Regression Analysis)是統(tǒng)計學(xué)的數(shù)據(jù)分析方法扭勉,目的在于了解兩個或多個變量間是否相關(guān)鹊奖、相關(guān)方向與強(qiáng)度,并建立數(shù)學(xué)模型以便觀察特定變量來預(yù)測其它變量的變化情況涂炎。
線性回歸算法(Linear Regression)的建模過程就是使用數(shù)據(jù)點來尋找最佳擬合線嫉入。公式,y = mx + c璧尸,其中 y 是因變量,x 是自變量熬拒,利用給定的數(shù)據(jù)集求 m 和 c 的值爷光。
線性回歸又分為兩種類型,即
?簡單線性回歸(simple linear regression)澎粟,只有 1 個自變量蛀序;*多變量回歸(multiple regression),至少兩組以上自變量活烙。
下面是一個線性回歸示例:基于 Python scikit-learn 工具包描述徐裸。
2. 支持向量機(jī)算法(Support Vector Machine,SVM)
支持向量機(jī)/網(wǎng)絡(luò)算法(SVM)屬于分類型算法。SVM模型將實例表示為空間中的點啸盏,將使用一條直線分隔數(shù)據(jù)點重贺。需要注意的是,支持向量機(jī)需要對輸入數(shù)據(jù)進(jìn)行完全標(biāo)記回懦,僅直接適用于兩類任務(wù)气笙,應(yīng)用將多類任務(wù)需要減少到幾個二元問題。
3. 最近鄰居/k-近鄰算法 (K-Nearest Neighbors,KNN)
KNN算法是一種基于實例的學(xué)習(xí)怯晕,或者是局部近似和將所有計算推遲到分類之后的惰性學(xué)習(xí)潜圃。用最近的鄰居(k)來預(yù)測未知數(shù)據(jù)點。k 值是預(yù)測精度的一個關(guān)鍵因素舟茶,無論是分類還是回歸谭期,衡量鄰居的權(quán)重都非常有用,較近鄰居的權(quán)重比較遠(yuǎn)鄰居的權(quán)重大吧凉。
KNN 算法的缺點是對數(shù)據(jù)的局部結(jié)構(gòu)非常敏感隧出。計算量大,需要對數(shù)據(jù)進(jìn)行規(guī)范化處理客燕,使每個數(shù)據(jù)點都在相同的范圍鸳劳。
延伸:KNN 的一個缺點是依賴于整個訓(xùn)練數(shù)據(jù)集,學(xué)習(xí)向量量化(Learning Vector Quantization也搓,LVQ)是一種監(jiān)督學(xué)習(xí)的人神經(jīng)網(wǎng)絡(luò)算法赏廓,允許你選擇訓(xùn)練實例涵紊。LVQ 由數(shù)據(jù)驅(qū)動,搜索距離它最近的兩個神經(jīng)元幔摸,對于同類神經(jīng)元采取拉攏摸柄,異類神經(jīng)元采取排斥,最終得到數(shù)據(jù)的分布模式既忆。如果基于 KNN 可以獲得較好的數(shù)據(jù)集分類效果驱负,利用 LVQ 可以減少存儲訓(xùn)練數(shù)據(jù)集存儲規(guī)模。典型的學(xué)習(xí)矢量量化算法有LVQ1患雇、LVQ2和LVQ3跃脊,尤以LVQ2的應(yīng)用最為廣泛。
4. 邏輯回歸算法 Logistic Regression
邏輯回歸算法(Logistic Regression)一般用于需要明確輸出的場景苛吱,如某些事件的發(fā)生(預(yù)測是否會發(fā)生降雨)酪术。通常,邏輯回歸使用某種函數(shù)將概率值壓縮到某一特定范圍翠储。
例如绘雁,Sigmoid 函數(shù)(S 函數(shù))是一種具有 S 形曲線、用于二元分類的函數(shù)援所。它將發(fā)生某事件的概率值轉(zhuǎn)換為 0, 1 的范圍表示庐舟。
Y = E ^(b0+b1?x)/(1 + E ^(b0+b1?x ))
以上是一個簡單的邏輯回歸方程,B0住拭,B1是常數(shù)挪略。這些常數(shù)值將被計算獲得,以確保預(yù)測值和實際值之間的誤差最小废酷。
5. 決策樹算法 Decision Tree
決策樹(Decision tree)是一種特殊的樹結(jié)構(gòu)瘟檩,由一個決策圖和可能的結(jié)果(例如成本和風(fēng)險)組成,用來輔助決策澈蟆。機(jī)器學(xué)習(xí)中墨辛,決策樹是一個預(yù)測模型,樹中每個節(jié)點表示某個對象趴俘,而每個分叉路徑則代表某個可能的屬性值睹簇,而每個葉節(jié)點則對應(yīng)從根節(jié)點到該葉節(jié)點所經(jīng)歷的路徑所表示的對象的值。決策樹僅有單一輸出寥闪,通常該算法用于解決分類問題太惠。
一個決策樹包含三種類型的節(jié)點:
決策節(jié)點:通常用矩形框來表示
機(jī)會節(jié)點:通常用圓圈來表示
終結(jié)點:通常用三角形來表示
簡單決策樹算法案例,確定人群中誰喜歡使用信用卡疲憋≡湓ǎ考慮人群的年齡和婚姻狀況,如果年齡在30歲或是已婚,人們更傾向于選擇信用卡埃脏,反之則更少搪锣。
通過確定合適的屬性來定義更多的類別,可以進(jìn)一步擴(kuò)展此決策樹彩掐。在這個例子中构舟,如果一個人結(jié)婚了,他超過30歲堵幽,他們更有可能擁有信用卡(100% 偏好)狗超。測試數(shù)據(jù)用于生成決策樹。
注意:對于那些各類別樣本數(shù)量不一致的數(shù)據(jù)朴下,在決策樹當(dāng)中信息增益的結(jié)果偏向于那些具有更多數(shù)值的特征努咐。
6. k-平均算法 K-Means
k-平均算法(K-Means)是一種無監(jiān)督學(xué)習(xí)算法,為聚類問題提供了一種解決方案殴胧。
K-Means 算法把 n 個點(可以是樣本的一次觀察或一個實例)劃分到 k 個集群(cluster)麦撵,使得每個點都屬于離他最近的均值(即聚類中心,centroid)對應(yīng)的集群溃肪。重復(fù)上述過程一直持續(xù)到重心不改變。
7. 隨機(jī)森林算法 Random Forest
隨機(jī)森林算法(Random Forest)的名稱由 1995 年由貝爾實驗室提出的random decision forests 而來音五,正如它的名字所說的那樣惫撰,隨機(jī)森林可以看作一個決策樹的集合。
隨機(jī)森林中每棵決策樹估計一個分類躺涝,這個過程稱為“投票(vote)”厨钻。理想情況下,我們根據(jù)每棵決策樹的每個投票坚嗜,選擇最多投票的分類夯膀。
PaperRandom Forest |Leo Breiman | Statistics Department University of California Berkeley
8. 樸素貝葉斯算法 Naive Bayes
樸素貝葉斯算法(Naive Bayes)基于概率論的貝葉斯定理,應(yīng)用非常廣泛苍蔬,從文本分類诱建、垃圾郵件過濾器、醫(yī)療診斷等等碟绑。樸素貝葉斯適用于特征之間的相互獨立的場景俺猿,例如利用花瓣的長度和寬度來預(yù)測花的類型「裰伲“樸素”的內(nèi)涵可以理解為特征和特征之間獨立性強(qiáng)押袍。
與樸素貝葉斯算法密切相關(guān)的一個概念是最大似然估計(Maximum likelihood estimation),歷史上大部分的最大似然估計理論也都是在貝葉斯統(tǒng)計中得到大發(fā)展凯肋。例如谊惭,建立人口身高模型,很難有人力與物力去統(tǒng)計全國每個人的身高,但是可以通過采樣圈盔,獲取部分人的身高豹芯,然后通過最大似然估計來獲取分布的均值與方差。
Naive Bayes is called naive because it assumes that each input variable is independent.
9. 降維算法 Dimensional Reduction
在機(jī)器學(xué)習(xí)和統(tǒng)計學(xué)領(lǐng)域药磺,降維是指在限定條件下告组,降低隨機(jī)變量個數(shù),得到一組“不相關(guān)”主變量的過程癌佩,并可進(jìn)一步細(xì)分為特征選擇和特征提取兩大方法木缝。
一些數(shù)據(jù)集可能包含許多難以處理的變量。特別是資源豐富的情況下围辙,系統(tǒng)中的數(shù)據(jù)將非常詳細(xì)我碟。在這種情況下,數(shù)據(jù)集可能包含數(shù)千個變量姚建,其中大多數(shù)變量也可能是不必要的矫俺。在這種情況下,幾乎不可能確定對我們的預(yù)測影響最大的變量掸冤。此時厘托,我們需要使用降維算法,降維的過程中也可能需要用到其他算法稿湿,例如借用隨機(jī)森林铅匹,決策樹來識別最重要的變量。
10. 梯度增強(qiáng)算法 Gradient Boosting
梯度增強(qiáng)算法(Gradient Boosting)使用多個弱算法來創(chuàng)建更強(qiáng)大的精確算法饺藤。它與使用單個估計量不同包斑,而是使用多個估計量創(chuàng)建一個更穩(wěn)定和更健壯的算法。梯度增強(qiáng)算法有幾種:
XGBoost? — 使用線性和樹算法
LightGBM? — 只使用基于樹的算法
梯度增強(qiáng)算法的特點是精度較高涕俗。此外罗丰,LightGBM 算法具有令人難以置信的高性能。