2.本文適合人群:本文通過(guò)通俗易懂的語(yǔ)言和例子介紹核心思想,不拽高大上的名詞,適合于不懂機(jī)器學(xué)習(xí)的小白
3.看完本文后可以學(xué)習(xí)到什么?:你會(huì)覺(jué)得原來(lái)機(jī)器學(xué)習(xí)算法核心思想如此簡(jiǎn)單!
1.什么是機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)是什么?機(jī)器學(xué)習(xí)是從歷史數(shù)據(jù)(歷史經(jīng)驗(yàn))中獲取模型(規(guī)律),并將其應(yīng)用到新的類似場(chǎng)景中。
?
舉個(gè)很簡(jiǎn)單的例子:
民政局婚姻登記處工作人員小王在民政局工作了20多年,歷年來(lái)5.20號(hào)去登記結(jié)婚的情侶比平日增加好幾倍,于是小王推測(cè)2019年5月20日來(lái)登記結(jié)婚的情侶數(shù)據(jù)也會(huì)大幅上升,便加派工作人員。
在這個(gè)例子中通過(guò)20多年來(lái)每天登記結(jié)婚的數(shù)量的統(tǒng)計(jì),就是歷史數(shù)據(jù);5.20號(hào)登記結(jié)婚的人數(shù)大幅上升就是一個(gè)很明顯的特征,歷年來(lái)5.20號(hào)登記的人數(shù)都大幅增加就是一個(gè)模型,預(yù)測(cè)2019.5.20登記結(jié)婚的人數(shù)也會(huì)有一個(gè)大幅提升就是將模型應(yīng)用到新的類似場(chǎng)景。當(dāng)然在實(shí)際的應(yīng)用中會(huì)增加其它維度,例如天氣狀況,是否是周末等影響因素。
2.機(jī)器學(xué)習(xí)的分類算法
分類算法就是通過(guò)一種方式或按照某個(gè)標(biāo)準(zhǔn)將對(duì)象進(jìn)行區(qū)分。分類是一個(gè)有監(jiān)督的學(xué)習(xí)過(guò)程,目標(biāo)數(shù)據(jù)庫(kù)中有哪些類別是已知的,分類過(guò)程需要做的就是把每一條記錄歸到對(duì)應(yīng)的類別之中。由于必須事先知道各個(gè)類別的信息,并且所有待分類的數(shù)據(jù)條目都默認(rèn)有對(duì)應(yīng)的類別。
常用的分類算法:
?
單一的分類方法主要包括:決策樹(shù)、貝葉斯、人工神經(jīng)網(wǎng)絡(luò)、K-近鄰、支持向量機(jī)和基于關(guān)聯(lián)規(guī)則的分類等;
?
組合單一分類方法的集成學(xué)習(xí)算法,如Bagging和Boosting等。
?
在本文中,作者只介紹常用的幾種算法,通過(guò)通俗易懂的案例讓朋友們理解高大上的人工智能機(jī)器學(xué)習(xí)算法。
3.分類算法之k-近鄰
電影可以按照題材分類,每個(gè)題材又是如何定義的呢?那么假如兩種類型的電影,動(dòng)作片和愛(ài)情片。動(dòng)作片有哪些公共的特征?那么愛(ài)情片又存在哪些明顯的差別呢?我們發(fā)現(xiàn)動(dòng)作片中打斗鏡頭的次數(shù)較多,而愛(ài)情片中接吻鏡頭相對(duì)更多。當(dāng)然動(dòng)作片中也有一些接吻鏡頭,愛(ài)情片中也會(huì)有一些打斗鏡頭。所以不能單純通過(guò)是否存在打斗鏡頭或者接吻鏡頭來(lái)判斷影片的類別。那么現(xiàn)在我們有6部影片已經(jīng)明確了類別,也有打斗鏡頭和接吻鏡頭的次數(shù),還有一部電影類型未知。
?
電影名稱 | 打斗鏡頭 | 接吻鏡頭 | 電影類型 |
羅馬假日 | 1 | 158 | 愛(ài)情片 |
泰坦尼克號(hào) | 12 | 132 | 愛(ài)情片 |
愛(ài)樂(lè)之城 | 2 | 81 | 愛(ài)情片 |
海王 | 156 | 18 | 動(dòng)作片 |
蜘蛛俠 | 99 | 3 | 動(dòng)作片 |
毒液 | 107 | 2 | 動(dòng)作片 |
小歐的愛(ài)情故事 | 4 | 88 | 未知 |
?
?
我們只需要計(jì)算歐氏距離(這個(gè)是真的叫歐式距離)
?
公式就是:
?
電影名稱 | 計(jì)算公式 | 與未知電影的距離 |
羅馬假日 |
|
70.06 |
泰坦尼克號(hào) |
|
44.72 |
愛(ài)樂(lè)之城 | … | 7.28 |
海王 | … | 167.34 ? |
蜘蛛俠 | … | 127.48 ? |
毒液 | … | 134.18 ? |
?
?
?K值選擇,距離度量,分類決策規(guī)則是K近鄰法的三個(gè)基本要素
總結(jié): k-近鄰算法采用測(cè)量不同特征值之間的距離來(lái)進(jìn)行分類 優(yōu)點(diǎn):精度高、對(duì)異常值不敏感、無(wú)數(shù)據(jù)輸入假定 缺點(diǎn):計(jì)算復(fù)雜度高、空間復(fù)雜度高 使用數(shù)據(jù)范圍:數(shù)值型和標(biāo)稱型
4.?分類算法之決策樹(shù)
決策樹(shù)(Decision Tree)是一種簡(jiǎn)單但是廣泛使用的分類器。通過(guò)訓(xùn)練數(shù)據(jù)構(gòu)建決策樹(shù),可以高效的對(duì)未知的數(shù)據(jù)進(jìn)行分類。
通常決策樹(shù)學(xué)習(xí)包括三個(gè)步驟:特征選擇、決策樹(shù)的生成和決策樹(shù)的修剪。
特征選擇就是特征選擇在于選取對(duì)訓(xùn)練數(shù)據(jù)具有分類能力的特征。這樣可以提高決策樹(shù)學(xué)習(xí)的效率,如果利用一個(gè)特征進(jìn)行分類的結(jié)果與隨機(jī)分類的結(jié)果沒(méi)有很大差別,則稱這個(gè)特征是沒(méi)有分類能力的。經(jīng)驗(yàn)上扔掉這樣的特征對(duì)決策樹(shù)學(xué)習(xí)的影響不大。通常特征選擇的準(zhǔn)則是信息增益,這是個(gè)數(shù)學(xué)概念。
下面用一個(gè)簡(jiǎn)單的案例分析,來(lái)幫助大家對(duì)決策樹(shù)進(jìn)行理解。?
電影名稱 |
電影類型 |
電影放映日期 |
電影價(jià)格 |
電影評(píng)分 |
羅馬假日 |
愛(ài)情片 |
周一 |
99 |
99 |
泰坦尼克號(hào) |
愛(ài)情片 |
周日 |
198 |
98 |
愛(ài)樂(lè)之城 |
愛(ài)情片 |
周六 |
89 |
78 |
海王 |
動(dòng)作片 |
周六 |
88 |
78 |
蜘蛛俠 |
動(dòng)作片 |
周四 |
98 |
88 |
毒液 |
動(dòng)作片 |
周日 |
89 |
98 |
小歐的愛(ài)情故事 |
未知 |
周六 |
19 |
100 |
??
假如我周末的時(shí)間想去看一部愛(ài)情片的電影,電影的票價(jià)不能超過(guò)一百塊,并且評(píng)分比較高,那么我會(huì)在上述的電影中選擇哪一部電影呢?
?
我們來(lái)看特征選擇的過(guò)程:
?
?
通過(guò)決策樹(shù)算法,最終得到的結(jié)果是《小歐的愛(ài)情故事》這部電影。
?
假如我們覺(jué)得最終得到的這部電影是我們想看的,那么我們的判定流程就是對(duì)的,也就是說(shuō)這個(gè)決策樹(shù)的生成。
?
假如我們覺(jué)得電影價(jià)格無(wú)所謂不能作為特征,我們把電影價(jià)格這個(gè)特征去除,這就是決策樹(shù)的剪枝。
?
決策樹(shù)的一些優(yōu)點(diǎn):
- 簡(jiǎn)單的理解和解釋。樹(shù)木可視化;
- 需要很少的數(shù)據(jù)準(zhǔn)備。其他技術(shù)通常需要數(shù)據(jù)歸一化,需要?jiǎng)?chuàng)建虛擬變量,并刪除空值。但請(qǐng)注意,此模塊不支持缺少值;
- 使用樹(shù)的成本(即,預(yù)測(cè)數(shù)據(jù))在用于訓(xùn)練樹(shù)的數(shù)據(jù)點(diǎn)的數(shù)量上是對(duì)數(shù)的。
決策樹(shù)的缺點(diǎn):
- 決策樹(shù)學(xué)習(xí)者可以創(chuàng)建不能很好地推廣數(shù)據(jù)的過(guò)于復(fù)雜的樹(shù)。這被稱為過(guò)擬合。修剪(目前不支持)的機(jī)制,設(shè)置葉節(jié)點(diǎn)所需的最小采樣數(shù)或設(shè)置樹(shù)的最大深度是避免此問(wèn)題的必要條件。
- 決策樹(shù)可能不穩(wěn)定,因?yàn)閿?shù)據(jù)的小變化可能會(huì)導(dǎo)致完全不同的樹(shù)被生成。通過(guò)使用合奏中的決策樹(shù)來(lái)減輕這個(gè)問(wèn)題。
5.分類算法之隨機(jī)森林
隨機(jī)森林是一種重要的基于Bagging的集成學(xué)習(xí)方法,可以用來(lái)做分類、回歸等問(wèn)題。
?
在機(jī)器學(xué)習(xí)中,隨機(jī)森林是一個(gè)包含多個(gè)決策樹(shù)的分類器,并且其輸出的類別是由個(gè)別樹(shù)輸出的類別的眾數(shù)而定。利用相同的訓(xùn)練數(shù)搭建多個(gè)獨(dú)立的分類模型,然后通過(guò)投票的方式,以少數(shù)服從多數(shù)的原則作出最終的分類決策。
?
例如, 如果你訓(xùn)練了5個(gè)樹(shù), 其中有4個(gè)樹(shù)的結(jié)果是True, 1個(gè)數(shù)的結(jié)果是False, 那么最終結(jié)果會(huì)是True.意思就是在上述的決策樹(shù)算法流程中,每一個(gè)結(jié)點(diǎn)都隨機(jī)選擇特征,隨機(jī)特征變量選取是這樣的,由于隨機(jī)森林在進(jìn)行節(jié)點(diǎn)分裂時(shí),不是所有的屬性都參與屬性指標(biāo)的計(jì)算,而是隨機(jī)地選擇某幾個(gè)屬性參與比較。
?
隨機(jī)特征變量是為了使每棵決策樹(shù)之間的相關(guān)性減少,同時(shí)提升每棵決策樹(shù)的分類精度。這樣我們可能得到多個(gè)決策樹(shù)的結(jié)果,可能我們得到八個(gè)結(jié)果其中6個(gè)結(jié)果是《小歐的愛(ài)情故事》,兩個(gè)是《愛(ài)樂(lè)之城》,這樣我們?nèi)Q策的多的一項(xiàng),得到算法結(jié)果就是《小歐的愛(ài)情故事》。
?
在前面的決策當(dāng)中我們提到,一個(gè)標(biāo)準(zhǔn)的決策樹(shù)會(huì)根據(jù)每維特征對(duì)預(yù)測(cè)結(jié)果的影響程度進(jìn)行排序,進(jìn)而決定不同的特征從上至下構(gòu)建分裂節(jié)點(diǎn)的順序,如此以來(lái),所有在隨機(jī)森林中的決策樹(shù)都會(huì)受這一策略影響而構(gòu)建的完全一致,從而喪失的多樣性。所以在隨機(jī)森林分類器的構(gòu)建過(guò)程中,每一棵決策樹(shù)都會(huì)放棄這一固定的排序算法,轉(zhuǎn)而隨機(jī)選取特征。
?
隨機(jī)森林有許多優(yōu)點(diǎn):
- 具有很高的準(zhǔn)確率
- 隨機(jī)性的引入,使得隨機(jī)森林不容易過(guò)擬合和很好的抗噪聲能力
- 能處理很高維度的數(shù)據(jù),并且不用做特征選擇
- 既能處理離散型數(shù)據(jù),也能處理連續(xù)型數(shù)據(jù),數(shù)據(jù)集無(wú)需規(guī)范化
- 訓(xùn)練速度快,可以得到變量重要性排序
隨機(jī)森林的缺點(diǎn):
- 當(dāng)隨機(jī)森林中的決策樹(shù)個(gè)數(shù)很多時(shí),訓(xùn)練時(shí)需要的空間和時(shí)間會(huì)較大,訓(xùn)練和預(yù)測(cè)時(shí)都比較慢
- 隨機(jī)森林模型還有許多不好解釋的地方,有點(diǎn)算個(gè)黑盒模
總結(jié):通過(guò)以上案例對(duì)三種算法的分析,相信大家都已經(jīng)理解算法的核心思想,機(jī)器學(xué)習(xí)中的分類算法不同的算法都各有自己的優(yōu)缺點(diǎn),每種算法都有自己適用的場(chǎng)景。
?
BOUT
關(guān)于作者
歐陽(yáng)仁浚:達(dá)觀數(shù)據(jù)后端開(kāi)發(fā)工程師,負(fù)責(zé)達(dá)觀數(shù)據(jù)產(chǎn)品后端開(kāi)發(fā)、產(chǎn)品落地、客戶定制化產(chǎn)品需求等設(shè)計(jì)。對(duì)后端開(kāi)發(fā),文本處理算法落地方面有比較深入的了解。