決策樹和隨機森林

2021-08-24 23:01:49 字數 1803 閱讀 8681

決策樹:

建立決策樹的關鍵,是在當前狀態下選擇那個屬性作為分類依據。根據不同的目標函式,建立決策樹主要有三個演算法

id3(iterative dichotomiser)

c4.5

cart(classification and regression tree)

資訊增益:當熵和條件熵中的概率由資料統計得到時,所對應的熵和條件熵分別稱為經驗熵和經驗條件熵

資訊增益表示得知特徵a 的資訊而使類x的資訊的不確定性減少的程度

定義:特徵a對訓練資料集d的資訊增益 g(d,a),定義為集合d的經驗熵h(d)與特徵a給定條件下d的經驗條件熵h(d|a)之差,即:

g(d,a)=h(d)-h(d|a), 顯然,這即為訓練資料集d和特徵a的互資訊

樹模型特徵選擇除了資訊增益、資訊增益率、基尼係數(分類)     mse(回歸)

先算根節點,算出每個特徵的

例如:乙個資料有4個屬性( f1/f2/f3/f4)

以 f1為例(f1樣本共有14條資料)

f1:        h(y|f1) = ?

gain(y,f1) = h(y)-h(y|f1)

f1 = sunny(5)

y         yes        no

n            2          3

p           0.4       0.6

5/14 * h(y|f1=sunny)=?

f1 = overcast(4):

4/14*h(y|f1=overcast)=?

f1 = rainy(5)

5/14*h(y|f1=rainy)=?

f2:       h(y|f2)=?

gain(y,f2) = h(y)-h(y|f2)

f3:       h(y|f3) = ?

gain(y,f3) = h(y)-h(y|f3)

選擇資訊增益最大的最為分類結點屬性 資訊增益(id3)

資訊增息率

y|f1        sunny      overcast    rainy

n              5                  4               4

p              5/14              4/14        4/14

f1資訊熵 h(f1) =  5/14 * log5 +....

資訊增益率:gain(y|f1)/h(f1)   (c4.5)

gini係數:(cart)

x    1     2      ...........    k

p     p1   p2    ........      pk

gini(p) = p1(1-p1) + p2(1-p2) +........pk(1-pk)

gini(y)     根的基尼係數

gini(y) - gini(y|f1)   f1基尼係數

gini(y) - gini(y|f2)

gini(y) - gini(y|f3)

gini(y) - gini(y|f4)   ...

選最大的作為**結點特徵

防止過擬合

set:  (x1,y1),(x2,y2).......(xn,yn)

buffer(選擇有放回的抽樣 緩衝區):隨機選擇樣本(x5,y5),(x3,y3),(x10,y10)....

重複n次,得到決策樹dt1

再次重複這個過程得到dt2,dt3,dt4......得到隨機森林(分類結果:決策樹少數服從多數)

isolation forest 計算異常點資料

決策樹和隨機森林

c4.5 cart 2,工具 能夠將dot檔案轉換為pdf png 3,執行命令 缺點 改進 建立10顆決策樹,樣本,特徵大多不一樣 隨機又放回的抽樣 bootstrap boolean,optional default true 是否在構建樹時使用放回抽樣。隨機森林的優點 import panda...

svm 決策樹和隨機森林

決策樹隨機森林 scikit learn 和 tensorflow 裡面的svm講的可以 svm就是從多條可以分割類別的線之間挑一條最好的 離分類兩邊各個點的距離都足夠大 分割線稱為超平面 嚴格的讓所有例項都不在街上,並且位於正確的一邊,需要是線性分類的,對異常值太過敏感 可以允許有部分異常值在街道...

PCA 決策樹 隨機森林

pca是無監督學習 沒有標籤只有特徵也可以做 基於降維後使方差最大使資料分的更大,目標是提取最有價值的資訊。使原始密集的點擴散開好做分類,降低維度後意義需要專家解釋 降維後可以對資料進行保密 可以降低資料冗餘性。協方差表示線性離散度。不希望線性相關資料,用協方差描述。決策樹既可以做分類也可以做回歸分...