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