決策樹:
建立決策樹的關鍵,是在當前狀態下選擇那個屬性作為分類依據。根據不同的目標函式,建立決策樹主要有三個演算法
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是無監督學習 沒有標籤只有特徵也可以做 基於降維後使方差最大使資料分的更大,目標是提取最有價值的資訊。使原始密集的點擴散開好做分類,降低維度後意義需要專家解釋 降維後可以對資料進行保密 可以降低資料冗餘性。協方差表示線性離散度。不希望線性相關資料,用協方差描述。決策樹既可以做分類也可以做回歸分...