跟我一起數據挖掘(23)——C4.5

C4.5簡介

C4.5是一系列用在機器學習和數據挖掘的分類問題中的算法。它的目標是監督學習:給定一個數據集,其中的每一個元組都能用一組屬性值來描述,每一個元組屬於一個互斥的類別中的某一類。C4.5的目標是通過學習,找到一個從屬性值到類別的映射關係,並且這個映射能用於對新的類別未知的實體進行分類。

由於ID3算法在實際應用中存在一些問題,於是Quinlan提出了C4.5算法,嚴格上說C4.5只能是ID3的一個改進算法。

C4.5算法繼承了ID3算法的優點,並在以下幾方面對ID3算法進行了改進:

1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;

2) 在樹構造過程中進行剪枝;

3) 能夠完成對連續屬性的離散化處理;

4) 能夠對不完整數據進行處理。

C4.5算法有如下優點:產生的分類規則易於理解,準確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。

C4.5的分類器示意圖

我們以一個很典型被引用過多次的訓練數據集D爲例,來說明C4.5算法如何計算信息增益並選擇決策結點。

無標題

由其中四個屬性來決定是否進行活動還是取消活動。上面的訓練集有4個屬性,即屬性集合A={OUTLOOK, TEMPERATURE, HUMIDITY, WINDY};而類標籤有2個,即類標籤集合C={Yes, No},分別表示適合戶外運動和不適合戶外運動,其實是一個二分類問題。

C4.5的優缺點及算法流程

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

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

C4.5的算法流程:

image

DEMO示例

算法測試:

https://github.com/zongtui/zongtui-Algorithm-test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章