typeerror: 'dict_keys' object does not support indexing
9.typeerror: 『dict_keys』 object does not support indexing
這個問題是python版本的問題
#如果使用的是python2
firststr = mytree.keys()[0]
#lz使用的是python3
firstsides = list(mytree.keys())
firststr = firstsides[0]12345
這是看決策樹**出現的問題,python3如果執行
firststr = mytree.keys()[0]1
就會報這個錯誤,解決辦法就是先轉換成list,再把需要的索引提取出來。
nameerror: name 'trainlabel' is not defined
def labelcount(self, dataset):
labelcount = {}
for i in dataset:
if trainlabel[i] in labelcount.keys():
labelcount[trainlabel[i]] += 1
else:
labelcount[trainlabel[i]] = 1
return labelcount
# 改為
def labelcount(self, dataset):
labelcount = {}
for i in dataset:
if self.trainlabel[i] in labelcount.keys():
labelcount[self.trainlabel[i]] += 1
else:
labelcount[self.trainlabel[i]] = 1
return labelcount
決策樹 ID3演算法
id3演算法通過計算每個屬性的資訊增益,認為資訊增益越大屬性越優,每次劃分選取資訊增益最大的屬性為劃分標準,重複這個過程,直到構成一棵決策樹。資訊熵是描述事件給我們的驚訝程度,如果所有事件的概率均等,那熵值大,驚訝程度低。如果有一事件的概率極高而其他極低,熵值便低,驚訝程度大。其計算公式如下 資訊增...
決策樹 ID3演算法
一 決策樹基本概念 在機器學習中,決策樹是乙個 模型,它代表的是物件屬性與物件值之間的一種對映關係。本質上決策樹是通 過一系列規則對資料進行分類的過程。下圖為經典決策樹例項。如圖所示,例項是由 屬性 值 對表示的 例項是用一系列固定的屬性和他們的值構成。目標函式具有離散的輸出值 上圖給每個例項賦予乙...
決策樹 ID3演算法
id3演算法也叫決策樹歸納演算法,不是很使用,但是是決策樹演算法的開山之作,這裡簡單說下 在資訊理論中,熵 entropy 是隨機變數不確定性的度量,也就是熵越大,則隨機變數的不確定性越大。設x是乙個取有限個值得離散隨機變數,其概率分布為 則隨機變數x的熵定義為 設有隨機變數 x,y 其聯合概率分布...