[Hands On ML] 6. 决策树
生活随笔
收集整理的這篇文章主要介紹了
[Hands On ML] 6. 决策树
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 訓(xùn)練與可視化
- 2. 分類(lèi)預(yù)測(cè)
- 3. 模型參數(shù)
- 4. 回歸
- 5. 不穩(wěn)定性
本文為《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》的讀書(shū)筆記。
中文翻譯參考
《統(tǒng)計(jì)學(xué)習(xí)方法》決策樹(shù)筆記
決策樹(shù)可以分類(lèi),也可以回歸,還有多輸出任務(wù)
是隨機(jī)森林的基礎(chǔ)組成部分
1. 訓(xùn)練與可視化
from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X = iris.data[:, 2:] # petal length and width y = iris.target tree_clf = DecisionTreeClassifier(max_depth=2) tree_clf.fit(X, y) from sklearn.tree import export_graphviz export_graphviz(tree_clf,out_file="iris_tree.dot",feature_names=iris.feature_names[2:],class_names=iris.target_names,rounded=True,filled=True)安裝好Graphviz,在cmd下輸入 dot -Tpng iris_tree.dot -o iris_tree.png # cmd,生成決策樹(shù)可視化圖片
2. 分類(lèi)預(yù)測(cè)
決策樹(shù)特性:不需要太多的數(shù)據(jù)預(yù)處理,尤其是不需特征縮放或歸一化
tree_clf.predict_proba([[5,1.5]]) # array([[0. , 0.90740741, 0.09259259]]) tree_clf.predict([[5,1.5]]) # array([1])- 預(yù)測(cè)時(shí)間復(fù)雜度:O(log?2m)O(\log_2m)O(log2?m),與特征數(shù)量無(wú)關(guān),m為樣本數(shù)
- 訓(xùn)練時(shí)間復(fù)雜度:O(nmlog?m)O(nm\log m)O(nmlogm) ,n 為特征數(shù)量max_features
通常,算法使用 Gini 不純度來(lái)進(jìn)行檢測(cè),也可以設(shè)置為entropy
- 基尼指數(shù)計(jì)算稍微快一點(diǎn),SKlearn默認(rèn)值
- 基尼指數(shù)會(huì)趨于在樹(shù)的分支中將最多的類(lèi)隔離出來(lái)
- 熵指數(shù)趨向于產(chǎn)生略微平衡一些的決策樹(shù)模型
3. 模型參數(shù)
決策樹(shù)不需要事先設(shè)置參數(shù),不添加約束的決策樹(shù)模型,能很好的擬合數(shù)據(jù),容易過(guò)擬合
- min_samples_split(節(jié)點(diǎn)在被分裂之前必須具有的最小樣本數(shù))
- min_samples_leaf(葉節(jié)點(diǎn)必須具有的最小樣本數(shù))
- min_weight_fraction_leaf(和min_samples_leaf相同,但表示為加權(quán)總數(shù)的一小部分實(shí)例)
- max_leaf_nodes(葉節(jié)點(diǎn)的最大數(shù)量)
- max_features(在每個(gè)節(jié)點(diǎn)被評(píng)估是否分裂的時(shí)候,具有的最大特征數(shù)量)
- 增加min_* hyperparameters或者減少max_* hyperparameters會(huì)使模型正則化。
使用假設(shè)檢驗(yàn)進(jìn)行剪枝
上圖左側(cè)沒(méi)有剪枝,模型過(guò)擬合了
4. 回歸
同樣需要設(shè)置合理的參數(shù),左側(cè)過(guò)擬合了
5. 不穩(wěn)定性
- 決策樹(shù) 對(duì)旋轉(zhuǎn)很敏感,可以使用 PCA 主成分分析,緩解
- 決策樹(shù) 對(duì)訓(xùn)練數(shù)據(jù)的微小變化非常敏感,隨機(jī)森林可以通過(guò)多棵樹(shù)的平均預(yù)測(cè)值限制這種不穩(wěn)定性
總結(jié)
以上是生活随笔為你收集整理的[Hands On ML] 6. 决策树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 599. 两个列表的最
- 下一篇: [scikit-learn 机器学习]