在劃分資料集之前之後資訊發生的變化叫做資訊增益,為了說明白資訊增益得先知道什麼是資訊,什麼是熵
熵(約翰·馮·諾依曼起的名),定義為資訊的期望。那麼設x為有限個離散的隨機變數,其概率分布為:
p (x
=xi)
=pi,
i=1,
2,…,
n}}_i}}}_i},i = 1,2, \ldots ,n
p(x=xi
)=p
i,i
=1,2
,…,n
隨機變數x的熵即為:
h (x
)=−∑
i=1n
pi
logpi
h(x) = - \sum\limits_^n \log }
h(x)=−
i=1∑
npi
logpi
接下來就可以談談資訊增益了,定義是這樣說的:
特徵a對訓練資料集d的資訊增益g(x,a),定義為集合d的經驗熵h(d)與特徵a給定d的經驗條件熵h(d|a)之差即:
g (x
,xi)
=h(x
)−h(
x∣xi
)g(x,}_i}) = h(x) - h(x|}_i})
g(x,xi
)=h
(x)−
h(x∣
xi)
選擇資訊增益最大的特徵
那要怎麼與之前的資訊增益結合起來呢?
比如當以某乙個資料(xixi
)劃分資料集後分為兩個子資料集,計算兩個子資料集的熵再乘以各自長度佔比後求和(此時即為h(x
∣xi)
h(x|}_i})
h(x∣xi
)),遍歷所有i並計算何時資訊增益最大即可
還有一種方式是用gini指標,下次再更~
決策樹劃分資料集
這段 主要是劃分資料,比如說看這個矩陣的第一列是否滿足需要,如果滿足需要,就把後面的新增進來,然後追加到新的矩陣中。可是這麼做有什麼用途呢?另外,axis是軸的意思,這段 給出了三個引數,第乙個是要被劃分的資料集,第二個是軸線,比如說是第一列,還是第二列,第三個是value,看這一列的數值是否 va...
決策樹 劃分資料集
機器學習實戰 中的 三個輸入引數為 待劃分的資料集 劃分資料集的特徵 需要返回的特徵的值。第4行,如果第axis個特徵滿足分類的條件,則進行以下操作 第5行,featvec axis 是從0號元素開始取axis個元素,此時reducedfeatvec是前axis個元素,即0號到axis 1號元素 第...
決策樹演算法之 劃分資料集
分類演算法除了需要測 資訊熵,還需要劃分資料集。在知道如何得到熵之後,就可以按照獲取最大資訊增益的方法來判斷是否正確地劃分了資料集。對每個特徵劃分資料集的結果計算一次資訊熵,以便判斷按照哪個特徵劃分資料集是最好的劃分方式。根據資訊增益,選擇最優的列來切分資料集 選擇最優的列進行切分 defbests...