第七章 決策樹與隨機森林
決策樹思想的**非常樸素,程式設計中的條件分支結構就是if-then結構,最早的決策樹就是利用這類結構分割資料的一種分類學習方法
1.資訊增益:
特徵a對訓練資料集d的資訊增益g(d,a),定義為集合d的資訊熵h(d)與特徵a給定條件下d的資訊條件熵h(d|a)之差,即公式為:
注:資訊增益表示得知特徵x的資訊而使得類y的資訊的不確定性減少的程度
資訊熵的計算:
條件熵的計算:
2.常見決策樹使用的演算法:
####id3
資訊增益 最大的準則
####c4.5
資訊增益比 最大的準則
####cart
回歸樹: 平方誤差 最小
分類樹: 基尼係數 最小的準則 在sklearn中可以選擇劃分的預設原則
######sklearn決策樹api:
class sklearn.tree.decisiontreeclassifier(criterion=』gini』, max_depth=none,random_state=none)
決策樹分類器
criterion:預設是』gini』係數,也可以選擇資訊增益的熵』entropy』
max_depth:樹的深度大小
random_state:隨機數種子
method:
decision_path:返回決策樹的路徑
3.決策樹的結構、本地儲存
(1、sklearn.tree.export_graphviz() 該函式能夠匯出dot格式
tree.export_graphviz(estimator,out_file='tree.dot』,feature_names=[『』,』』])
(2、工具:(能夠將dot檔案轉換為pdf、png)
安裝graphviz
ubuntu:sudo apt-get install graphviz mac:brew install graphviz
(3、執行命令
然後我們執行這個命令
$ dot -tpng tree.dot -o tree.png
4.決策樹的優缺點以及改進
優點:簡單的理解和解釋,樹木視覺化。
需要很少的資料準備,其他技術通常需要資料歸一化,
缺點:決策樹學習者可以建立不能很好地推廣資料的過於複雜的樹, 這被稱為過擬合。
決策樹可能不穩定,因為資料的小變化可能會導致完全不同的樹被生成
改進:減枝cart演算法
隨機森林
定義:在機器學習中,隨機森林是乙個包含多個決策樹的分類器,並且其輸出的類別是由個別樹輸出的類別的眾數而定。
學習演算法
根據下列演算法而建造每棵樹:
用n來表示訓練用例(樣本)的個數,m表示特徵數目。
輸入特徵數目m,用於確定決策樹上乙個節點的決策結果;其中m應遠小於m。
從n個訓練用例(樣本)中以有放回抽樣的方式,取樣n次,形成乙個訓練集(即bootstrap取樣),並用未抽到的用例(樣本)作**,評估其誤差。
######隨機森林api:
####class sklearn.ensemble.randomforestclassifier(n_estimators=10, criterion=』gini』,
max_depth=none, bootstrap=true, random_state=none)
隨機森林分類器
n_estimators:integer,optional(default = 10) 森林裡的樹木數量
criteria:string,可選(default =「gini」)分割特徵的測量方法
max_depth:integer或none,可選(預設=無)樹的最大深度
bootstrap:boolean,optional(default = true)是否在構建樹時使用放回抽樣
優點:在當前所有演算法中,具有極好的準確率
能夠有效地執行在大資料集上
能夠處理具有高維特徵的輸入樣本,而且不需要降維
能夠評估各個特徵在分類問題上的重要性
對於預設值問題也能夠獲得很好得結果
前端學習Day7
一.padding的用法 1 padding是長在內容和盒子之間的,在盒子內部。2 padding是為了調整 子元素 在 父元素裡面位置關係。3 padding的特點 padding值會把盒子撐大。4 如果想讓盒子保持原有大小,需要在寬高的基礎上減掉padding值。5 給單一方向設定padding...
遊戲程式設計基礎day7
pygame.color color 類主要用於色彩表達,使用rgb或者rgba的色彩模式 color可以使用色彩的名字,rgba,html色彩格式 color red color 190,190,255,255 一千六百多萬種顏色 color bebebeff 十六進製制的值white 255,2...
python學習總結day7
01變數的引用 02可變和不可變型別 03區域性變數和全域性變數 01返回值 如果函式返回的型別是元組,小括號可以省略 當看到返回型別沒有小括號時,一定要知道返回的型別是元組 如果函式返回的型別是元組,同時希望單獨的處理元組中的元素,可以使用多個變數,一次接收函式的返回結果,變數與變數之間用逗號分隔...