資料探勘十大經典演算法之 決策樹C4 5 分類演算法

2021-09-30 12:45:49 字數 3464 閱讀 2398

c4.5是機器學習演算法中的另乙個分類決策樹演算法,它是基於id3演算法進行改進後的一種重要演算法,相比於id3演算法,改進有如下幾個要點:

首先,說明一下如何計算資訊增益率。

熟悉了id3演算法後,已經知道如何計算資訊增益,計算公式如下所示(來自wikipedia):

或者,用另乙個更加直觀容易理解的公式計算:

然後計算資訊增益,即前者對後者做差,得到屬性集合a一組資訊增益:

這樣,資訊增益就計算出來了。

下面看,計算資訊增益率的公式,如下所示(來自wikipedia):

其中,ig表示資訊增益,按照前面我們描述的過程來計算。而iv是我們現在需要計算的,它是乙個用來考慮**資訊的度量,**資訊用來衡量屬性分 裂資料的廣度和均勻程式,計算公式如下所示(來自wikipedia):

簡化一下,看下面這個公式更加直觀:

其中,v表示屬性集合a中的乙個屬性的全部取值。

我們以乙個很典型被引用過多次的訓練資料集d為例,來說明c4.5演算法如何計算資訊增益並選擇決策結點。

上面的訓練集有4個屬性,即屬性集合a=;而類標籤有2個,即類標籤集合c=,分別表示適合戶外運動和不適合戶外運動,其實是乙個二分類問題。

我們已經計算過資訊增益,這裡直接列出來,如下所示:

資料集d包含14個訓練樣本,其中屬於類別「yes」的有9個,屬於類別「no」的有5個,則計算其資訊熵:

1

info(d) = -9/14 * log2(9/14) - 5/14 * log2(5/14) = 0.940

下面對屬性集中每個屬性分別計算資訊熵,如下所示:

1

info(outlook) = 5/14 * [- 2/5 * log2(2/5) – 3/5 * log2(3/5)] + 4/14 * [ - 4/4 * log2(4/4) - 0/4 * log2(0/4)] + 5/14 * [ - 3/5 * log2(3/5) – 2/5 * log2(2/5)] = 0.694

2

info(temperature) = 4/14 * [- 2/4 * log2(2/4) – 2/4 * log2(2/4)] + 6/14 * [ - 4/6 * log2(4/6) - 2/6 * log2(2/6)] + 4/14 * [ - 3/4 * log2(3/4) – 1/4 * log2(1/4)] = 0.911

3

info(humidity) = 7/14 * [- 3/7 * log2(3/7) – 4/7 * log2(4/7)] + 7/14 * [ - 6/7 * log2(6/7) - 1/7 * log2(1/7)] = 0.789

4

info(windy) = 6/14 * [- 3/6 * log2(3/6) – 3/6 * log2(3/6)] + 8/14 * [ - 6/8 * log2(6/8) - 2/8 * log2(2/8)] = 0.892

根據上面的資料,我們可以計算選擇第乙個根結點所依賴的資訊增益值,計算如下所示:

1

gain(outlook) = info(d) - info(outlook) = 0.940 - 0.694 = 0.246

2

gain(temperature) = info(d) - info(temperature) = 0.940 - 0.911 = 0.029

3

gain(humidity) = info(d) - info(humidity) = 0.940 - 0.789 = 0.151

4

gain(windy) = info(d) - info(windy) = 0.940 - 0.892 = 0.048

接下來,我們計算**資訊度量h(v):

屬性outlook有3個取值,其中sunny有5個樣本、rainy有5個樣本、overcast有4個樣本,則

1

h(outlook) = - 5/14 * log2(5/14) - 5/14 * log2(5/14) - 4/14 * log2(4/14) = 1.577406282852345

屬性temperature有3個取值,其中hot有4個樣本、mild有6個樣本、cool有4個樣本,則

1

h(temperature) = - 4/14 * log2(4/14) - 6/14 * log2(6/14) - 4/14 * log2(4/14) = 1.5566567074628228

屬性humidity有2個取值,其中normal有7個樣本、high有7個樣本,則

1

h(humidity) = - 7/14 * log2(7/14) - 7/14 * log2(7/14) = 1.0

屬性windy有2個取值,其中true有6個樣本、false有8個樣本,則

1

h(windy) = - 6/14 * log2(6/14) - 8/14 * log2(8/14) = 0.9852281360342516

根據上面計算結果,我們可以計算資訊增益率,如下所示:

1

igr(outlook) = gain(outlook) / h(outlook) = 0.246/1.577406282852345 = 0.15595221261270145

2

igr(temperature) = gain(temperature) / h(temperature) = 0.029 / 1.5566567074628228 = 0.018629669509642094

3

igr(humidity) = gain(humidity) / h(humidity) = 0.151/1.0 = 0.151

4

igr(windy) = gain(windy) / h(windy) = 0.048/0.9852281360342516 = 0.048719680492692784

根據計算得到的資訊增益率進行選擇屬性集中的屬性作為決策樹結點,對該結點進行**。

c4.5演算法的優點是:產生的分類規則易於理解,準確率較高。

c4.5演算法的缺點是:在構造樹的過程中,需要對資料集進行多次的順序掃瞄和排序,因而導致演算法的低效。

【資料集】

**:

資料探勘十大經典演算法

最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 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 ...