決策樹思路:
建立樹:
獲取所有樣本的標籤列表
如果 標籤列表為同乙個值:
停止劃分
如果 特徵選擇完畢:
返回類別最多的標籤,停止劃分
選擇最好的特徵進行資料樣本的分割,並且返回該特徵的索引值:就是第幾個特徵-----------(1)
獲取到最好特徵的特徵名字
建立以該名字為節點的樹字典
在特徵名稱列表中將這個特徵刪除
獲取最好特徵在整體樣本中的取值並且去重
遍歷所有取值:
獲取剩餘特徵名字
建立以每個值劃分的資料集的樹-------(2)
(1)選擇最好特徵並且返回特徵索引:
獲取資料集的特徵的數量
計算整個資料集的資訊熵 // h(d)
初始化資訊增益和最好特徵索引
遍歷所有特徵:
該特徵在資料集上所有取值並去重
初始化新的資訊熵
遍歷該特徵在資料集上的取值: // 選取該特徵所取最好的值(按照此值進行切分的資訊增益最大)進行資料的劃分
給定特徵以及該值進行資料劃分 ----------(2)
計算在給定特徵條件下的資訊熵----(3) // h(d|a) = (資料切分後的個數 / 總的資料集的個數)* 資料切分後的資訊熵
計算資訊增益
更新資訊增益
更新最好特徵索引
返回最好特徵索引
(2)按照給定值以及特徵索引進行資料的切分
生成乙個切分後的資料list
遍歷所有樣本:
如果 該樣本[特徵索引] == 給定值
獲取該索引前面的值
拼接上該索引後面的值,不包含該索引的值
將分割後的資料新增到切分後的資料list
返回切分後的資料
(3)計算資訊熵:
獲取該樣本的數量
初始化乙個字典,用來統計
遍歷所有樣本:
獲取到該樣本向量的最後面值
如果 該值不在字典的key中:
新增進去,並把值賦為0
將字典中的key等於該值的值+1
初始化資訊熵
遍歷字典的key:
獲取當前key的概率(數量/總量)
計算資訊熵
返回資訊熵
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...
決策樹01 決策樹的原理
此筆記根據 machine learning in action 和周志華教授的 機器學習 所作。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型 machine learning in action if so return 類標籤 else 尋找劃分資料集的最好特徵 劃分資料集 建立分...