天天看點

政策産品經理:深入淺出了解機器學習算法原理

對于政策産品經理來說,了解有關機器學習算法的相關原理和思路,會對自身的工作有所幫助,那麼,你了解機器學習裡的監督學習算法嗎?本篇文章裡,作者便做了一定拆解和總結,一起來看一下。
政策産品經理:深入淺出了解機器學習算法原理

今天我們繼續來講講十大機器學習算法原理的中篇,核心目标還是給政策産品或者希望從事該方向的同學通俗易懂地講清楚機器學習的思想原理,幫助政策産品建立起來最為基礎的“工具方案-問題”的認知思路,感興趣還是建議大家閱讀專業的機器學習書籍,了解更加專業的機器學習算法原理,本文章系列旨在給産品講清楚機器學習的思路和原理,今天我們繼續講完剩下的4個監督學習算法。

一、基本的機器學習算法

1. 決策樹Decision Tree

決策樹-Decision Tree也是監督學習算法的一種,主要應用于分類問題之上,少量也會應用在回歸問題上。作為一種特殊的樹形結構,其中每個内部節點都代表一個屬性的區分判斷,每一個分支就代表判斷的結果輸出,最後每一個葉子節點代表着一種分類預測的結果。

舉個通俗的例子,咱們拿泰坦尼克号沉船事件旅客資訊來對該乘客預判乘客生存的可能性,下面的模型通過:性别、年齡和是否存在兄弟姐妹的特征來做判斷,可以看出通過決策樹看出:性别-年齡-是否有兄弟姐妹,來判定你是否可以上救生船;優先女性或者小于9.5歲且沒有兄弟姐妹的孩子,這部分的人群通過決策樹判定下來是存活機率較高的;

政策産品經理:深入淺出了解機器學習算法原理

由上面的例子可以知道,決策樹就是通過對一系列線索和資訊的判斷作出的有效決策。

1)決策樹的分類

決策樹根據目标變量的類型可以分成兩個類型:分類變量決策樹和連續變量決策樹,其實就是對應的我們所謂的分類問題和回歸問題。

分類變量決策樹:這是指算法有一個分類的簡單明細目标變量。例如,考慮讓你預測Arthur本人的身高,作為三個類别之一:高個、矮個、适中;特征可能包括是否愛吃牛奶、是否愛打籃球、父母的身高、每天的睡眠時長。決策樹将從這些特征中學習,在每個資料點通過每個節點後,它将在高個、矮個、适中三個分類目标中的一個具體的葉子節點上結束。

連續變量決策樹:這是指算法有一個連續數值的目标變量,例如讓你預測北京朝陽區亞運村的房子價格,需要用到房屋地段、地鐵線途徑情況、小區物業水準、周邊商場布局情況、周邊的商圈分布,來預測一個連續值的輸出在葉子節點結束,具體是個最終的房屋價格。

2)樹的結構組成

由圖中可知,主要有三個類型的及節點,核心組成元素如下所示:

政策産品經理:深入淺出了解機器學習算法原理
  • 根節點-Root node:是決策樹的第一個節點,根深蒂固的地方;
  • 分割-Splitting:是指從根節點開始,将節點劃分為兩個或多個子節點的過程,例如圖中根節點劃分為葉子節點和内部節點的過程;
  • 節點-Node:将根節點的結果分割成子節點,并将子節點分割成更多的子節點,如圖中的内部節點又稱為決策節點;
  • 葉子或終端節點 – Leaf or terminal node:一個節點的結束,因為節點不能再被分割,如圖中的葉子節點;
  • 分支-Branch:整個樹的一個分支被稱為分支或子樹;
  • 父節點和子節點 – Parent and Child Node:子節點與父節點都是相對概念,我們一般把某個節點的上一個連結節點叫做其父節點,反之被稱之為子節點;

3)樹模型的拆分

決策樹的建構并不是越複雜越好,反而快速的定位和确定我們的決策特征對于建構樹有較大的幫助,在實際場景當中,會有非常多的特征和特征值,是以作為政策産品我們怎麼選擇合适的特征組合來建構樹呢?單個特征又如何制定門檻值(前面泰坦尼克号的年齡/有幾個兄弟姐妹)來評估決策樹模型的好壞。我們來介紹對應的方法和評估名額。

①基尼不純度-Gini Impurity

基尼不純度是用來表示資料集中随機選擇一個子項,衡量其被錯誤分到其他類别當中的機率,表示一個系統的“純淨”程度,計算公式如下所示:

Pi代表目前節點中屬于i類的比例;G(P)∈[0,1],越靠近0純度越高,代表決策樹的分類效果越好。

