日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )

發布時間:2025/6/17 46 豆豆

文章目錄

        • I . 決策樹 分類規則抽取
        • II . 決策樹 過擬合 與 剪枝
        • III . 決策樹 剪枝 先剪 與 后剪 對比
        • IV . 連續屬性 離散化處理 ( 二分法 | 最優劃分點 )
        • V . 根據 增益率 選擇劃分屬性
        • VI . 根據 增益率 選擇劃分屬性 計算案例
        • VII . 決策樹 作用 及 優勢



I . 決策樹 分類規則抽取



1 . 決策樹規則表示形式 : 決策樹 中蘊含的 規則可以使用 IF-THEN 形式表示 ;


2 . 決策樹規則數量 : 從決策樹根節點 , 到葉子節點 , 每條路徑都對應一條規則 , 規則數量就是葉子節點的數量 ;


3 . 中間內部節點表示 : 使用 AND 將多個屬性判定組個在一起 , 相當于 邏輯與 運算 ;


4 . 葉子節點表示 : 葉子節點構成 THEN 部分 , 表達其分類結果 ;


5 . IF-THEN 示例 : 下圖的決策樹 , 有 5 個葉子節點 , 可以抽取出 5 條規則 , 下面列舉這 5 條路徑 :


① 下圖中的紅色路徑 : 該條路徑表示 , 如果年齡在 30 歲以下 , 是學生 , 就會購買商品 ;

IF age = "<=30" AND isStudent = "yes" THEN isBuy = "yes"

② 下圖中的藍色路徑 : 該條路徑表示 , 如果年齡在 30 歲以下 , 不是學生 , 就不會購買商品 ;

IF age = "<=30" AND isStudent = "no" THEN isBuy = "no"

③ 下圖中的紫色路徑 : 該條路徑表示 , 31 ~ 39 歲的 , 會購買商品 ;

IF age = ">= 31 && <= 39>" isBuy = "yes"

④ 下圖中的綠色路徑 : 該條路徑表示 , 在 40 歲以上 , 信用好的 , 會購買商品 ;

IF age = ">=40" AND credit= "good" THEN isBuy = "yes"

⑤ 下圖中的黑色路徑 : 該條路徑表示 , 在 40 歲以上 , 信用一般的 , 不會購買商品 ;

IF age = ">=40" AND credit= "normal" THEN isBuy = "no"



II . 決策樹 過擬合 與 剪枝



1 . 決策樹過擬合問題 :


① 完全服從 : 生成的決策樹 , 完全服從與訓練集 ;

② 分支太多 : 這種過擬合的決策樹 , 出現很多類型的分支 , 有些分支出現次數很少 , 甚至在實際使用中從來不用 , 分支不具有代表性 ;

③ 消極結果 : 過擬合會導致模型準確度很低 ;


2 . 解決過擬合問題 : 剪枝方法 ; 通過進行剪紙 , 將部分分支路徑刪除 ;


① 先剪 : 在建立 決策樹 模型時 , 訓練模型過程中 , 如果該數據樣本分支很少 , 就不創建這個分支 ;

② 后剪 : 先將 完整的 決策樹模型 創建出來 , 然后將樣本少的路徑直接剪除 ;



III . 決策樹 剪枝 先剪 與 后剪 對比



1 . 時間消耗分析 :


① 先剪 : 訓練模型時剪枝 , 訓練時間會減少 , 相對于沒有剪枝的情況 , 測試的時間也會的減少 ;

② 后剪 : 在模型創建后剪枝 , 要生成完整的樹 , 訓練時間會增加 , 訓練完之后剪枝 , 相對于沒有剪枝的情況 , 測試的時間會減少 ;


2 . 擬合風險 : 這里分為 過擬合 ( 擬合過度 ) 和 欠擬合 ( 擬合度不夠 ) ;


① 先剪 : 不會過擬合 , 但是 有可能欠擬合 ;

② 后剪 : 不會過擬合 , 欠擬合風險不變 ;


3 . 最佳實踐 : 推薦使用 后剪 剪枝策略 ;



IV . 連續屬性 離散化處理 ( 二分法 | 最優劃分點 )



1 . 連續值屬性 :


① 連續屬性離散化 : 決策樹要基于一個離散的值進行分類 , 連續的值 , 無法根據屬性值劃分數據集 , 需要將連續屬性值離散化 , 再使用決策樹分析 ;

② 示例 : 如學生成績 , 0 ~ 100 分 , 60 分以上劃分為 及格 , 60 分以下劃分為 不及格 ;


2 . 二分法處理連續屬性值 :


