熵(entropy):在資訊理論與概率統計中,熵(entropy)是表示隨機變數不確定性的度量。設x是乙個取有限個值的離散隨機變數,其概率分布為
則隨機變數x的熵定義為
熵只依賴於x的分布,而與x的取值無關,所以也可將x的熵記作h§,即
熵取值最大,隨機變數不確定性最大。
條件熵:
設有隨機變數(x,y),其聯合概率分布為
條件熵h(y|x)表示在已知隨機變數x的條件下隨機變數y的不確定性。隨機變數x給定的條件下隨機變數y的條件熵(conditional entropy)h(y|x),定義為x給定條件下y的條件概率分布的熵對x的數學期望
資訊增益:
特徵a對訓練資料集d的資訊增益g(d,a),定義為集合d的經驗熵h(d)與特徵a給定條件下d的經驗條件熵h(d|a)之差,即
一般地,熵h(y)與條件熵h(y|x)之差稱為互資訊(mutual information)。決策樹學習中的資訊增益等價於訓練資料集中類與特徵的互資訊。
聯合熵:
兩個變數x和y的聯合資訊熵定義為:
基尼不純度:將來自集合的某種結果隨機應用於某一資料項的預期誤差率。
(1)基尼不純度可以作為 衡量系統混亂程度的 標準;
(2)基尼不純度越小,純度越高,集合的有序程度越高,分類的效果越好;
(3)基尼不純度為 0 時,表示集合類別一致;
(4)在決策樹中,比較基尼不純度的大小可以選擇更好的決策條件(子節點)。
假設x與y分別為輸入和輸出變數,並且y是連續變數,給定訓練資料集熵和基尼不純度之間的主要區別在於,熵達到峰值的過程要相對慢一些。
因此,熵對於混亂集合的判罰要更重一些。
乙個回歸樹對應著輸入空間(即特徵空間)的乙個劃分以及在劃分的單元上的輸出值。假設已將輸入空間劃分為m個單元,並且在每個單元上有乙個固定的輸出值,於是回歸樹模型可表示為
當輸入空間的劃分確定時,可以用平方誤差
來表示回歸樹對於訓練資料的**誤差,用平方誤差最小的準則求解每個單元上的最優輸出值。
在進行空間劃分時採用啟發式方法,定義兩個區域:
然後尋找切分變數j和最優切分點s,求解:
對固定輸入變數j可以找到最優切分點s。
遍歷所有輸入變數,找到最優的切分變數j,構成乙個對(j,s)。依此將輸入空間劃分為兩個區域。接著,對每個區域重複上述劃分過程,直到滿足停止條件為止。這樣就生成一棵回歸樹。這樣的回歸樹通常稱為最小二乘回歸樹(least squares regression tree)
cart剪枝演算法從「完全生長」的決策樹的底端剪去一些子樹,使決策樹變小(模型變簡單),從而能夠對未知資料有更準確的**。
分類樹模型:採用通用的分類模型評估指標
回歸樹模型:採用通用的回歸模型評估指標
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from collections import counter
import math
from math import log
import pprint
# data
defcreate_data()
: iris = load_iris(
) df = pd.dataframe(iris.data, columns=iris.feature_names)
df['label'
]= iris.target
df.columns =
['sepal length'
,'sepal width'
,'petal length'
,'petal width'
,'label'
] data = np.array(df.iloc[
:100,[
0,1,
-1]]
)# print(data)
return data[:,
:2], data[:,
-1]x, y = create_data(
)x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=
0.3)
from sklearn.tree import decisiontreeclassifier
from sklearn.tree import export_graphviz
import graphviz
clf = decisiontreeclassifier(
)clf.fit(x_train, y_train,
)clf.score(x_test, y_test)
tree_pic = export_graphviz(clf, out_file=
"mytree.pdf"
)with
open
('mytree.pdf'
)as f:
dot_graph = f.read(
)graphviz.source(dot_graph)
決策樹演算法梳理
熵 又稱為自資訊,度量隨機變數的不確定性。純度 聯合熵 聯合熵是描述一對隨機變數平均所需要的資訊量 條件熵 h y x 表示在已知隨機變數 x 的條件下,隨機變數 y 的不確定性 資訊增益 以某特徵劃分資料集前後的熵的差值 基尼不純度 指將來自集合中的某種結果隨機應用在集合中,某一資料項的預期誤差率...
決策樹演算法梳理
1.資訊理論基礎 資訊熵 資訊熵是度量樣本的集合純度最常用的一種指標。在資訊理論和概率統計中,熵是表示隨機變數不確定性的度量。聯合熵 兩個隨機變數x,y的聯合分布,可以形成聯合熵joint entropy,用h x,y 表示。條件熵 設有隨機變數 x,y 其聯合概率分布為 條件熵h y x 表示在已...
決策樹演算法梳理
決策樹通常包括三個步驟 特徵選擇,決策樹生成和決策樹剪枝 決策樹的生成過程就是 使用滿足劃分準則的特徵不斷的將資料集劃分為純度更高,不確定性更小的子集的過程。id3 採用資訊增益劃分資料。計算使用所有特徵劃分資料集,得到多個特徵劃分資料集的資訊增益,從這些資訊增益中選擇最大的,因而當前結點的劃分特徵...