政策産品經理:深入淺出了解機器學習算法原理

舉個簡單分類決策樹例子,我們在取X = 2的時候,給左右2個分支,左邊5個“藍點”,右邊5個”綠點”,套用基尼不純度的公式,不純度為0,最理想的分類效果。

政策産品經理:深入淺出了解機器學習算法原理

當我們取x = 1.5的時候,左邊有四個“藍點”,左邊的基尼不純度為0(沒有綠點),而右邊有一個“藍點”,四個“綠點”,基尼不純度為:

政策産品經理:深入淺出了解機器學習算法原理

兩邊各自的點數不一樣,我們還需要做一下權重平均處理:(0.4*0)+(0.6*0.287)= 0.167跟分類前的基尼不純度0.5相比,我們可以認為這個不純度在分類後被降低了0.5 – 0.167 = 0.333,是以又把它稱作基尼增益(Gini Gain)。基尼增益值越高,說明我們的分類效果越好。

② 資訊增益-Information Gain

資訊增益用來評估決策節點的分裂好壞,資訊增益越大表明分裂的效果越好,其表明了系統的不确定性在減少,這個和“熵”的概念是比較一緻的;熵本身是一個熱力學方向的概念,形容分子運動的混亂程度。

在決策樹模型中,我們用熵來衡量資訊的不确定性,如果樹模型的單個葉子節點資訊含有的分類越多,則熵越大。熵越大,表示分裂效果越差。最優的情況就是單個葉子節點隻包含一種分類。計算方式如下:

先計算父節點的熵,在分别計算各個子節點的熵,最後進行權重平均,父節點的熵減去子節點的熵就表示的是資訊增益Information Gain。

還是用上面藍綠點的例子,當x = 2的時候,“藍點”和“綠點”完美分離,E分界線左側 = 0 ,E分界線右側= 0,公式如下:是以x = 2的權重熵 = 0 * 5/10 +0 * 5/10 = 0;

政策産品經理:深入淺出了解機器學習算法原理

當x = 1.5 的時候,左側 “藍點” 被完美分離,E1(分界線左側)與E2(分界線右側)代表公式如下所示。

是以選擇x = 2作為決策點的時候,資訊增益值:1-0 = 1,即系統的不确定性減少了1;選擇x = 1.5 作為決策點的時候,資訊增益值:1-0.66 = 0.34,即系統的不确定性減少了0.34;是以選擇x = 2作為決策點更加合理。

4)樹模型剪枝

為了防止決策樹模型的分支過多,出現過拟合問題,通常我們會做剪枝,剪枝分為預剪枝和後剪枝兩種類型。

①預剪枝Pre-pruning

預剪枝就是在構造決策樹的過程中,先對每個結點在劃分前進行估計,如果目前結點的劃分不能帶來決策樹模型泛化性能的提升,則不對目前結點進行劃分并且将目前結點标記為葉結點;核心是邊構造邊剪枝。目标是控制決策樹充分生長,可以預先的控制一些參數。

  • 決策樹的最大深度,如果達到指定深度,就停止生長——最大樹深度;
  • 控制書中父節點和子節點的最少樣本量或者比例。對于父節點,如果樣本量地域最小樣本量或者比例,就不再分組;對于子節點,如果分組後生成的子節點樣本量地域最小樣本量或者比例,則不必進行分組;——終端節點最大數量/最小樣本數;
  • 樹節點中輸出變量的最小異質性減少量,如果分組産生的輸出變量異質性地域一個指定值,則不用再進行分組。

② 後剪枝Post-pruning

後剪枝是允許決策樹充分生長,然後在此基礎上根據一定的規則,減去決策樹中不具備代表性的葉節點,是一個邊修邊剪的一個過程;在修剪的過程中,不斷對目前決策樹測試樣本集合預估的精度和誤差,并且判斷是繼續還是停止修剪;當然,後剪枝可能會導緻模型的過度拟合。

5)其他

決策樹的模組化思路在上述當中已經基本闡述完成了,還有包括回歸決策樹下評估的分差法,以及決策樹模型當中ID3、C4.5和CART算法,後續可以開文章單獨給大家來做介紹。

2. 随機森林算法-Random Forest

1)核心思想

把随機森林算法放在決策樹之後是因為兩者在思想上有串聯進階的理念在裡面,随機森林一詞在1995年由貝爾實驗室提出來的,既然是“森林”那必然是由一顆顆的參天大樹構成的,正如名字所示,随機森林可以被看做成為一個決策樹的集合結果,但是不同的決策樹之間沒有關聯性。

