1. 程式人生 > >決策樹系列之隨機森林

決策樹系列之隨機森林

1、基本概念:Bagging、Booststraping、OOB資料

Booststraping:有放回樣本;Bagging: 全稱Boostrapping aggregation步驟:1、從樣本集中重取樣,選出n個樣本;在所有屬性上,對這n個樣本建立分類器;(分類器可以是決策樹(ID3,C4.5,CART)、SVM或Logistic迴歸等)2、重複步驟1,m次,得到m個分類器;3、將資料放在這m個分類器上,最後根據這m個分類器的投票結果,決定將資料屬於哪一類;OOB資料:每次Boostraping,約有一定比率的樣本不會出現在模型訓練部分,可以用於取代測試集,用於誤差估計。

2、什麼是隨機森林?

步驟如下:1、從樣本集合中用Boostraping取樣選出n個樣本;2、從所有屬性中隨機選擇k個屬性,選擇最佳分割屬性作為節點,建立CART決策樹;(可以是其他分類器)3、重複步驟1和2,建立m個基分類器;4、由m個CART模型形成隨機森林,通過投票表決結果,決定資料屬於哪一類;備註:使用其他型別的分類器組成的叫隨機森林

3、投票機制

3.1、簡單的投票機制3.1.1 一票否決;(一票通過)3.1.2 多數通過;3.1.3 閾值表決;3.2、貝葉斯投票機制;舉例子:問題:如何依據使用者投票,對電影進行排序?方案:通過該電影的使用者資料進行綜合評分,加上這系列電影的綜合評分資料,進行加權求平均。

4、樣本不均衡的方法:

假設樣本A類比B類多,且嚴重不平衡;方法:4.1、A類欠取樣 UnderSampling:4.1.1 隨機欠取樣;4.1.2 A類分成若干子類,分別與B類進入ML模型;4.1.3 基於聚類的A類分割;4.2、B類過取樣 Oversampling避免欠取樣早晨的資訊丟失4.3、B類資料合成 Synthetic Data Generation隨機插值得到新樣本SMOTE(SYnthetic Minority Over-Sampling Technique)4.4、代價敏感學習 Cost Sensitive Learning 降低A類的權值,提高B類的權值 --修改評價函式

5、應用:

5.1、使用隨機森林計算樣本間相似度

原理:若兩個樣本同時出現在相同葉結點的次數越多,則兩者越相似;演算法 記樣本個數為N,初始化N*N的零矩陣S,S[i,j]表示樣本i和樣本j的相似度。 對於m顆決策樹行程的隨機森林,遍歷所有決策樹的所有葉子節點; 記該葉節點包含的樣本為sample[1,2,...,k],則S[i,j]累加1,樣本i,j屬於sample[1,2,...,k] 遍歷結束,則S為樣本間相似度矩陣

5.2、使用隨機森林計算樣本重要度

方案1:計算正例經過的節點,使用經過結點的數目、經過結點的Gini結點係數和等指標。方案2:隨機替換一列資料,重新建立決策樹,計算新模型的正確率變化,從而考慮這一列特徵的重要性。

6、Isolation Forest

隨機選擇特徵、隨機選擇分割點,生成一定深度的決策樹iTree,若干顆iTree組成iForest方案1:計算iTree中樣本x從根到葉子的長度f(x)方案2:計算iForest中f(x)的總和F(x)異常檢測:若樣本x為異常值,它應在大多數iTree中很快從根到達葉子,即F(x)比較小。

7、思考問題

總結決策樹(隨機森林)的程式碼清晰、邏輯簡單,在勝任分類問題的同時,往往可以作為對資料分佈探索的首要嘗試演算法。隨機森林的整合思想可用在其他分類器的設計中。如果通過隨機森林做樣本的異常值檢測?—通過統計樣本間位於相同決策樹的葉節點的個數,形成樣本相似度矩陣如果正負樣本數量差別很大(正樣本數量大於負樣本數量),將如何處理?—在得到新的決策樹後,對樣本的權值進行合理的調整—分類正確的降低權值,分類錯誤的增加權值,比如說是Adaboost.相關問題:問題一:思考碎金森林為何可以提高正確率,而且降低擬合程度?問題二:決策樹後剪枝可以怎麼樣操作?問題三:決策樹是幾叉樹與這顆決策樹的分類數目有什麼關係?問題四:如果特徵是連續的,如何得到分割點?問題五:請解釋Gini係數為何可以用於分類標準?

歡迎大家對本博文進行討論,郵箱[email protected]

相關推薦

決策系列隨機森林

