一組含n個例項的資料集,每乙個例項長為m,其中包括m-1個特徵(屬性),最後乙個為該特徵的類別標籤。
在此種資料集的基礎上,有一棵樹,這棵樹上的非葉子節點均為某特徵,葉子節點均為其父節點特徵的特徵值。
那麼這棵樹是怎麼來的?
我們 1.首先要在當前資料集中找到最適合分組的乙個特徵,2. 然後根據這個特徵值的不同將資料分為幾組,3.接著在分組完成後的子資料集中,判斷當前例項的是否都屬於同一類,若是,則結束,若不是,那麼在當前資料集中從第一步迴圈。4.資料集的所有特徵都遍歷完了,結束。
容易知道建樹時會用到遞迴,遞迴結束的兩種情況:1.所有分支下的葉子節點均有同一標籤 2.資料集的所有特徵都遍歷完了。
其中,尋找劃分資料集的最好特徵
為了確定哪乙個特徵是劃分資料的最好特徵,我們需要判斷用哪個特徵劃分後的子資料集資訊增益最高,也就是說劃分後更加有序了,劃分後的子資料集越有序,越說明我們用這個特徵劃分是合理的。
因此,我們要對當前資料集中的每個特徵計算依據其劃分後的資訊增益。
1.取資料集的前m-1列,每列為乙個特徵下的一組值,去重後長為n,
2.依據此n個特徵值將資料分為n組,計算每一組的熵,並對該n組的熵求和,
3.將2所得結果與劃分前初始資料的熵比較得出資訊增益,
4.對m-1個特徵下的一組值均作以上操作,
5.最後求m-1個特徵中資訊增益最高的,此時特徵變為當前的最好劃分特徵。
決策樹之 ID3
id3 是一種用來構建決策樹的演算法,它根據資訊增益來進行屬性選擇。關於決策樹,請參見 此處主要介紹 id3 演算法如何利用資訊增益選擇屬性。資訊熵,簡稱 熵 假定訓練集中目標屬性為 c c的取值為 c1 c2,cm 每個取值佔的比例為p1 p2,pm 則資訊熵的定義為 en trop y s en...
決策樹 ID3構建決策樹
coding utf 8 from math import log import operator 建立訓練資料集 defcreatedataset dataset 1,1,yes 1,1,yes 1,0,no 0,1,no 0,1,no 資料集的最後乙個元素作為該資料的標籤,是否是魚 labels...
決策樹 ID3演算法
id3演算法通過計算每個屬性的資訊增益,認為資訊增益越大屬性越優,每次劃分選取資訊增益最大的屬性為劃分標準,重複這個過程,直到構成一棵決策樹。資訊熵是描述事件給我們的驚訝程度,如果所有事件的概率均等,那熵值大,驚訝程度低。如果有一事件的概率極高而其他極低,熵值便低,驚訝程度大。其計算公式如下 資訊增...