1)決策樹演算法的思想
資訊熵越小的資料集,樣本的確定性越高,當資料集的資訊熵為 0 時,該資料集中只有一種型別的樣本;
訓練資料集中有很多態別的樣本,通過對資料集資訊熵的判斷,逐層劃分資料集,最終將每一類樣本單獨劃分出來;
劃分資料集的方式有很多種,只有當按樣本類別劃分資料集時(也就是兩部分資料集中不會同時存在相同型別的樣本),劃分後的兩部分資料集的整體的資訊熵最小;反相推斷,當兩部分資料集的整體的資訊熵最小時,則兩部分資料集中不會同時存在相同型別的樣本;
2)劃分步驟
(一般不直接打亂原始資料集中樣本的排列順序,而是使用 np.argsorted( 特徵向量 ),返回特徵向量中元素排序後對應的 index)
將特徵值排序後,從 0 號開始,選取相鄰的但不相等的兩個特徵值的平均數作為乙個劃分點;按此方式迭代找出一組特質向量中的所有劃分點;
4)劃分結果
兩種資料集:x_left、x_right 機器對應的 y;
特徵型別,及其最優的劃分點的特徵值;
5)**實現劃分過程
d:特徵;
value:特徵值;
counter = counter(y):將向量 y 做成乙個字典;
counter 的 key:y 中各種資料;
counter 的value:key 對應的資料在 y 中的個數;
counter(list/tuple/str/array等序列):以字典的形式返回 序列中所有元素及其數量;(可以起到去重的作用)
float('inf'):'inf'表示正無窮的值;
np.argsort(x[:, d]):返回資料集 x 在第 d 列的排序的 index,並沒有打亂資料集 x 的樣本排列順序;
判斷資料集的資訊熵是否為 0,如果等於 0,說明該資料集中只有一種型別的樣本,不需要再進行劃分;反之則需要再次進行劃分;
劃分方法與第一次劃分的過程一樣;
機器學習 決策樹( 夏農熵)
夏農熵定義為資訊的期望值。在資訊理論與概率統計中,熵是表示隨機變數不確定性的度量。假定當前樣本集合d中一共有n類樣本,第i類樣本為xi 那麼xi的資訊定義為 舉例 若小明和小華下棋,兩人勢均力敵,則資訊熵h 1 2 log2 1 2 1 2 log2 1 2 1bit。夏農熵的計算公式為 夏農熵的值...
決策樹 資訊熵增益
from math import log import operator defcreatedateset dataset 青年 否 否 一般 否 青年 否 否 好 否 青年 是 否 好 是 青年 是 是 一般 是 青年 否 否 一般 否 中年 否 否 一般 否 中年 否 否 好 否 中年 是 是 ...
利用資訊熵構建決策樹
決策樹演算法普遍存在於我們的日常生活中,我們在不經意間就會使用到決策樹。比如你在糾結是否要去一家公司工作時,可能會用到下面的決策樹 整個決策過程是這樣的 如果公司待遇高,你可能就願意去 如果待遇不高,你可能會繼續考慮公司的平台好不好。如果連平台都不好,那就直接拒絕。如果平台很好,你就會繼續考慮自己在...