決策樹容易過擬合,尤其是在你具有包含大量特徵的資料時,複雜的決策樹可能會過擬合資料
輸出是連續或離散,分為回歸和分類
名詞:例項:輸入
函式目標:答案
假設類:願意考慮的所有函式
訓練集:由所有的輸入和與之配對的標籤組成的集合
候選者:可能會使目標函式
測試集
決策樹有特定的表示
決策節點:挑選乙個特定的屬性,提出該屬性的問題,答案就是邊所表示的值
順序是由根節點到輸出
構建決策樹:
1.挑選乙個最佳屬性(將事物大致一分為二的同一特性)
2.提出問題
3.沿著答案的路徑
3 返回1
直到把可能性空間縮小到乙個示例
決策樹可表達性:
and,or:複雜度n
xor:複雜度o(2^n)
決策樹數量:2^2^n
需要用明智的演算法選擇合適的決策樹:
id3:
輸入:樣本集合s,屬性集合a
輸出:id3決策樹。
1) 若所有種類的屬性都處理完畢,返回;否則執行2)
2)計算出資訊增益最大屬性a,把該屬性作為乙個節點。
如果僅憑屬性a就可以對樣本分類,則返回;否則執行3)
3)對屬性a的每個可能的取值v,執行一下操作:
i. 將所有屬性a的值是v的樣本作為s的乙個子集sv;
ii. 生成屬性集合at=a-;
iii.以樣本集合sv和屬性集合at為輸入,遞迴執行id3演算法;
最佳屬性標準(資訊增益):
s:訓練樣本的集合
a:特定屬性
gain(s,a)=熵(s)-(具有特定值的每個樣本集的預期或平均熵)
熵:測量隨機性的一種方法
比如說將出現的紅色 x 的數量和將出現的綠色 o 的數量,如果它們均勻分割 則它們的熵會是最大值。
在你可能看到的所有可能值中求和,該值的概率乘以該值的概率的對數,再乘以負一
id3偏差:
限定偏差:集合(決策樹可以在目前已提供離散變數的所有情況中表示的函式)
優選偏差:子集
偏向好的分割靠近頂部
偏向正確的答案
偏向更短的樹
樹過大過複雜,違反奧卡姆剃刀定律,會造成過擬合。交叉驗證,剪枝等
from sklearn import tree
from class_vis import prettypicture, output_image
clf = tree.decisiontreeclassifier()
clf.fit(features_train, labels_train)
prettypicture(clf, features_test, labels_test)
output_image("test.png", "png", open("test.png", "rb").read())
機器學習筆記 決策樹學習
決策樹學習是一種逼近離散值目標函式的方法,在這樣的方法中學習到的函式被表示為一棵決策樹。表示法 把例項從根節點排列到某個葉子節點來分類例項,葉子節點即為例項所屬的分類。樹上的每個節點指定了對例項的某個屬性 attribute 的測試,而且該節點的每個字尾分支相應於該屬性的乙個可能值。分類例項的方法是...
機器學習 決策樹
一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...