① 連續屬性 DDD : 數據集中的 DDD 屬性 , 其取值是連續的數值 ;

② 屬性值排序 : DDD 屬性的 nnn 個不同的連續取值從小到大排序 {a1,a2,?,an}\{ a_1 , a_2, \cdots , a_n \}{a1?,a2?,?,an?} ;

③ 劃分點 ttt : 劃分點 tttDDD 屬性的一個取值 , 將 DDD 屬性的值分為 子集 Dt?D_t^-Dt??Dt+D_t^+Dt+? ;

Dt?D_t^-Dt?? 子集 : 該子集中的屬性值 , 小于等于 ttt ;

Dt+D_t^+Dt+? 子集 : 該子集中的屬性值 , 大于 ttt ;


3 . 最優劃分點 :


① 候選劃分點 : DDD 屬性有 nnn 個取值 , 可以有 n?1n-1n?1 個候選劃分點 ;

② 某兩個屬性值之間的劃分點確定 : {a1,a2,?,an}\{ a_1 , a_2, \cdots , a_n \}{a1?,a2?,?,an?} 取值集合中 , 將兩個數值之間的中點 , 作為劃分點 ;

③ 最優化分點確定 : 需要選擇最優的劃分點 , 以達到最終決策樹分類的目的 ;



V . 根據 增益率 選擇劃分屬性



1 . 信息增益弊端 : 如果數據集中 , 某個屬性有很多值 , 其信息增益比較大 , 很容易將分支多的屬性放在樹根 ;

示例說明 : 如 人的性別 , 其取值只有 男 和 女 兩種 , 其只有兩項 , 人的年齡 有 130 種取值范圍 , 其計算出來信息增益比較大 ;


2 . 增益率引入 : ID3 使用信息增益確定樹根屬性 , C4.5 使用增益率確定樹根屬性 ;


3 . 增益率 ( Gain Ratio ) 計算公式 :


AAA 表示屬性類型 ;

DDD 表示樣本的總個數 ;

vvv 表示當前的 AAA 屬性不同取值個數 , 取值集合為 {a1,a2,?,av}\{a_1, a_2 , \cdots , a_v\}{a1?,a2?,?,av?}

DjD_jDj? 表示樣本取值 aja_jaj? 的樣本個數 ;

SplitInfoA(D)=?∑j=1vDjDlog2DjDSplitInfo_A(D) = - \sum_{j=1}^{v} \frac{D_j}{D} log_2 \frac{D_j}{D}SplitInfoA?(D)=?j=1v?DDj??log2?DDj??


增益率公式 :

GainRatio(A)=Gain(A)/SplitInfo(A)GainRatio ( A ) = Gain(A) / SplitInfo(A)GainRatio(A)=Gain(A)/SplitInfo(A)



VI . 根據 增益率 選擇劃分屬性 計算案例



1 . 計算案例 :

參考之前的 信息增益計算案例 : 信息增益計算 案例


2 . 信息增益計算結果 : 依次計算 各個屬性的 信息增益 :


① 年齡 屬性的信息增益 : Gain(年齡)=0.246Gain ( 年齡 ) = 0.246Gain()=0.246

② 收入 屬性的信息增益 : Gain(收入)=0.029Gain ( 收入 ) = 0.029Gain()=0.029

③ 是否是學生 屬性的信息增益 : Gain(是否是學生)=0.151Gain ( 是否是學生 ) = 0.151Gain()=0.151

④ 信用等級 屬性的信息增益 : Gain(信用等級)=0.048Gain ( 信用等級 ) = 0.048Gain()=0.048

⑤ 樹根 屬性選擇: 年齡屬性的 信息增益 最大 , 選擇年齡屬性作為樹根 ;


3 . 這里計算收入 屬性的增益率 : 14 個樣本中, 4 個高收入 , 6 個中等收入 , 4 個低收入 ;


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 . 樹根選擇 : 同樣增益率最大的屬性 , 會被設置為 劃分屬性 ;



VII . 決策樹 作用 及 優勢



1 . 大數據分類 : 在大數據分類中 , 要求快速的對幾百萬的樣本 , 涉及幾十上百的屬性進行分類 ;


2 . 決策樹 算法優勢 :


① 可伸縮性 : 隨著數據量增大 , 復雜度線性增長 , 不是指數級增長 ;

② 學習速度快 : 學習速度比其它分類方法快 ;

③ 規則轉化 : 可以抽取轉化分類規則 ;

④ 數據庫結合 : 可以使用 SQL 查詢數據庫中的數據 ;

⑤ 準確性高 : 使用決策樹分類 , 準確性有保障 ;

總結

以上是生活随笔為你收集整理的【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。