機器學習基礎DAY7

2021-10-11 19:14:30 字數 2259 閱讀 2068

第七章 決策樹與隨機森林

決策樹思想的**非常樸素,程式設計中的條件分支結構就是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返回值 如果函式返回的型別是元組,小括號可以省略 當看到返回型別沒有小括號時,一定要知道返回的型別是元組 如果函式返回的型別是元組,同時希望單獨的處理元組中的元素,可以使用多個變數,一次接收函式的返回結果,變數與變數之間用逗號分隔...