策略產(chǎn)品經(jīng)理:深入淺出了解機(jī)器學(xué)習(xí)算法原理(中篇)
對(duì)于策略產(chǎn)品經(jīng)理來(lái)說(shuō),了解有關(guān)機(jī)器學(xué)習(xí)算法的相關(guān)原理和思路,會(huì)對(duì)自身的工作有所幫助,那么,你了解機(jī)器學(xué)習(xí)里的監(jiān)督學(xué)習(xí)算法嗎?本篇文章里,作者便做了一定拆解和總結(jié),一起來(lái)看一下。
今天我們繼續(xù)來(lái)講講十大機(jī)器學(xué)習(xí)算法原理的中篇,核心目標(biāo)還是給策略產(chǎn)品或者希望從事該方向的同學(xué)通俗易懂地講清楚機(jī)器學(xué)習(xí)的思想原理,幫助策略產(chǎn)品建立起來(lái)最為基礎(chǔ)的“工具方案-問(wèn)題”的認(rèn)知思路,感興趣還是建議大家閱讀專業(yè)的機(jī)器學(xué)習(xí)書籍,了解更加專業(yè)的機(jī)器學(xué)習(xí)算法原理,本文章系列旨在給產(chǎn)品講清楚機(jī)器學(xué)習(xí)的思路和原理,今天我們繼續(xù)講完剩下的4個(gè)監(jiān)督學(xué)習(xí)算法。
一、基本的機(jī)器學(xué)習(xí)算法
1. 決策樹Decision Tree
決策樹-Decision Tree也是監(jiān)督學(xué)習(xí)算法的一種,主要應(yīng)用于分類問(wèn)題之上,少量也會(huì)應(yīng)用在回歸問(wèn)題上。作為一種特殊的樹形結(jié)構(gòu),其中每個(gè)內(nèi)部節(jié)點(diǎn)都代表一個(gè)屬性的區(qū)分判斷,每一個(gè)分支就代表判斷的結(jié)果輸出,最后每一個(gè)葉子節(jié)點(diǎn)代表著一種分類預(yù)測(cè)的結(jié)果。
舉個(gè)通俗的例子,咱們拿泰坦尼克號(hào)沉船事件旅客信息來(lái)對(duì)該乘客預(yù)判乘客生存的可能性,下面的模型通過(guò):性別、年齡和是否存在兄弟姐妹的特征來(lái)做判斷,可以看出通過(guò)決策樹看出:性別-年齡-是否有兄弟姐妹,來(lái)判定你是否可以上救生船;優(yōu)先女性或者小于9.5歲且沒(méi)有兄弟姐妹的孩子,這部分的人群通過(guò)決策樹判定下來(lái)是存活概率較高的;
由上面的例子可以知道,決策樹就是通過(guò)對(duì)一系列線索和信息的判斷作出的有效決策。
1)決策樹的分類
決策樹根據(jù)目標(biāo)變量的類型可以分成兩個(gè)類型:分類變量決策樹和連續(xù)變量決策樹,其實(shí)就是對(duì)應(yīng)的我們所謂的分類問(wèn)題和回歸問(wèn)題。
分類變量決策樹:這是指算法有一個(gè)分類的簡(jiǎn)單明細(xì)目標(biāo)變量。例如,考慮讓你預(yù)測(cè)Arthur本人的身高,作為三個(gè)類別之一:高個(gè)、矮個(gè)、適中;特征可能包括是否愛吃牛奶、是否愛打籃球、父母的身高、每天的睡眠時(shí)長(zhǎng)。決策樹將從這些特征中學(xué)習(xí),在每個(gè)數(shù)據(jù)點(diǎn)通過(guò)每個(gè)節(jié)點(diǎn)后,它將在高個(gè)、矮個(gè)、適中三個(gè)分類目標(biāo)中的一個(gè)具體的葉子節(jié)點(diǎn)上結(jié)束。
連續(xù)變量決策樹:這是指算法有一個(gè)連續(xù)數(shù)值的目標(biāo)變量,例如讓你預(yù)測(cè)北京朝陽(yáng)區(qū)亞運(yùn)村的房子價(jià)格,需要用到房屋地段、地鐵線途徑情況、小區(qū)物業(yè)水平、周邊商場(chǎng)布局情況、周邊的商圈分布,來(lái)預(yù)測(cè)一個(gè)連續(xù)值的輸出在葉子節(jié)點(diǎn)結(jié)束,具體是個(gè)最終的房屋價(jià)格。
2)樹的結(jié)構(gòu)組成
由圖中可知,主要有三個(gè)類型的及節(jié)點(diǎn),核心組成元素如下所示:
- 根節(jié)點(diǎn)-Root node:是決策樹的第一個(gè)節(jié)點(diǎn),根深蒂固的地方;
- 分割-Splitting:是指從根節(jié)點(diǎn)開始,將節(jié)點(diǎn)劃分為兩個(gè)或多個(gè)子節(jié)點(diǎn)的過(guò)程,例如圖中根節(jié)點(diǎn)劃分為葉子節(jié)點(diǎn)和內(nèi)部節(jié)點(diǎn)的過(guò)程;
- 節(jié)點(diǎn)-Node:將根節(jié)點(diǎn)的結(jié)果分割成子節(jié)點(diǎn),并將子節(jié)點(diǎn)分割成更多的子節(jié)點(diǎn),如圖中的內(nèi)部節(jié)點(diǎn)又稱為決策節(jié)點(diǎn);
- 葉子或終端節(jié)點(diǎn) – Leaf or terminal node:一個(gè)節(jié)點(diǎn)的結(jié)束,因?yàn)楣?jié)點(diǎn)不能再被分割,如圖中的葉子節(jié)點(diǎn);
- 分支-Branch:整個(gè)樹的一個(gè)分支被稱為分支或子樹;
- 父節(jié)點(diǎn)和子節(jié)點(diǎn) – Parent and Child Node:子節(jié)點(diǎn)與父節(jié)點(diǎn)都是相對(duì)概念,我們一般把某個(gè)節(jié)點(diǎn)的上一個(gè)鏈接節(jié)點(diǎn)叫做其父節(jié)點(diǎn),反之被稱之為子節(jié)點(diǎn);
3)樹模型的拆分
決策樹的構(gòu)建并不是越復(fù)雜越好,反而快速的定位和確定我們的決策特征對(duì)于構(gòu)建樹有較大的幫助,在實(shí)際場(chǎng)景當(dāng)中,會(huì)有非常多的特征和特征值,所以作為策略產(chǎn)品我們?cè)趺催x擇合適的特征組合來(lái)構(gòu)建樹呢?單個(gè)特征又如何制定閾值(前面泰坦尼克號(hào)的年齡/有幾個(gè)兄弟姐妹)來(lái)評(píng)估決策樹模型的好壞。我們來(lái)介紹對(duì)應(yīng)的方法和評(píng)估指標(biāo)。
①基尼不純度-Gini Impurity
基尼不純度是用來(lái)表示數(shù)據(jù)集中隨機(jī)選擇一個(gè)子項(xiàng),衡量其被錯(cuò)誤分到其他類別當(dāng)中的概率,表示一個(gè)系統(tǒng)的“純凈”程度,計(jì)算公式如下所示:
Pi代表當(dāng)前節(jié)點(diǎn)中屬于i類的比例;G(P)∈[0,1],越靠近0純度越高,代表決策樹的分類效果越好。
舉個(gè)簡(jiǎn)單分類決策樹例子,我們?cè)谌 = 2的時(shí)候,給左右2個(gè)分支,左邊5個(gè)“藍(lán)點(diǎn)”,右邊5個(gè)”綠點(diǎn)”,套用基尼不純度的公式,不純度為0,最理想的分類效果。
當(dāng)我們?nèi) = 1.5的時(shí)候,左邊有四個(gè)“藍(lán)點(diǎn)”,左邊的基尼不純度為0(沒(méi)有綠點(diǎn)),而右邊有一個(gè)“藍(lán)點(diǎn)”,四個(gè)“綠點(diǎn)”,基尼不純度為:
兩邊各自的點(diǎn)數(shù)不一樣,我們還需要做一下加權(quán)平均處理:(0.4*0)+(0.6*0.287)= 0.167跟分類前的基尼不純度0.5相比,我們可以認(rèn)為這個(gè)不純度在分類后被降低了0.5 – 0.167 = 0.333,因此又把它稱作基尼增益(Gini Gain)?;嵩鲆嬷翟礁?,說(shuō)明我們的分類效果越好。
② 信息增益-Information Gain
信息增益用來(lái)評(píng)估決策節(jié)點(diǎn)的分裂好壞,信息增益越大表明分裂的效果越好,其表明了系統(tǒng)的不確定性在減少,這個(gè)和“熵”的概念是比較一致的;熵本身是一個(gè)熱力學(xué)方向的概念,形容分子運(yùn)動(dòng)的混亂程度。
在決策樹模型中,我們用熵來(lái)衡量信息的不確定性,如果樹模型的單個(gè)葉子節(jié)點(diǎn)信息含有的分類越多,則熵越大。熵越大,表示分裂效果越差。最優(yōu)的情況就是單個(gè)葉子節(jié)點(diǎn)只包含一種分類。計(jì)算方式如下:
先計(jì)算父節(jié)點(diǎn)的熵,在分別計(jì)算各個(gè)子節(jié)點(diǎn)的熵,最后進(jìn)行加權(quán)平均,父節(jié)點(diǎn)的熵減去子節(jié)點(diǎn)的熵就表示的是信息增益Information Gain。
還是用上面藍(lán)綠點(diǎn)的例子,當(dāng)x = 2的時(shí)候,“藍(lán)點(diǎn)”和“綠點(diǎn)”完美分離,E分界線左側(cè) = 0 ,E分界線右側(cè)= 0,公式如下:所以x = 2的加權(quán)熵 = 0 * 5/10 +0 * 5/10 = 0;
當(dāng)x = 1.5 的時(shí)候,左側(cè) “藍(lán)點(diǎn)” 被完美分離,E1(分界線左側(cè))與E2(分界線右側(cè))代表公式如下所示。
所以選擇x = 2作為決策點(diǎn)的時(shí)候,信息增益值:1-0 = 1,即系統(tǒng)的不確定性減少了1;選擇x = 1.5 作為決策點(diǎn)的時(shí)候,信息增益值:1-0.66 = 0.34,即系統(tǒng)的不確定性減少了0.34;所以選擇x = 2作為決策點(diǎn)更加合理。
4)樹模型剪枝
為了防止決策樹模型的分支過(guò)多,出現(xiàn)過(guò)擬合問(wèn)題,通常我們會(huì)做剪枝,剪枝分為預(yù)剪枝和后剪枝兩種類型。
①預(yù)剪枝Pre-pruning
預(yù)剪枝就是在構(gòu)造決策樹的過(guò)程中,先對(duì)每個(gè)結(jié)點(diǎn)在劃分前進(jìn)行估計(jì),如果當(dāng)前結(jié)點(diǎn)的劃分不能帶來(lái)決策樹模型泛化性能的提升,則不對(duì)當(dāng)前結(jié)點(diǎn)進(jìn)行劃分并且將當(dāng)前結(jié)點(diǎn)標(biāo)記為葉結(jié)點(diǎn);核心是邊構(gòu)造邊剪枝。目標(biāo)是控制決策樹充分生長(zhǎng),可以預(yù)先的控制一些參數(shù)。
- 決策樹的最大深度,如果達(dá)到指定深度,就停止生長(zhǎng)——最大樹深度;
- 控制書中父節(jié)點(diǎn)和子節(jié)點(diǎn)的最少樣本量或者比例。對(duì)于父節(jié)點(diǎn),如果樣本量地域最小樣本量或者比例,就不再分組;對(duì)于子節(jié)點(diǎn),如果分組后生成的子節(jié)點(diǎn)樣本量地域最小樣本量或者比例,則不必進(jìn)行分組;——終端節(jié)點(diǎn)最大數(shù)量/最小樣本數(shù);
- 樹節(jié)點(diǎn)中輸出變量的最小異質(zhì)性減少量,如果分組產(chǎn)生的輸出變量異質(zhì)性地域一個(gè)指定值,則不用再進(jìn)行分組。
② 后剪枝Post-pruning
后剪枝是允許決策樹充分生長(zhǎng),然后在此基礎(chǔ)上根據(jù)一定的規(guī)則,減去決策樹中不具備代表性的葉節(jié)點(diǎn),是一個(gè)邊修邊剪的一個(gè)過(guò)程;在修剪的過(guò)程中,不斷對(duì)當(dāng)前決策樹測(cè)試樣本集合預(yù)估的精度和誤差,并且判斷是繼續(xù)還是停止修剪;當(dāng)然,后剪枝可能會(huì)導(dǎo)致模型的過(guò)度擬合。
5)其他
決策樹的建模思路在上述當(dāng)中已經(jīng)基本闡述完成了,還有包括回歸決策樹下評(píng)估的分差法,以及決策樹模型當(dāng)中ID3、C4.5和CART算法,后續(xù)可以開文章單獨(dú)給大家來(lái)做介紹。
2. 隨機(jī)森林算法-Random Forest
1)核心思想
把隨機(jī)森林算法放在決策樹之后是因?yàn)閮烧咴谒枷肷嫌写?lián)進(jìn)階的理念在里面,隨機(jī)森林一詞在1995年由貝爾實(shí)驗(yàn)室提出來(lái)的,既然是“森林”那必然是由一顆顆的參天大樹構(gòu)成的,正如名字所示,隨機(jī)森林可以被看做成為一個(gè)決策樹的集合結(jié)果,但是不同的決策樹之間沒(méi)有關(guān)聯(lián)性。
當(dāng)進(jìn)行分類任務(wù)的時(shí)候,新的輸入樣本進(jìn)入,就讓森林的每一顆決策樹進(jìn)行判斷和分類,每個(gè)決策樹都會(huì)得到一個(gè)自己的分類結(jié)果,決策樹分類結(jié)果當(dāng)中的哪一種分類投票最多,隨機(jī)森林就會(huì)把這個(gè)結(jié)果當(dāng)做當(dāng)成最終結(jié)果;核心思想與中國(guó)古代的“三個(gè)臭皮匠頂過(guò)一個(gè)諸葛亮”有異曲同工之秒。下圖比較直白的描述隨機(jī)森林的核心思想。
2)原理說(shuō)明
- 從數(shù)據(jù)集合中隨機(jī)Random選擇n個(gè)特征(列),其中集合共m個(gè)特征(其中 n< =m)。然后根據(jù)這n個(gè)特征建立決策樹。
- 抽樣特征的動(dòng)作依次來(lái)重復(fù)k次,這n個(gè)特性經(jīng)過(guò)不同隨機(jī)組合建立起來(lái)k棵決策樹(或者是數(shù)據(jù)的不同隨機(jī)樣本,又叫做自助法樣本)。
- 對(duì)每個(gè)決策樹都傳遞隨機(jī)變量來(lái)預(yù)測(cè)結(jié)果,即決策樹中的終端葉子節(jié)點(diǎn)結(jié)果;存儲(chǔ)所有預(yù)測(cè)的結(jié)果(目標(biāo)),你就可以從k棵決策樹中得到k種結(jié)果。
- 計(jì)算每個(gè)預(yù)測(cè)目標(biāo)的得票數(shù)再選擇模式(最常見的目標(biāo)變量)。換句話說(shuō),將得到高票數(shù)的預(yù)測(cè)目標(biāo)作為隨機(jī)森林算法的最終預(yù)測(cè),如果是個(gè)回歸樹的話就通過(guò)加權(quán)平均的方式得到最終預(yù)測(cè)值,如果是分類樹就得到具體的分類(哪一類分類最多)。
總結(jié):核心思想咱們?cè)賮?lái)舉個(gè)栗子,Arthur去北京旅游一周,拜訪了一位一直在北京工作的老同學(xué),朋友基于Arthur的預(yù)算、對(duì)于景點(diǎn)的偏好以及時(shí)間安排推薦了幾個(gè)景點(diǎn)建議,這是景點(diǎn)的決策樹的思想,老同學(xué)基于自己的經(jīng)驗(yàn)和喜好給Arthur推薦了幾個(gè)不錯(cuò)的經(jīng)典。
之后,Arthur又問(wèn)了很多在北京的前同事、同學(xué)訊問(wèn)建議,他們根據(jù)Arthur其他的(有部分重合)訴求,例如歷史底蘊(yùn)、海拔等特征給出了其他的建議,然后Arthur最終選擇了推薦次數(shù)最多的經(jīng)典,這就是隨機(jī)森林的算法思想。
3)隨機(jī)森林當(dāng)中的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 抗過(guò)擬合能力:通過(guò)加權(quán)平均單個(gè)決策樹的結(jié)果,降低過(guò)擬合的風(fēng)險(xiǎn)性。
- 解決問(wèn)題多元化:可以同時(shí)在隨機(jī)森林中加載分類樹和回歸樹,同時(shí)處理連續(xù)數(shù)值和離散的分類。
- 效果穩(wěn)定:即時(shí)是數(shù)據(jù)集中出現(xiàn)一個(gè)新的數(shù)據(jù)點(diǎn),或者是一棵樹分類效果有問(wèn)題也不會(huì)影響到整個(gè)森林,除非是半數(shù)以上的決策樹都出現(xiàn)了錯(cuò)誤預(yù)測(cè)的問(wèn)題。
缺點(diǎn):
- 計(jì)算成本高、耗時(shí)長(zhǎng):比單個(gè)決策樹更加的復(fù)雜,計(jì)算成本偏高;
- 需要更多的樣本和時(shí)間來(lái)做訓(xùn)練。
4)隨機(jī)森林當(dāng)中模型參數(shù)
和前面說(shuō)的邏輯回歸、線性回歸以及決策樹一樣,選擇合適的模型參數(shù)是幫助隨機(jī)森林做預(yù)測(cè)效果的核心關(guān)鍵,同時(shí)也決定了模型預(yù)測(cè)的性能效果,我們拿sklearn當(dāng)中的隨機(jī)森林參數(shù)來(lái)舉例,核心是為了解決上述說(shuō)到的幾個(gè)缺點(diǎn)。
①建模的速度
- 并行決策樹運(yùn)行數(shù)量,即使用處理器的數(shù)量,如果僅允許一個(gè)就輸出1,如果希望計(jì)算速度能夠更快可以設(shè)置多個(gè)并行決策樹。
- 隨機(jī)數(shù)生成器:當(dāng)模型具有一個(gè)確定的隨機(jī)數(shù),并且給定相同的超參數(shù)和相同的訓(xùn)練數(shù)據(jù)時(shí),模型將始終產(chǎn)生相同的結(jié)果。
- 是否計(jì)算袋外得分:袋外抽樣是用來(lái)幫助隨機(jī)森林做交叉驗(yàn)證的方式,樣本的三分之一都不是用來(lái)訓(xùn)練模型的而只是用來(lái)評(píng)估性能的,這些樣品被稱之為袋外樣品。
②預(yù)測(cè)能力
- 子模型的數(shù)量:在利用最大投票數(shù)或平均值來(lái)預(yù)測(cè)之前,你想要建立子樹的數(shù)量,其實(shí)和前面決策樹當(dāng)中控制葉子節(jié)點(diǎn)的思路一樣。子樹的數(shù)量越多,越能提高性能,預(yù)測(cè)的準(zhǔn)確性就越穩(wěn)定,但是也會(huì)放緩計(jì)算過(guò)程。
- 節(jié)點(diǎn)分裂時(shí)參與判斷的最大特征數(shù):隨機(jī)森林允許單個(gè)決策樹使用特征的最大數(shù)量。
- 葉子節(jié)點(diǎn)最小樣本數(shù):內(nèi)部節(jié)點(diǎn)再劃分所需最小樣本數(shù)。
二、總結(jié)
由于文章篇幅問(wèn)題策略產(chǎn)品通俗易懂講機(jī)器學(xué)習(xí)先講到?jīng)Q策樹和隨機(jī)森林的思想,該系列的文章目的是在為轉(zhuǎn)型策略產(chǎn)品,或者是已經(jīng)從事策略產(chǎn)品、策略運(yùn)營(yíng)方向的同學(xué)通俗易懂的了解機(jī)器學(xué)習(xí)算法原理與思想。
如何求得最佳參數(shù)的過(guò)程,機(jī)器學(xué)習(xí)只是一個(gè)達(dá)成業(yè)務(wù)目標(biāo)的高效方式,并不是目的本身,核心還是提升我們業(yè)務(wù)場(chǎng)景的效率和收入指標(biāo),策略產(chǎn)品是給我們提供了一個(gè)增加產(chǎn)品壁壘的方向和思考的方式。
本文由 @策略產(chǎn)品Arthur 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
交流歡迎關(guān)注我主頁(yè)