1、基本概念:Bagging、Booststraping、OOB資料Booststraping:有放回樣本;Bagging: 全稱Boostrapping aggregation步驟:1、從樣本集中重取樣,選出n個樣本;在所有屬性上,對這n個樣本建立分類器;(分類器可以是決策

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

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

通俗易懂--決策演算法、隨機森林演算法講解(演算法+案例)

1.決策樹 1.1從LR到決策樹 相信大家都做過用LR來進行分類,總結一下LR模型的優缺點: 優點 適合需要得到一個分類概率的場景。 實現效率較高。 很好處理線性特徵。 缺點 當特徵空間很大時,邏輯迴歸的效能不是很好。 不能很好地處理大量多類特徵。

通過5折交叉驗證,實現邏輯迴歸,決策,SVM,隨機森林,GBDT,Xgboost,lightGBM的評分

通過5折交叉驗證,實現邏輯迴歸,決策樹,SVM,隨機森林,GBDT,Xgboost,lightGBM的評分 匯入的包 import pandas as pd import warnings from sklearn.preprocessing import scale

大白話5分鐘帶你走進人工智慧-第二十四節決策系列分裂流程和Gini係數評估(3)

 第二十四節決策樹系列之分裂流程和Gini係數評估(3) 上一節中我們講解了決策樹的數學表達形式,本節的話我們講解決策樹的分裂流程以及分裂條件的評估。我們基於決策樹的遞迴表示式上:          &nb

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

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

決策隨機森林

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

雪飲者 決策系列(二)決策應用

ssi 字符串長度 mes pla 選擇 font com vector nac   本篇以信息增益最大作為最優化策略來詳細介紹決策樹的決策流程。   首先給定數據集,見下圖    註:本數據來源於網絡 本篇將以這些數據作為訓練數據(雖然少,但足以介紹清楚原理!),下圖是決

Python實現決策應用判斷隱形眼鏡的型別

程式碼模組一、DecisionTreePlot # -*- coding:utf-8 -*- __author__ = 'yangxin_ryan' import matplotlib.pyplot as plt """ 定義文字框 和 箭頭格式 【 sawtooth 波浪方框, rou

決策系列

決策樹系列(一)——基礎知識回顧與總結 https://www.cnblogs.com/yonghao/p/5061873.html 決策樹系列(二)——剪枝 https://www.cnblogs.com/yonghao/p/5064996.html 決策樹系列(三)——ID3 https://w

機器學習隨機森林——CART模型的PYTHON實現

機器學習之隨機森林——CART模型PYTHON實現 把機器學習的過程記錄一下。隨機森林即利用決策樹群對樣本進行訓練並預測的一種分類器,其與單棵決策樹相比可以平衡誤差。 其中CART模型: 二叉決策樹 ,節點特徵只取值“是”與“否”; 輸入特徵的切分方式 ,啟

決策系列(五)——CART

CART,又名分類迴歸樹,是在ID3的基礎上進行優化的決策樹,學習CART記住以下幾個關鍵點: (1)CART既能是分類樹,又能是分類樹; (2)當CART是分類樹時,採用GINI值作為節點分裂的依據;當CART是迴歸樹時,採用樣本的最小方差作為節點分裂的依據; (3)

scikit-learn /sklearn : 整合學習 隨機森林分類器(Forests of Randomized Tree)官方檔案翻譯

整合學習 之 隨機森林分類器 整合學習的定義和分類。 隨機森林法的定義和分類。 隨機森林sklearn.ensemble.RandomForestClassifier()引數分類和含義。 附註:Bias和Variance的含義和關係。 一、整合學習 (Ensemble

決策系列(四)——C4.5

預備知識:決策樹、ID3       如上一篇文章所述,ID3方法主要有幾個缺點:一是採用資訊增益進行資料分裂,準確性不如資訊增益率;二是不能對連續資料進行處理,只能通過連續資料離散化進行處理;三是沒有采用剪枝的策略,決策樹的結構可能會過於複雜,可能會出現過擬合的情況。

機器學習隨機森林RandomForestRegressor

機器學習之隨機森林RandomForestRegressor # -*- coding: utf-8 -*- """ Created on Tue Dec 4 18:29:45 2018 @author: muli """ import matplotlib.py

機器學習隨機森林RandomForestClassifier

機器學習之隨機森林RandomForestClassifier # -*- coding: utf-8 -*- """ Created on Mon Dec 3 22:26:54 2018 @author: muli """ import matplotlib.p

決策系列(三)——ID3

決策樹系列(三)——ID3 預備知識:決策樹  初識ID3       回顧決策樹的基本知識,其構建過程主要有下述三個重要的問題:      (1)資料是怎麼分裂的      (2