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

決策樹和隨機森林

三種決策樹的剪枝過程演算法相同,區別僅是對於當前樹的評價標準不同:

資訊增益(ID3),資訊增益率(C4.5),基尼指數(CART)

一個屬性的資訊增益越大,表明屬性對樣本的熵減少的能力越強。這個屬性使得資料由不確定性變為確定性的能力越強。

決策樹的評價:

對於決策樹的某葉節點,假定該葉節點包含有樣本數目為n,其中第k類的樣本數目節點為Nk,k=1,2,3,4...,k


評價函式越小越好。

決策樹的剪枝:

演算法過程:

隨機森林在bagging基礎上做了修改

從樣本中用Bootstrap取樣選出n個樣本

從所有屬性中隨機選擇k個屬性,選擇最佳分割屬性作為節點建立CART決策樹

重複以上步驟m次,即建立了m顆CART決策樹

這m顆CART形成隨機森林,通過投票表決,決定資料屬於哪一類。

影響隨機森林分類效能的主要因素:

森林中單顆樹的分類強度(Strength):每顆樹的分類強度越大,則隨機森林的分類效能越好。

森林中樹之間的相關度(Correlation):樹之間的相關度越大,則隨機森林的分類能力越弱。

OOB估計:以樣本為單位,

對每個樣本,計算它作為OOB樣本的樹對它的分類情況(約1/3的樹);然後以簡單多數投票作為該樣本的分類結果。

最後用誤分個數佔樣本總數的比率作為隨機森林的OOB誤分率。

構建決策樹的時候,可以讓樹進行完全生長,也可以通過引數控制樹的深度或葉子節點的數量,通常完全生長的樹會帶來過擬合的問題。過擬合一般由資料中的噪聲和離群點導致,一種解決過擬合的方法是進行剪枝,去除樹中的一些雜亂的枝葉。

在實際應用中,一般可用隨機森林來代替,隨機森林在決策樹的基礎上,會有更好的表現,尤其是防止過擬合。

在組合演算法中,一類是Bagging,一類是Boosting,隨機 森林便是Bagging中的代表。

隨機就是讓每棵樹不一樣,如果都一樣,組合後的效果不會有任何提升。假設每棵樹不一樣,單獨預測錯誤率大概都是40%,但三顆樹組合後的錯誤率就變成了35.2%(至少兩一半以上同時犯錯結果才會犯錯)

從資料抽樣開始,每棵樹都隨機地在原有資料的基礎上進行有放回的抽樣。假定訓練資料有1萬條,隨機抽取8千條,因為是有放回的抽樣,可能原資料中有500條被抽了兩次,即最後的8000條中有500條是重複的資料。每棵樹都進行獨立的隨機抽樣,這樣保證了每棵樹學習到的資料側重點都不一樣,保證了樹之間的獨立性。

抽取了資料,就可以開始構建決策分支了,在每次決策分支時,也需要加入隨機性。假設資料有20個特徵,每次只隨機取其中的幾個來判斷決策條件。假設取4個屬性,從這4個特徵中來決定當前的決策條件,即忽略其他它的特徵。取特徵的個數,通常不能太小,太小了使得單棵樹的精度太低,太大了樹之間的相關性會加強,獨立性會減弱。通常取總特徵數的平方根,或log2(特徵數)+1

在節點進行分裂的時候,除了先隨機取固定個特徵,然後選擇最好的分裂屬性這種方式,還有一種方式,就是在最好的幾個(依然可以指定sqrt與log2)分裂屬性中隨機選擇一個來進行分裂。scikit-learn中實現了兩種隨機森林演算法,一種是RandomForest,另外一種是ExtraTrees, ExtraTrees就是用這種方式。

總結起來:

隨機有放回的抽取資料,數量可以和原資料相同,也可以略小。

隨機選取N個特徵,選擇最好的屬性進行分裂

在N個最好的分裂特徵中,隨機選擇一個進行分裂。

隨機性是為了保證各個演算法模型之間的相互獨立,從而提升組合後的精度。

