資料探勘演算法 1 ID3(python)

2022-04-08 13:52:58 字數 2625 閱讀 5391

一 概念公式:

1資訊熵:

若有n個訊息,其給定各個方向概率分布為p=(p1,p2…pn),則由該分布傳遞的資訊量稱為p的熵,記為

2:資訊增益:

資訊增益度是兩個資訊熵之間的差值,記為gain(p1)=entropy(p0,p1)-entropy(p0)

二 演算法思想:

首先計算各個屬性的所有取值的資訊熵,然後根據當前屬性的取值概率計算出當前屬性的總的資訊熵,接下來計算當前屬性的資訊增益度,最後通過所有屬性的資訊增益比較,增益大的先構造來構造決策樹。希望隨著決策樹深度的增加,節點的熵迅速地降低,並且熵降低的速度越快越好,這樣我們有望得到一棵高度最矮的決策樹。

三 例項題目:

我們統計了14天的氣象資料(指標包括outlook,temperature,humidity,windy),並已知這些天氣是否打球(play)。如果給出新一天的氣象指標資料:sunny,cool,high,true,判斷一下會不會去打球。

outlook

temperature

humidity

windy

play

sunny

hothigh

false

nosunny

hothigh

true

noovercast

hothigh

false

yesrainy

mild

high

false

yesrainy

cool

normal

false

yesrainy

cool

normal

true

noovercast

cool

normal

true

yessunny

mild

high

false

nosunny

cool

normal

false

yesrainy

mild            

normal  

false  

yessunny

mild

normal

true

yesovercast

mild

high

true

yesovercast

hotnormal

false

yesrainy

mild

high

true

no四例項解剖

1.目標:屬性有4個:outlook,temperature,humidity,windy。我們首先要決定哪個屬性作樹的根節點。

2.計算:對每項指標分別統計:在不同的取值下打球和不打球的次數。設打球概率為p(y),不打球概率為p(n)

outlook=sunny時,p(y)=2/5,p(n)=3/5。此時entropy(sunny)=0.970

outlook=overcast時,p(y)=1,p(n)=0,此時entropy(overcast)=0

outlook=rainy時,p(y)=3/5,p(n)=2/5,entropy(rainy)=-3/5log2(3/5)-2/5log2(2/5)=0.442+0.528=0.970

而根據歷史統計資料,outlook p(sunny)=5/14,p(overcast)=4/14, p(rainy)=5/14,

所以entropy(outlook)=p(sunny)*entropy(sunny)+p(overcast)*entropy(overcast)+ p(rainy)* entropy(rainy)

=5/14× 0.971 + 4/14 × 0 + 5/14 × 0.971 = 0.693

這樣的話系統熵就從0.940下降到了0.693,資訊增溢gain(outlook)為0.940-0.693=0.247

同樣可以計算出gain(temperature)=0.029,gain(humidity)=0.152,gain(windy)=0.048。

gain(outlook)最大(即outlook在第一步使系統的資訊熵下降得最快),所以決策樹的根節點就取outlook。

接下來要確定n1取temperature、humidity還是windy?在已知outlook=sunny的情況,根據歷史資料,我們作出類似table 2的一張表,分別計算

gain(temperature)、gain(humidity)和gain(windy),選最大者為n1。

3.依此類推,構造決策樹。當系統的資訊熵降為0時,就沒有必要再往下構造決策樹了,此時葉子節點都是純的--這是理想情況。最壞的情況下,決策樹的高度為屬性(決策變數)的個數,葉子節點不純(這意味著我們要以一定的概率來作出決策)。

五例項實現:

資料探勘 Python實現ID3演算法

import math defcreatedataset dataset 1,1,yes 1,1,yes 1,0,no 0,1,no 0,1,no 資料集的最後一列稱作value,label稱作attr labels no su cing flippers return dataset,labels...

資料探勘演算法 決策樹ID3演算法

id3演算法是一種分類 演算法,其核心思想是 資訊熵 id3演算法通過計算每個屬性的資訊增益,認為資訊增益高的是好屬性,每次劃分選取資訊增益最高的屬性為劃分標準,重複這個過程,直至生成乙個能完美分類訓練樣例的決策樹。該決策樹方法先根據訓練集資料形成決策樹,如果該樹不能對所有物件給出正確地分類那麼選擇...

資料探勘實驗 決策樹演算法之ID3演算法

1 熟悉id3演算法建立決策樹的基本步驟,針對所給資料集建立決策樹,給出規則集。2 熟悉spss clementine分布圖 散點圖 網路圖的建立方法,預習用clementine中c5.0節點建立決策樹。1 決策樹基本概念 決策樹是乙個類似於流程圖的樹結構,其中每個內部結點表示在乙個屬性上的測試,每...