【十大經典資料探勘演算法】系列
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\)的不純度(impurity),其滿足:不純度越小,則類別的分布概率越傾斜;下面給出不純度的的三種度量:
\begin
entropy(t)=-\sum\limits_p(c_k|t)\log p(c_k|t)
\end
\begin
gini(t)=1-\sum\limits_[p(c_k|t)]^2
\end
\begin
classification error(t)=1-\mathop\limits_ [p(c_k|t)]
\end
其中,\(p(c_k|t)\)表示對於決策樹節點\(t\)類別\(c_k\)的概率。這三種不純度的度量是等價的,在等概率分布是達到最大值。
為了判斷**前後節點不純度的變化情況,目標函式定義為資訊增益(information gain):
\begin
\delta = i(parent) - \sum\limits_^i(a_i)
\end
\(i(\cdot)\)對應於決策樹節點的不純度,\(parent\)表示**前的父節點,\(n\)表示父節點所包含的樣本記錄數,\(a_i\)表示父節點**後的某子節點,\(n(a_i)\)為其計數,\(n\)為**後的子節點數。
特別地,id3演算法選取熵值作為不純度\(i(\cdot)\)的度量,則
\[ \begin \delta & = h(c)-\sum\limits_^h(c|a_i) \cr &=h(c)-\sum\limits_^ p(a_i)h(c|a_i)\cr & = h(c)-h(c|a) \cr \end \]
\(c\)指父節點對應所有樣本記錄的類別;\(a\)表示選擇的特徵屬性,即\(a_i\)的集合。那麼,決策樹學習中的資訊增益\(\delta\)等價於訓練資料集中類與特徵的互資訊,表示由於得知特徵\(a\)的資訊訓練資料集\(c\)不確定性減少的程度。
在特徵**後,有些子節點的記錄數可能偏少,以至於影響分類結果。為了解決這個問題,cart演算法提出了只進行特徵的二元**,即決策樹是一棵二叉樹;c4.5演算法改進**目標函式,用資訊增益比(information gain ratio)來選擇特徵:
\begin
gain ratio =
\end
因而,特徵選擇的過程等同於計算每個特徵的資訊增益,選擇最大資訊增益的特徵進行**。此即回答前面所提出的第乙個問題(選擇較優特徵)。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\)的損失函式為:
\[ l_\alpha (t)=c(t)+\alpha \left| t \right| \]
其中,\(c(t)\)表示決策樹的訓練誤差,\(\alpha\)為調節引數,\(\left| t \right|\)為模型的複雜度。當模型越複雜時,訓練的誤差就越小。上述定義的損失正好做了兩者之間的權衡。
如果剪枝後損失函式減少了,即說明這是有效剪枝。具體剪枝演算法可以由動態規劃等來實現。
[1] pang-ning tan, michael steinbach, vipin kumar, introduction to data mining.
[2] 李航,《統計學習方法》.
[3] naren ramakrishnan, the top ten algorithms in data mining.
資料探勘十大經典演算法
最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 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 ...