【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )
文章目錄
- I . 決策樹 分類規(guī)則抽取
- II . 決策樹 過擬合 與 剪枝
- III . 決策樹 剪枝 先剪 與 后剪 對(duì)比
- IV . 連續(xù)屬性 離散化處理 ( 二分法 | 最優(yōu)劃分點(diǎn) )
- V . 根據(jù) 增益率 選擇劃分屬性
- VI . 根據(jù) 增益率 選擇劃分屬性 計(jì)算案例
- VII . 決策樹 作用 及 優(yōu)勢(shì)
I . 決策樹 分類規(guī)則抽取
1 . 決策樹規(guī)則表示形式 : 決策樹 中蘊(yùn)含的 規(guī)則可以使用 IF-THEN 形式表示 ;
2 . 決策樹規(guī)則數(shù)量 : 從決策樹根節(jié)點(diǎn) , 到葉子節(jié)點(diǎn) , 每條路徑都對(duì)應(yīng)一條規(guī)則 , 規(guī)則數(shù)量就是葉子節(jié)點(diǎn)的數(shù)量 ;
3 . 中間內(nèi)部節(jié)點(diǎn)表示 : 使用 AND 將多個(gè)屬性判定組個(gè)在一起 , 相當(dāng)于 邏輯與 運(yùn)算 ;
4 . 葉子節(jié)點(diǎn)表示 : 葉子節(jié)點(diǎn)構(gòu)成 THEN 部分 , 表達(dá)其分類結(jié)果 ;
5 . IF-THEN 示例 : 下圖的決策樹 , 有 5 個(gè)葉子節(jié)點(diǎn) , 可以抽取出 5 條規(guī)則 , 下面列舉這 5 條路徑 :
① 下圖中的紅色路徑 : 該條路徑表示 , 如果年齡在 30 歲以下 , 是學(xué)生 , 就會(huì)購買商品 ;
IF age = "<=30" AND isStudent = "yes" THEN isBuy = "yes"② 下圖中的藍(lán)色路徑 : 該條路徑表示 , 如果年齡在 30 歲以下 , 不是學(xué)生 , 就不會(huì)購買商品 ;
IF age = "<=30" AND isStudent = "no" THEN isBuy = "no"③ 下圖中的紫色路徑 : 該條路徑表示 , 31 ~ 39 歲的 , 會(huì)購買商品 ;
IF age = ">= 31 && <= 39>" isBuy = "yes"④ 下圖中的綠色路徑 : 該條路徑表示 , 在 40 歲以上 , 信用好的 , 會(huì)購買商品 ;
IF age = ">=40" AND credit= "good" THEN isBuy = "yes"⑤ 下圖中的黑色路徑 : 該條路徑表示 , 在 40 歲以上 , 信用一般的 , 不會(huì)購買商品 ;
IF age = ">=40" AND credit= "normal" THEN isBuy = "no"II . 決策樹 過擬合 與 剪枝
1 . 決策樹過擬合問題 :
① 完全服從 : 生成的決策樹 , 完全服從與訓(xùn)練集 ;
② 分支太多 : 這種過擬合的決策樹 , 出現(xiàn)很多類型的分支 , 有些分支出現(xiàn)次數(shù)很少 , 甚至在實(shí)際使用中從來不用 , 分支不具有代表性 ;
③ 消極結(jié)果 : 過擬合會(huì)導(dǎo)致模型準(zhǔn)確度很低 ;
2 . 解決過擬合問題 : 剪枝方法 ; 通過進(jìn)行剪紙 , 將部分分支路徑刪除 ;
① 先剪 : 在建立 決策樹 模型時(shí) , 訓(xùn)練模型過程中 , 如果該數(shù)據(jù)樣本分支很少 , 就不創(chuàng)建這個(gè)分支 ;
② 后剪 : 先將 完整的 決策樹模型 創(chuàng)建出來 , 然后將樣本少的路徑直接剪除 ;
III . 決策樹 剪枝 先剪 與 后剪 對(duì)比
1 . 時(shí)間消耗分析 :
① 先剪 : 訓(xùn)練模型時(shí)剪枝 , 訓(xùn)練時(shí)間會(huì)減少 , 相對(duì)于沒有剪枝的情況 , 測(cè)試的時(shí)間也會(huì)的減少 ;
② 后剪 : 在模型創(chuàng)建后剪枝 , 要生成完整的樹 , 訓(xùn)練時(shí)間會(huì)增加 , 訓(xùn)練完之后剪枝 , 相對(duì)于沒有剪枝的情況 , 測(cè)試的時(shí)間會(huì)減少 ;
2 . 擬合風(fēng)險(xiǎn) : 這里分為 過擬合 ( 擬合過度 ) 和 欠擬合 ( 擬合度不夠 ) ;
① 先剪 : 不會(huì)過擬合 , 但是 有可能欠擬合 ;
② 后剪 : 不會(huì)過擬合 , 欠擬合風(fēng)險(xiǎn)不變 ;
3 . 最佳實(shí)踐 : 推薦使用 后剪 剪枝策略 ;
IV . 連續(xù)屬性 離散化處理 ( 二分法 | 最優(yōu)劃分點(diǎn) )
1 . 連續(xù)值屬性 :
① 連續(xù)屬性離散化 : 決策樹要基于一個(gè)離散的值進(jìn)行分類 , 連續(xù)的值 , 無法根據(jù)屬性值劃分?jǐn)?shù)據(jù)集 , 需要將連續(xù)屬性值離散化 , 再使用決策樹分析 ;
② 示例 : 如學(xué)生成績(jī) , 0 ~ 100 分 , 60 分以上劃分為 及格 , 60 分以下劃分為 不及格 ;
2 . 二分法處理連續(xù)屬性值 :
① 連續(xù)屬性 DDD : 數(shù)據(jù)集中的 DDD 屬性 , 其取值是連續(xù)的數(shù)值 ;
② 屬性值排序 : 將 DDD 屬性的 nnn 個(gè)不同的連續(xù)取值從小到大排序 {a1,a2,?,an}\{ a_1 , a_2, \cdots , a_n \}{a1?,a2?,?,an?} ;
③ 劃分點(diǎn) ttt : 劃分點(diǎn) ttt 是 DDD 屬性的一個(gè)取值 , 將 DDD 屬性的值分為 子集 Dt?D_t^-Dt?? 和 Dt+D_t^+Dt+? ;
④ Dt?D_t^-Dt?? 子集 : 該子集中的屬性值 , 小于等于 ttt ;
⑤ Dt+D_t^+Dt+? 子集 : 該子集中的屬性值 , 大于 ttt ;
3 . 最優(yōu)劃分點(diǎn) :
① 候選劃分點(diǎn) : DDD 屬性有 nnn 個(gè)取值 , 可以有 n?1n-1n?1 個(gè)候選劃分點(diǎn) ;
② 某兩個(gè)屬性值之間的劃分點(diǎn)確定 : {a1,a2,?,an}\{ a_1 , a_2, \cdots , a_n \}{a1?,a2?,?,an?} 取值集合中 , 將兩個(gè)數(shù)值之間的中點(diǎn) , 作為劃分點(diǎn) ;
③ 最優(yōu)化分點(diǎn)確定 : 需要選擇最優(yōu)的劃分點(diǎn) , 以達(dá)到最終決策樹分類的目的 ;
V . 根據(jù) 增益率 選擇劃分屬性
1 . 信息增益弊端 : 如果數(shù)據(jù)集中 , 某個(gè)屬性有很多值 , 其信息增益比較大 , 很容易將分支多的屬性放在樹根 ;
示例說明 : 如 人的性別 , 其取值只有 男 和 女 兩種 , 其只有兩項(xiàng) , 人的年齡 有 130 種取值范圍 , 其計(jì)算出來信息增益比較大 ;
2 . 增益率引入 : ID3 使用信息增益確定樹根屬性 , C4.5 使用增益率確定樹根屬性 ;
3 . 增益率 ( Gain Ratio ) 計(jì)算公式 :
① AAA 表示屬性類型 ;
② DDD 表示樣本的總個(gè)數(shù) ;
③ vvv 表示當(dāng)前的 AAA 屬性不同取值個(gè)數(shù) , 取值集合為 {a1,a2,?,av}\{a_1, a_2 , \cdots , a_v\}{a1?,a2?,?,av?}
④ DjD_jDj? 表示樣本取值 aja_jaj? 的樣本個(gè)數(shù) ;
SplitInfoA(D)=?∑j=1vDjDlog2DjDSplitInfo_A(D) = - \sum_{j=1}^{v} \frac{D_j}{D} log_2 \frac{D_j}{D}SplitInfoA?(D)=?j=1∑v?DDj??log2?DDj??
增益率公式 :
GainRatio(A)=Gain(A)/SplitInfo(A)GainRatio ( A ) = Gain(A) / SplitInfo(A)GainRatio(A)=Gain(A)/SplitInfo(A)
VI . 根據(jù) 增益率 選擇劃分屬性 計(jì)算案例
1 . 計(jì)算案例 :
參考之前的 信息增益計(jì)算案例 : 信息增益計(jì)算 案例
2 . 信息增益計(jì)算結(jié)果 : 依次計(jì)算 各個(gè)屬性的 信息增益 :
① 年齡 屬性的信息增益 : Gain(年齡)=0.246Gain ( 年齡 ) = 0.246Gain(年齡)=0.246
② 收入 屬性的信息增益 : Gain(收入)=0.029Gain ( 收入 ) = 0.029Gain(收入)=0.029
③ 是否是學(xué)生 屬性的信息增益 : Gain(是否是學(xué)生)=0.151Gain ( 是否是學(xué)生 ) = 0.151Gain(是否是學(xué)生)=0.151
④ 信用等級(jí) 屬性的信息增益 : Gain(信用等級(jí))=0.048Gain ( 信用等級(jí) ) = 0.048Gain(信用等級(jí))=0.048
⑤ 樹根 屬性選擇: 年齡屬性的 信息增益 最大 , 選擇年齡屬性作為樹根 ;
3 . 這里計(jì)算收入 屬性的增益率 : 14 個(gè)樣本中, 4 個(gè)高收入 , 6 個(gè)中等收入 , 4 個(gè)低收入 ;
SplitInfoA(D)=?∑j=1vDjDlog2DjD==?414log2414?614log2614?414log2414=0.926\begin{array}{lcl} SplitInfo_A(D) &=& - \sum_{j=1}^{v} \frac{D_j}{D} log_2 \frac{D_j}{D} \\\\ &=& = - \frac{4}{14} log_2 \frac{4}{14} - \frac{6}{14} log_2 \frac{6}{14} - \frac{4}{14} log_2 \frac{4}{14} \\\\ &=& 0.926 \end{array}SplitInfoA?(D)?===??∑j=1v?DDj??log2?DDj??=?144?log2?144??146?log2?146??144?log2?144?0.926?
GainRatio(A)=Gain(A)/SplitInfo(A)=0.0290.926=0.031GainRatio ( A ) = Gain(A) / SplitInfo(A) = \frac{0.029}{0.926} = 0.031GainRatio(A)=Gain(A)/SplitInfo(A)=0.9260.029?=0.031
4 . 樹根選擇 : 同樣增益率最大的屬性 , 會(huì)被設(shè)置為 劃分屬性 ;
VII . 決策樹 作用 及 優(yōu)勢(shì)
1 . 大數(shù)據(jù)分類 : 在大數(shù)據(jù)分類中 , 要求快速的對(duì)幾百萬的樣本 , 涉及幾十上百的屬性進(jìn)行分類 ;
2 . 決策樹 算法優(yōu)勢(shì) :
① 可伸縮性 : 隨著數(shù)據(jù)量增大 , 復(fù)雜度線性增長 , 不是指數(shù)級(jí)增長 ;
② 學(xué)習(xí)速度快 : 學(xué)習(xí)速度比其它分類方法快 ;
③ 規(guī)則轉(zhuǎn)化 : 可以抽取轉(zhuǎn)化分類規(guī)則 ;
④ 數(shù)據(jù)庫結(jié)合 : 可以使用 SQL 查詢數(shù)據(jù)庫中的數(shù)據(jù) ;
⑤ 準(zhǔn)確性高 : 使用決策樹分類 , 準(zhǔn)確性有保障 ;
總結(jié)
以上是生活随笔為你收集整理的【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】决策树算法简介 ( 决策树模
- 下一篇: 【数据挖掘】数据挖掘建模 ( 预测建模