【数据挖掘】决策树算法简介 ( 决策树模型 | 模型示例 | 决策树算法性能要求 | 递归创建决策树 | 树根属性选择 )
文章目錄
- I . 決策樹模型
- II . 決策樹模型 示例
- III . 決策樹算法列舉
- IV . 決策樹算法 示例
- V . 決策樹算法性能要求
- VI . 決策樹模型創建 ( 遞歸創建決策樹 )
- VII . 決策樹 樹根屬性 選擇
I . 決策樹模型
1 . 決策樹 : 決策時基于 “樹” 結構 , 這也是模擬人在進行決策時采用的策略 ;
2 . 決策樹組成 : 根節點 , 內部節點 , 葉子節點 , 這些節點都是數據的 屬性 ( 特征 ) ;
① 根節點 : 最初始判定的屬性 , 判定區域是全局的數據集 ;
② 內部節點 : 中間的判定屬性 , 判定區域是符合某些特征的子數據集 ;
② 葉子節點 : 決策結果 , 位于決策樹的最底層 , 每個葉子節點都是一個決策結果 ;
3 . 決策樹模型過程 :
① 訓練過程 : 使用訓練集數據確定決策時使用的屬性 , 確定根節點 , 內部節點 , 葉子節點 的屬性劃分 , 訓練決策樹模型 ;
② 預測過程 : 從根節點特征開始 , 根據決策樹中的判定序列依次從根節點向下判定 , 直到一個葉子節點 ;
II . 決策樹模型 示例
1 . 需求場景 :
① 需求 : 電商網站為用戶進行分類 , 目的是確定該用戶是否有可能購買某件商品 , 然后為其推送指定商品的廣告 ;
② 決策樹使用 : 如何對用戶進行分類 , 這里就用到了決策樹模型 , 將用戶分成不同的類別 ;
2 . 數據集 : 決策過程中 , 根據每個節點所處理的數據集的特征 , 將其劃分到不同的子節點中進行處理 ; 如數據集中是 100 個用戶的信息 ;
3 . 決策樹構成 :
① 根節點決策 : 根節點 處理年齡特征 , 小于 30 歲的用戶劃分到一組 , 大于 30 歲的用戶劃分到另一組 ;
② 內部節點決策 : 然后在 小于 30 歲的用戶中繼續判定 , 學生劃分成一組 , 非學生劃分成一組 ;
③ 葉子節點決策結果 : 學生會買電腦 , 非學生不會買電腦 ;
III . 決策樹算法列舉
1 . 常用的決策樹算法 :
① CLS 算法 : 這是第一個決策樹算法 , 1966 年提出 ;
② ID3 算法 : 該算法使決策樹稱為機器學習主流技術 , 1979 年提出 ;
③ C4.5 算法 : 最常用的決策樹算法 ; 1993 年提出 ;
④ 區別 : 上述三個算法五個組件基本一致 , 唯一的區別是確定屬性劃分時的策略不同 , 即將哪個屬性放在樹根 , 將哪個屬性放在內部節點上 , 內部節點的屬性所在層級如何設置 ;
2 . 屬性劃分策略 :
① ID3 算法屬性劃分策略 : ID3 使用信息增益策略 ;
② C4.5 算法屬性劃分策略 : C4.5 使用的是增益率策略 ;
3 . CART 算法 : 既可以用于分類任務 ( 結果是離散值 ) , 也可以用于回歸任務 ( 結果是連續值 ) ;
4 . FR 算法 : 隨機森林算法 ; 使用了數據挖掘 , 機器學習中的集成思想 ; 有很多差的分類器 , 準確率都很低 , 但是多個分類器集成起來 , 準確率就很高 ;
IV . 決策樹算法 示例
1 . 需求場景 :
① 需求 : 電商網站為用戶進行分類 , 目的是確定該用戶是否有可能購買某件商品 , 然后為其推送指定商品的廣告 ;
② 決策樹使用 : 如何對用戶進行分類 , 這里就用到了決策樹模型 , 將用戶分成不同的類別 , 買的一類 , 和不買的一類 ;
2 . 模擬數據集 : 給出一組數據集 , 后面的所有計算都是基于該數據集進行的 ;
需求 : 根據 年齡 , 收入水平 , 是否是學生 , 信用等級 , 預測該用戶是否會購買商品 ;
| 小于 30 歲 | 高收入 | 不是 | 一般 | 不會 |
| 小于 30 歲 | 高收入 | 不是 | 很好 | 不會 |
| 31 ~ 39 歲 | 高收入 | 不是 | 一般 | 會 |
| 40 歲以上 | 中等收入 | 不是 | 一般 | 會 |
| 40 歲以上 | 低收入 | 是 | 一般 | 會 |
| 40 歲以上 | 低收入 | 是 | 很好 | 不會 |
| 31 ~ 40 歲 | 低收入 | 不是 | 很好 | 會 |
| 小于 30 歲 | 中等收入 | 不是 | 一般 | 不會 |
| 小于 30 歲 | 低收入 | 是 | 一般 | 會 |
| 40 歲以上 | 中等收入 | 是 | 一般 | 會 |
| 小于 30 歲 | 中等收入 | 是 | 很好 | 會 |
| 31 ~ 39 歲 | 中等收入 | 不是 | 很好 | 會 |
| 31 ~ 39 歲 | 高收入 | 是 | 一般 | 會 |
| 40 歲以上 | 中等收入 | 不是 | 很好 | 不會 |
3 . 決策樹模型 :
建立模型 : 將上述數據集的 屬性 ( 特征 ) 轉換為樹狀的模型 ;
確定樹根 : 首先要確定哪個屬性作為樹根 , 這個選擇是有一定要求的 , 不能隨意指定一個任意的特征作為樹根 ;
4 . 決策樹 屬性劃分 :
屬性劃分策略 : 根據一定的策略 , 確定哪個屬性作為樹根 , 然后每個子樹 , 在確定剩余的哪個屬性作為子樹的樹根 , 這是遞歸問題 ;
屬性劃分的算法性質 : 遞歸算法 ;
如何決定樹根屬性 : 確定總樹的樹根 , 及每個子樹的樹根 , 要求根據數據的 屬性 ( 特征 ) 進行的決策次數盡量能做到最少 ;
V . 決策樹算法性能要求
1 . 決策樹的高度 :
① 決策樹最大高度 : 決策屬性的個數 ; ( 每個屬性都要決策一次 , 才能預測出結果 )
② 決策時最小高度 : 1 ; ( 只需要決策一次 , 就可以預測出結果 )
2 . 決策樹性能 : 決策樹越矮越好 , 即預測某特征 , 進行的決策次數越少越好 ;
3 . 樹根屬性 : 越重要的屬性 , 其越能將數據最大可能拆分開 , 將重要的屬性放在樹根 ;
VI . 決策樹模型創建 ( 遞歸創建決策樹 )
1 . 決策樹模型創建 : 決策樹模型創建的核心就是選擇合適的樹根 , 將重要的屬性放在樹根 , 然后子樹中 , 繼續選擇子樹中重要的屬性放在子樹的樹根 , 依次遞歸 , 最終得到決策結果 ( 葉子節點 ) ;
2 . 決策樹創建算法 ( 遞歸 ) : 使用遞歸算法 , 遞歸算法分為遞歸操作 和 遞歸停止條件 ;
3 . 遞歸操作 : 每個步驟先選擇屬性 , 選擇好屬性后 , 根據 總樹 ( 子樹 ) 的樹根屬性劃分訓練集 ;
① 選擇屬性 : 遞歸由上到下決定每一個節點的屬性 , 依次遞歸構造決策樹 ;
② 數據集劃分 : 開始決策時 , 所有的數據都在樹根 , 由樹根屬性來劃分數據集 ;
③ 屬性離散化 : 如果屬性的值是連續值 , 需要將連續屬性值離散化 ; 如 : 100 分滿分 , 將 60 分以下分為不及格數據 , 60 分以上分為及格數據 ;
4 . 遞歸停止的條件 :
① 子樹分類完成 : 節點上的子數據集都屬于同一個類別 , 該節點就不再向下劃分 , 稱為葉子節點 ;
② 屬性 ( 節點 ) 全部分配完畢 : 所有的屬性都已經分配完畢 , 決策樹的高度等于屬性個數 ;
③ 所有樣本分類完畢 : 所有的樣本數據集都分類完成 ;
VII . 決策樹 樹根屬性 選擇
1 . 屬性選擇方法 : 樹根屬性選擇的方法很多 , 這里介紹一種常用的方法 , 信息增益 ;
2 . 信息增益 : 信息增益 效果越大 , 其作為樹根屬性 , 劃分的數據集分類效果越明顯 ;
3 . 信息 和 熵 : 涉及 信息論 的知識點 , 建議有空就去 B站 刷一下信息論課程 ;
① 信息 與 熵 的關系 : 信息 會 消除 熵 , 熵 代表了不確定性 , 信息用來消除不確定性 ;
② 信息增益 : 信息增益大的屬性 , 能最大消除熵的不確定性 ;
4 . 決策樹中的信息增益 : 屬性的 信息增益 越大 , 就越能將分類效果達到最大 ;
如 : 想要從用戶數據集中找到是否能買奢侈品的用戶 , 先把高收入群體劃分出來 , 將低收入者從數據集中去除 , 這個收入水平的屬性 ( 特征 ) , 信息增益就很大 ;
總結
以上是生活随笔為你收集整理的【数据挖掘】决策树算法简介 ( 决策树模型 | 模型示例 | 决策树算法性能要求 | 递归创建决策树 | 树根属性选择 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JetPack】数据绑定 DataBi
- 下一篇: 【数据挖掘】决策树 分类 ( 抽取分类规