**
【十大經典資料探勘演算法】系列
c4.5
k-means
svmapriori
empagerank
adaboost
knnnaïve bayes
cart
決策樹(decision tree)演算法基於特徵屬性進行分類,其主要的優點:模型具有可讀性,計算量小,分類速度快。決策樹演算法包括了由quinlan提出的id3與c4.5,breiman等提出的cart。其中,c4.5是基於id3的,對**屬性的目標函式做出了改進。
決策樹是一種通過對特徵屬性的分類對樣本進行分類的樹形結構,包括有向邊與三類節點:
上圖給出了(二叉)決策樹的示例。決策樹具有以下特點:
決策樹學習的本質是從訓練資料集中歸納出一組分類規則[2]。但隨著**屬性次序的不同,所得到的決策樹也會不同。如何得到一棵決策樹既對訓練資料有較好的擬合,又對未知資料有很好的**呢?
首先,我們要解決兩個問題:
特徵選擇指選擇最大化所定義目標函式的特徵。下面給出如下三種特徵(gender, car type, customer id)**的例子:
圖中有兩類類別(c0, c1),c0: 6
是對c0類別的計數。直觀上,應選擇car type特徵進行**,因為其類別的分布概率具有更大的傾斜程度,類別不確定程度更小。
為了衡量類別分布概率的傾斜程度,定義決策樹節點
t t
的不純度(impurity),其滿足:不純度越小,則類別的分布概率越傾斜;下面給出不純度的的三種度量: e
ntro
py(t
)=−∑
kp(c
k|t)
logp(c
k|t)
(1) (1)entropy(t)=−∑kp(ck|t)logp(ck|t)
gini
(t)=
1−∑k
[p(c
k|t)
]2(2) (2)gini(t)=1−∑k[p(ck|t)]2
clas
sifi
cati
oner
ror(
t)=1
−maxk[
p(ck
|t)]
(3) (3)classification error(t)=1−maxk[p(ck|t)]
其中,p(
ck|t
) p(ck|t)
表示對於決策樹節點
t t類別c
k ck
的概率。這三種不純度的度量是等價的,在等概率分布是達到最大值。
為了判斷**前後節點不純度的變化情況,目標函式定義為資訊增益(information gain): δ
=i(p
aren
t)−∑
i=1n
n(ai
)ni(
ai)(4)
(4)δ=i(parent)−∑i=1nn(ai)ni(ai) i
(⋅) i(⋅)
對應於決策樹節點的不純度,pa
rent
parent
表示**前的父節點,
n n
表示父節點所包含的樣本記錄數,ai
ai表示父節點**後的某子節點,n(
ai) n(ai)
為其計數,
n n
為**後的子節點數。
特別地,id3演算法選取熵值作為不純度i(
⋅)i(⋅)
的度量,則δ=
h(c)
−∑i=
1nn(
ai)n
h(c|
ai)=
h(c)
−∑in
p(ai
)h(c
|ai)
=h(c
)−h(
c|a)
δ=h(c)−∑i=1nn(ai)nh(c|ai)=h(c)−∑inp(ai)h(c|ai)=h(c)−h(c|a) c
c指父節點對應所有樣本記錄的類別;
a a
表示選擇的特徵屬性,即ai
ai的集合。那麼,決策樹學習中的資訊增益
δ δ
等價於訓練資料集中類與特徵的互資訊,表示由於得知特徵
a a
的資訊訓練資料集
c c
不確定性減少的程度。
在特徵**後,有些子節點的記錄數可能偏少,以至於影響分類結果。為了解決這個問題,cart演算法提出了只進行特徵的二元**,即決策樹是一棵二叉樹;c4.5演算法改進**目標函式,用資訊增益比(information gain ratio)來選擇特徵: g
ainr
atio
=δen
trop
y(pa
rent
)(5)
(5)gain ratio=δentropy(parent)
因而,特徵選擇的過程等同於計算每個特徵的資訊增益,選擇最大資訊增益的特徵進行**。此即回答前面所提出的第乙個問題(選擇較優特徵)。id3演算法設定一閾值,當最大資訊增益小於閾值時,認為沒有找到有較優分類能力的特徵,沒有往下繼續**的必要。根據最大表決原則,將最多計數的類別作為此葉子節點。即回答前面所提出的第二個問題(停止**條件)。
id3演算法的核心是根據資訊增益最大的準則,遞迴地構造決策樹;演算法流程如下:
如果節點滿足停止**條件(所有記錄屬同一類別 or 最大資訊增益小於閾值),將其置為葉子節點;
選擇資訊增益最大的特徵進行**;
重複步驟1-2,直至分類完成。
c4.5演算法流程與id3相類似,只不過將資訊增益改為資訊增益比。
生成的決策樹對訓練資料會有很好的分類效果,卻可能對未知資料的**不準確,即決策樹模型發生過擬合(overfitting)——訓練誤差(training error)很小、泛化誤差(generalization error,亦可看作為test error)較大。下圖給出訓練誤差、測試誤差(test error)隨決策樹節點數的變化情況:
可以觀察到,當節點數較小時,訓練誤差與測試誤差均較大,即發生了欠擬合(underfitting)。當節點數較大時,訓練誤差較小,測試誤差卻很大,即發生了過擬合。只有當節點數適中是,訓練誤差居中,測試誤差較小;對訓練資料有較好的擬合,同時對未知資料有很好的分類準確率。
發生過擬合的根本原因是分類模型過於複雜,可能的原因如下:
為了解決過擬合,c4.5通過剪枝以減少模型的複雜度。[2]中提出一種簡單剪枝策略,通過極小化決策樹的整體損失函式(loss function)或代價函式(cost function)來實現,決策樹
t t
的損失函式為:lα
(t)=
c(t)
+α|t
| lα(t)=c(t)+α|t|
其中,c(
t)c(t)
表示決策樹的訓練誤差,
α α
為調節引數,|t
| |t|
為模型的複雜度。當模型越複雜時,訓練的誤差就越小。上述定義的損失正好做了兩者之間的權衡。
如果剪枝後損失函式減少了,即說明這是有效剪枝。具體剪枝演算法可以由動態規劃等來實現。
[1] pang-ning tan, michael steinbach, vipin kumar, introduction to data mining.
[2] 李航,《統計學習方法》.
[3] naren ramakrishnan, the top ten algorithms in data mining.
treant
出處:
資料探勘十大經典演算法
最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 01.c4.5 是機器學習演算法中的一種分類決策樹演算法,其核心演算法是 id3演算法 02.k means演算法 是一種聚類演算法。03.svm 一種 監督式學習 的方法,廣泛運用於統計分...
資料探勘十大經典演算法
1 c4.5 2 k means 3 svm 4 apriori 5 em 6 pagerank 7 adaboost 8 knn 9 bayes 10 cart 1 c4.5 計算增益率 step1 計算資料集d的熵 單位為位元 info d step2 計算每個屬性的熵info x d step...
十大經典資料探勘演算法
c4.5演算法 機器學習演算法中的乙個分類決策樹演算法 cart 分類與回歸樹 c4.5與cart都是決策樹演算法 id3用資訊增益,c4.5用資訊增益率,cart用gini係數 knn 樸素貝葉斯 bayes 在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型 decision tree ...