1. 程式人生 > >決策樹 & 隨機森林

決策樹 & 隨機森林

<機器學習筆記-05 >決策樹

關鍵詞:機器學習,決策樹

摘要:本文主要介紹了筆者對於決策樹原理的理解。

  1. 知識要點總結

    1. 掌握決策樹、分類器、積極/消極學習方法、整合學習的概念;

    2. 掌握構建決策樹、隨機森林的方法;

    3. 掌握熵、資訊增益、基尼不純度的概念和計算方法;

    4. 掌握在python中使用基本數學、決策樹和隨機森林的方法;

  2. 概念理解:

    1. 決策樹:

      1. 是一種分類器;通過訓練資料構建決策樹,對未知資料進行分類;
      2. 構成:一個根結點(樣本全集)、若干內部結點(屬性測試)、若干葉結點(決策結果);
      3. 判定過程:輸入一組未知資料,從根結點出發,按照決策樹的判定測試序列,執行到葉結點輸出決策結果;
      4. 決策樹學習目的:產生泛化能力強(處理未見示例能力強)的決策樹;
      5. 積極學習方法(eager learner):先從訓練集建立一個與後面需求無關的模型,模型一旦建好後可以很快的預測出結果;消極學習方法(lazy learner):如KNN(k-Nearest Neighbor)有了訓練集資料的預測需求,才會開始學習整個資料的特徵;不需要花時間訓練預測能力,但比積極學習方法預測慢;
    2. 熵(Entropy)

      1. 如何確定決策樹應該先測試哪個解釋變數?解決思路:較好的測試可以更大程度上降低分類的不確定度性
      2. 熵:度量資訊的不確定性;以位元(bits)為單位;完全確定的分類,其熵為0位元;其公式為
        H(x)
        =i=1nP(xi)logbP(xi)

        其中,n是樣本的數量,P(xi)是第i個樣本的概率;b一般取2或e或10;前面加符號是為了熵為非負數;

      3. 舉例以方便理解:

        1. ##### 投擲硬幣一次,正反面概率各為0.5,則硬幣投擲一次的結果變數熵為
        H(x)=(0.5log20.5+0.5log20.5)=1.0
        1. ##### 投擲硬幣一次,正面概率0.8,反面概率0.2,則硬幣投擲一次的結果變數熵為0.72;不確定性降低了,向另一種結果更加靠近;
        H(x)=(0.8log20.8+0.2log20.2)=0.72
        1. ##### 投擲硬幣一次,正面概率為1.0,反面概率為0,則硬幣投擲一次的結果變數熵為0;結果不確定性度為0;
        H(x)=(1.0log21.0+0.0log20.0)=0.0
    3. 資訊增益(information gain)

      1. 如何評估哪一個變數最大程度地降低了分類的不確定性?
      2. 資訊增益:父結點熵 H(T)與子節點熵加權均值的差;應該選擇資訊增益最大的解釋變數進行結點劃分;
        IG(T,a)=H(T)vval(s){xT|xa=v}|T|H(xT|xa=v)

        其中,xaval(s)表示解釋變數a的樣本x{xT|xa=v} 表示解釋變數a的值等於v樣本數量;H(xT|xa=v)是解釋變數a的值等於v的樣本熵;

    4. 基尼不純度(gini impurity):

      1. 在使用CART方法時,按照集合中子集標籤的概率分佈對集合中元素指定標籤,基尼不純度用來衡量被錯誤指定標籤的元素被隨機抽取的概率;(翻譯自wikipedia-decision tree);
      2. 計算公式:假設集合共有j個子集,t是結點樣本的子集,其中P(i|t)表示從結點子集中選擇一個型別i的概率;
        Gini(t)=i=1jP(i|t)(1P(i|t))=i=1jP(i|t)i=1jP(i|t)2=1i=1jP(i|t)2
      3. 集合中只有一類,基尼不純度為0;美國型別概率相同時,基尼不純度最大,為
        Ginimax=11n
      4. 舉例方便理解:
        1. 投擲硬幣,正反面各0.5概率,則硬幣投擲一次的不純度為

          Gini(t)=20.5(10.5)=1(0.52+0.52)=0.5
        2. 投擲硬幣,正面概率為0.8,反面概率為0.2,則硬幣投擲一次的不純度為

          相關推薦

          第七講:決策+隨機森林+AdaBoost(下)

          本講主要內容 4 整合學習(下)     4.3 Boosting         4.3.1 AdaBoost     &

          第六講:決策+隨機森林+AdaBoost(中)

          主要內容: 4 整合學習(下) 4.1決策樹     4.1.1  CART模型(見上講)       4.1.2  特徵選擇  &nb

          第五講:決策+隨機森林+AdaBoost(上)

          主要內容 3 邏輯斯蒂迴歸(下) 3.5 邏輯斯諦迴歸和凸優化問題 3.5.1 什麼是凸優化問題 3.5.2 為什麼說邏輯斯諦迴歸是一個凸優化問題 3.6 多項邏輯斯諦迴歸 3.6.1 模型 3.6.2 策略 3.6.3 演算法 3.6.4 正則化 3.7 對

          基於邏輯迴歸/決策/隨機森林/多層感知分類器/xgboost/樸素貝葉斯分類的資訊多分類效能對比

          在上一篇(https://blog.csdn.net/baymax_007/article/details/82748544)中,利用邏輯迴歸實現資訊多分類。本文在之前基礎上,又引入決策樹、隨機森林、多層感知分類器、xgboost和樸素貝葉斯分類演算法,並對驗證集和測試集分類

          機器學習 決策 隨機森林演算法

          決策樹 概念 有關決策樹的理論參考: https://blog.csdn.net/gunhunti4524/article/details/81506012 不再贅述 要注意的是,sklearn預設使用的是 基尼係數 同是介紹一個數據集網站 http://biostat.mc.v

          鳶尾花決策/隨機森林例項——sklearn

          本次實踐主要通過 DecisionTreeClassifier  熵/gini係數決策樹模型、以及RandomForestClassifier隨機森林模型進行分類;訓練集:測試集=8:2結果:返回模型評價結果、匯出DecisionTreeClassifier  熵/gini係

          決策 & 隨機森林

          <機器學習筆記-05 >決策樹 關鍵詞:機器學習,決策樹 摘要:本文主要介紹了筆者對於決策樹原理的理解。 知識要點總結 掌握決策樹、分類器、積極/消極學習方法、整合學習的概

          決策隨機森林

          隨機 tro 過程 能夠 ots pull 葉子節點 合並 pan 決策樹   決策樹學習采用的是自頂向下的遞歸方法, 其基本思想是以信息熵為度量構造一棵熵值下降最快的樹,到葉子節點處的熵值為零,   此時每個葉節點中的實例都屬於同一類。 決策樹三種生成算法 ID3 -

          決策模型組合之隨機森林與GBDT(轉)

          get 9.png 生成 代碼 margin ast decision 損失函數 固定 版權聲明: 本文由LeftNotEasy發布於http://leftnoteasy.cnblogs.com, 本文可以被全部的轉載或者部分使用,但請註明出處,如果有問題,請

          機器學習之決策隨機森林模型

          會有 strong pytho red -s 很多 4.5 是我 機器 歡迎大家前往騰訊雲技術社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:汪毅雄 導語 本文用容易理解的語言和例子來解釋了決策樹三種常見的算法及其優劣、隨機森林的含義,相信能幫助初學者真正地理解相關知識

          隨機森林決策調參

          blog 每次 抽樣 單獨的數 回歸 函數 現在 推薦 訓練 隨機森林 隨機森林的“隨機”體現在兩個部分: 使用boostrap隨機抽樣(通俗點說就是有放回的隨機抽樣),假設原先數據集有N個樣本,每次仍然抽出來N個樣本,進行M次抽樣,組成M個數據集(也就是抽M次,

          bootstrap && bagging && 決策 && 隨機森林

          eat calculate 決策 dev The for instance sta mode 看了一篇介紹這幾個概念的文章,整理一點點筆記在這裏,原文鏈接: https://machinelearningmastery.com/bagging-and-random-fore

          [三]機器學習之決策隨機森林

          3.1 目標任務 1.學習決策樹和隨機森林的原理、特性 2.學習編寫構造決策樹的python程式碼 3.學習使用sklearn訓練決策樹和隨機森林,並使用工具進行決策樹視覺化 3.2 實驗資料 資料集:鳶尾花資料集,詳情見[機器學習之迴歸]的Logistic迴歸實驗 3.3

          R語言︱決策族——隨機森林演算法

          筆者寄語:有一篇《有監督學習選擇深度學習還是隨機森林或支援向量機?》(作者Bio:SebastianRaschka)中提到,在日常機器學習工作或學習中,當我們遇到有監督學習相關問題時,不妨考慮下先用簡單的假設空間(簡單模型集合),例如線性模型邏輯迴歸。若效果不好,也即並沒達到你的預期或評判效果基

          在OpenCV中實現決策隨機森林

          目錄 1.決策樹 2.隨機森林 1.決策樹 需要注意的點: Ptr<TrainData> data_set = TrainData::loadFromCSV("mushroom.data",//檔名

          機器學習——決策隨機森林演算法

          認識決策樹 決策樹思想的來源非常樸素,程式設計中的條件分支結構就是if-then結構,最早的決策樹就是利用這類結構分割資料的一種分類學習方法。 下面以一個問題引出決策樹的思想 這個問題用圖來表示就是這樣: 為什麼先把年齡放在第一個呢,下面就是一個概念:資訊熵 資訊熵

          ml課程:決策隨機森林、GBDT、XGBoost相關(含程式碼實現)

          以下是我的學習筆記,以及總結,如有錯誤之處請不吝賜教。 基礎概念: 熵Entropy:是衡量純度的一個標準,表示式可以寫為: 資訊增益Information Gain:熵變化的一個量,表示式可以寫為: 資訊增益率Gain Ratio:資訊增益的變化率,表示式可以寫為:

          【機器學習】決策隨機森林(轉)

          文章轉自: https://www.cnblogs.com/fionacai/p/5894142.html    首先,在瞭解樹模型之前,自然想到樹模型和線性模型有什麼區別呢?其中最重要的是,樹形模型是一個一個特徵進行處理,之前線性模型是所有特徵給予權重相加得到一個新的值。決

          【線上直播】決策隨機森林

          講師:段喜平   講師簡介: 研究生畢業於中山大學,曾就職於華為,百分點等公司,目前在魅族擔任NLP演算法工程師。   分享大綱: 1. 樹模型簡介 2. 常用決策樹演算法ID3, C4.5, CART,隨機森林等演算法介紹 3. 隨機森林程

          決策隨機森林整合演算法(Titanic例項)

          #coding:utf-8 import pandas #ipython notebook titanic = pandas.read_csv("titanic_train.csv") titanic.head(5) #print (titanic.describe()) t