當進行分類任務的時候,新的輸入樣本進入,就讓森林的每一顆決策樹進行判斷和分類,每個決策樹都會得到一個自己的分類結果,決策樹分類結果當中的哪一種分類投票最多,随機森林就會把這個結果當做當成最終結果;核心思想與中國古代的“三個臭皮匠頂過一個諸葛亮”有異曲同工之秒。下圖比較直白的描述随機森林的核心思想。

政策産品經理:深入淺出了解機器學習算法原理

2)原理說明

  1. 從資料集合中随機Random選擇n個特征(列),其中集合共m個特征(其中 n< =m)。然後根據這n個特征建立決策樹。
  2. 抽樣特征的動作依次來重複k次,這n個特性經過不同随機組合建立起來k棵決策樹(或者是資料的不同随機樣本,又叫做自助法樣本)。
  3. 對每個決策樹都傳遞随機變量來預測結果,即決策樹中的終端葉子節點結果;存儲所有預測的結果(目标),你就可以從k棵決策樹中得到k種結果。
  4. 計算每個預測目标的得票數再選擇模式(最常見的目标變量)。換句話說,将得到高票數的預測目标作為随機森林算法的最終預測,如果是個回歸樹的話就通過權重平均的方式得到最終預測值,如果是分類樹就得到具體的分類(哪一類分類最多)。

總結:核心思想咱們再來舉個栗子,Arthur去北京旅遊一周,拜訪了一位一直在北京工作的老同學,朋友基于Arthur的預算、對于景點的偏好以及時間安排推薦了幾個景點建議,這是景點的決策樹的思想,老同學基于自己的經驗和喜好給Arthur推薦了幾個不錯的經典。

之後,Arthur又問了很多在北京的前同僚、同學訊問建議,他們根據Arthur其他的(有部分重合)訴求,例如曆史底蘊、海拔等特征給出了其他的建議,然後Arthur最終選擇了推薦次數最多的經典,這就是随機森林的算法思想。

3)随機森林當中的優缺點

優點:

  1. 抗過拟合能力:通過權重平均單個決策樹的結果,降低過拟合的風險性。
  2. 解決問題多元化:可以同時在随機森林中加載分類樹和回歸樹,同時處理連續數值和離散的分類。
  3. 效果穩定:即時是資料集中出現一個新的資料點,或者是一棵樹分類效果有問題也不會影響到整個森林,除非是半數以上的決策樹都出現了錯誤預測的問題。

缺點:

  1. 計算成本高、耗時長:比單個決策樹更加的複雜,計算成本偏高;
  2. 需要更多的樣本和時間來做訓練。

4)随機森林當中模型參數

和前面說的邏輯回歸、線性回歸以及決策樹一樣,選擇合适的模型參數是幫助随機森林做預測效果的核心關鍵,同時也決定了模型預測的性能效果,我們拿sklearn當中的随機森林參數來舉例,核心是為了解決上述說到的幾個缺點。

①模組化的速度

  1. 并行決策樹運作數量,即使用處理器的數量,如果僅允許一個就輸出1,如果希望計算速度能夠更快可以設定多個并行決策樹。
  2. 随機數生成器:當模型具有一個确定的随機數,并且給定相同的超參數和相同的訓練資料時,模型将始終産生相同的結果。
  3. 是否計算袋外得分:袋外抽樣是用來幫助随機森林做交叉驗證的方式,樣本的三分之一都不是用來訓練模型的而隻是用來評估性能的,這些樣品被稱之為袋外樣品。

②預測能力

  1. 子模型的數量:在利用最大投票數或平均值來預測之前,你想要建立子樹的數量,其實和前面決策樹當中控制葉子節點的思路一樣。子樹的數量越多,越能提高性能,預測的準确性就越穩定,但是也會放緩計算過程。
  2. 節點分裂時參與判斷的最大特征數:随機森林允許單個決策樹使用特征的最大數量。
  3. 葉子節點最小樣本數:内部節點再劃分所需最小樣本數。

二、總結

由于文章篇幅問題政策産品通俗易懂講機器學習先講到決策樹和随機森林的思想,該系列的文章目的是在為轉型政策産品,或者是已經從事政策産品、政策營運方向的同學通俗易懂的了解機器學習算法原理與思想。

如何求得最佳參數的過程,機器學習隻是一個達成業務目标的高效方式,并不是目的本身,核心還是提升我們業務場景的效率和收入名額,政策産品是給我們提供了一個增加産品壁壘的方向和思考的方式。

本文由 @政策産品Arthur 原創釋出于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協定

該文觀點僅代表作者本人,人人都是産品經理平台僅提供資訊存儲空間服務。

繼續閱讀