相關推薦

在OpenCV中實現決策隨機森林

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

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

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

決策隨機森林演算法

決策樹和隨機森林都是常用的分類演算法,它們的判斷邏輯和人的思維方式非常類似,人們常常在遇到多個條件組合問題的時候,也通常可以畫出一顆決策樹來幫助決策判斷。本文簡要介紹了決策樹和隨機森林的演算法以及實現,並使用隨機森林演算法和決策樹演算法來檢測FTP暴力破解和PO

R語言之決策隨機森林

總結決策樹之前先總結一下特徵的生成和選擇,因為決策樹就是一種內嵌型的特徵選擇過程,它的特徵選擇和演算法是融合在一起的,不需要額外的特徵選擇。 一、特徵生成: 特徵生成是指在收集資料之時原始資料就具有的資料特徵,這些資料特徵由收集的資料決定(其實也就是在產品定型時設定的需要收

Python 資料科學手冊 5.8 決策隨機森林

5.8 決策樹和隨機森林 之前,我們深入研究了簡單的生成分類器(見樸素貝葉斯分類)和強大的辨別分類器(參見支援向量機)。 這裡我們來看看另一個強大的演算法的動機 - 一種稱為隨機森林的非引數演算法。 隨機森林是組合方法的一個例子,這意味著它依賴於更簡單估計

決策隨機森林

三種決策樹的剪枝過程演算法相同,區別僅是對於當前樹的評價標準不同: 資訊增益(ID3),資訊增益率(C4.5),基尼指數(CART) 一個屬性的資訊增益越大,表明屬性對樣本的熵減少的能力越強。這個屬性使得資料由不確定性變為確定性的能力越強。 決策樹的評價: 對於決策樹的某

python在Scikit-learn中用決策隨機森林預測NBA獲勝者

在本文中,我們將以Scikit學習的決策樹和隨機森林預測NBA獲勝者。美國國家籃球協會(NBA)是北美主要的男子職業籃球聯賽,被廣泛認為是首屈一指的男子職業籃球聯賽在世界上。它有30個團隊(美國29個,

決策隨機森林用 python treeinterpreter實現

示例說明 這個部落格深入到決策樹和隨機森林的基礎上,以便更好地解釋它們。 在過去的幾年中,隨機森林是一種新興的機器學習技術。它是一種基於非線性樹的模型,可以提供精確的結果。然而,大多是黑箱,通常很難解釋和充分理解。在本文中,我們將深入瞭解隨機森林的基本知

決策隨機森林

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

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

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

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

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

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

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

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

決策隨機森林

一、簡單介紹 1、Bootstraping 一種有放回抽樣的選擇訓練樣本資料的方法。 2、Bagging策略 二、隨機森林 一個樣本集合中有n個樣本,用Bootstrap方法對它取樣m次就會得到m個有n個樣本的樣本集合,就等於得到了m個訓練資料集。對於每一個訓

《web安全之機器學習入門》第6章決策隨機森林演算法

決策樹識別pop3埠掃描(原書中識別暴力破解,實際上pop3協議的並沒有guess_passwd型別的資料,所以改為識別port_sweep.):待分析資料集:KDD-99資料集,連結:http://kdd.ics.uci.edu/databases/kddcup99/kdd

[面試筆記] 決策隨機森林、GBDT、XGBoost

摘要 本文主要分享了 決策樹、隨機森林、GBDT、XGBoost 四種模型的原理 決策樹 對於決策樹,李航老師在《統計學習方法》裡有詳細的解釋 分為ID3, C4.5, CART三個基本的樹生成演算法 ID3 是一個多叉樹,使用了熵作為

機器學習與人工智障(5):決策隨機森林

一、從LR到決策樹   1.總體流程與核心問題     (1)決策樹是基於樹的結構進行決策:       每個“內部節點”對應於某個屬性上的“測試”       每個分支對應於該測試的一種可能結果(即該屬性上的每個取值)       每個葉節點對應於一個預測結果     (2)學習過程:通過對訓練