1.決策樹模型與學習
決策樹:分類決策樹模型是一種描述對例項進行分類的樹形結構。
組成:節點(node)和有向邊(directed edge)
節點型別:內部節點(internal node):特徵或屬性,葉節點(leaf node):類。
if-then規則的集合
特徵空間與類空間上的條件概率分布
決策樹學習本質:從訓練資料集中歸納出一組分類規則
2.特徵選擇
特徵選擇的準則:資訊增益或資訊增益比。
正則化:加與類別個數成正比的正則項;使用資訊增益比。
熵(entropy):表示隨機變數不確定性的度量。
條件熵:
資訊增益(information gain) g(d,a)=h(d)-h(d|a) 資訊增益大的特徵具有更強的分類能力
資訊增益比:
基尼不純度(gini impurity)
3.決策樹的生成
id3 核心:資訊增益選擇特徵(偏向於選擇取值較多的特徵的問題)
c4.5核心:資訊增益比選擇特徵
4.決策樹的剪枝
1)前剪枝
在構造決策樹的同時進行剪枝。
資訊熵減小的數量小於某個閾值,即使還可以繼續降低熵,也停止繼續建立分支。限制葉子節點的樣本個數。
2)後剪枝
通過遍歷所有子樹
損失函式的極小值等價於正則化的極大似然估計
5.cart演算法
classification and regression tree
決策樹生成,決策樹剪枝
對回歸樹用平方誤差最小化準則,對分類樹用基尼指數(gini index)最小化準則
6.集合演算法(ensemble)
是一種元演算法(meta-algorithm)
1)自助聚合演算法 bagging
採用有放回的取樣規則,建立多個樹。
2)正向激勵演算法boosting
給每個樣本分配乙個初識權重
3)隨機森林
從n個特徵裡,採用無放回取樣規則,從中取出f個特徵作為輸入特徵
4)extratrees演算法
直接從特徵裡隨機選擇乙個特徵來**
7.例項:鐵達尼號倖存者
(1)資料分析
(2)模型訓練
(3)優化模型引數
decisiontreeclassifier(max_depth=d)
decisiontreeclassifier(criterion='gini',min_impurity_split=val)
(4)模型引數選擇工具包
1)選擇乙個引數的最優值
threshold=np.linspace(0,0.5,50)
param_grid=
clf=gridsearchcv(decisiontreeclassifier(),param_grid,cv=5)
2)多組引數選擇最優值
param_grid=[,,,
]clf=gridsearchcv(decisiontreeclassifier(),param_grid,cv=5)
(5)提交資料
test=read_dataset('/desktop/scikit-learn/code/datasets/titanic/test.csv')
clf=decisiontreeclassifier(criterion='gini',min_impurity_decrease=best_param)
clf.fit(x,y)
y_predict=clf.predict(test.values)
df=pd.dataframe(y_predict,index=test.index,columns=['survived'])
df.index.name='passengerid';
df.to_csv('/desktop/predict.csv',)
!注意:
決策樹只能處理離散化資料,連續性資料需要先進行離散化。
機器學習 決策樹
一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...
機器學習 決策樹
一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...