機器學習 決策樹(使用資訊熵尋找最優劃分)

2022-03-22 01:03:08 字數 967 閱讀 3506

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 青年 否 否 一般 否 青年 否 否 好 否 青年 是 否 好 是 青年 是 是 一般 是 青年 否 否 一般 否 中年 否 否 一般 否 中年 否 否 好 否 中年 是 是 ...

利用資訊熵構建決策樹

決策樹演算法普遍存在於我們的日常生活中,我們在不經意間就會使用到決策樹。比如你在糾結是否要去一家公司工作時,可能會用到下面的決策樹 整個決策過程是這樣的 如果公司待遇高,你可能就願意去 如果待遇不高,你可能會繼續考慮公司的平台好不好。如果連平台都不好,那就直接拒絕。如果平台很好,你就會繼續考慮自己在...