讀書筆記 機器學習實戰 第六章 決策樹

2021-09-12 02:23:57 字數 2449 閱讀 3139

閱讀書籍為《hands-on machine learning with scikit-learn & tensorflow》王靜源等翻譯的中文譯版《機器學習實戰,基於 scikit-learn 和 tensorflow》

本章主要內容有:

**實現決策樹分類和回歸

**實現決策樹視覺化

決策樹分類和回歸的原理

sklearn中的cart訓練演算法

決策樹(decisiontree):是一種多功能的機器學習演算法,可以用來實現分類,回歸問題和多輸出問題;決策樹是隨機森林的基本組成部分,多個決策樹組成乙個隨機森林;決策樹不需要對資料進行特徵縮放或集中。決策樹很容易解釋理解,實現起來也很簡單,但決策樹對資料旋轉十分敏感,對訓練細節也很敏感。

1.決策樹分類和決策樹回歸

決策樹分類

sklearn通過decisiontreeclassification函式來構建決策樹,完成分類任務;

使用 鳶尾花資料集

iris = load_iris()

clf = tree.decisiontreeclassifier()

clf = clf.fit(iris.data, iris.target)

決策樹回歸

sklearn通過decisiontreeregression函式來構建決策樹,完成回歸任務;

tree_reg = decisiontreeregressor()

tree_reg.fit(iris.data, iris.target)

2.決策樹視覺化

一般呼叫決策樹export_graphviz函式先輸出乙個圖形定義檔案

然後使用graphviz的dot函式進行圖形定義檔案(.dot檔案)到圖的轉化

dot轉化後也可以輸出儲存為pdf等多種型別

export_graphviz(

tree_clf,

out_file="iris_tree.dot",

feature_names=["petal length ", "petal width"],

class_names=iris.target_names,

rounded=true,

filled=true

)

視覺化這部分沒有按照書上說的使用命令列實現,我使用graphviz的bin目錄下**edit.exe直接轉換生成。

3.決策樹分類和回歸的原理

4.sklearn中的cart訓練演算法

sklearn使用分類與回歸樹簡稱cart演算法來訓練決策樹。演算法原理:首先使用單個特徵k和閾值t(例如花瓣的長度閾值)將訓練集分為兩個子集。然後在使用相同的邏輯繼續**子集,直到抵達最大深度(這塊由超引數max_depth控制),或者到達不能再繼續降低不純度的分類就停止。

k和t由最小化成本函式計算而得,成本函式如下:

1.m left/right:表示左右例項數量;

2.g left/right:表示左右的例項不純度;

3.也可以通過附加的min_samples_split, min_samples_leaf,min_weigth_fraction_left和max_leaf_nodes來控制停止;

衡量不純度的另一種方法–資訊熵:

一般預設基尼不純度來衡量純度,不過也可以通過為超引數賦值「entropy」進行資訊熵衡量純度;此方法**於熱力學中熵的概念。在當前業務領域中純度衡量的資訊熵公式如下:

資訊熵與基尼不純度的區別:

資訊熵趨向於建立更平衡的樹,基尼不純度傾向於從樹枝中**出最常見的類別;

防止過擬合-正則化超引數:

樹的結構將跟隨訓練集變化,如果不加以限制,則會出現嚴重擬合的情況,這裡我們通過控制一些超引數來避免這樣的情況:

max_depth:控制樹的深度

min_samples_split(**前節點必須由的最小樣本數),min_samples_leaf(葉子結點必須有的最小樣本數量),min_weigth_fraction_left(加權例項總數的佔比)和max_leaf_nodes(最大葉結點數):控制樹的形狀

通過以上,可以明顯感到決策樹很容易解釋理解,實現起來也很簡單,但決策樹對資料旋轉十分敏感,對訓練細節也很敏感。有明顯的不穩定性。對此,下一章隨機森林將通過對許多樹的**進行平均來限制這種不穩定性。

第六章讀書筆記

linux系統將每個驅動都對映成乙個檔案,這些檔案稱為裝置檔案或驅動檔案,都儲存在 dev目錄中。編寫linux驅動程式的步驟 第1 步 建立linu x 驅動骨架 裝載和解除安裝linu x 驅動 第2 步 註冊和登出裝置檔案 第3 步z 指定與驅動相關的資訊 第4 步 指定 函式 第5 步z 編...

第六章 讀書筆記

第六章主要講的是第乙個linux 驅動程式 統計單詞個數。從這章開始進入了實戰階段,這一章首先介紹了linux 驅動的工作方式,linux 將每乙個驅動都對映成乙個檔案,這些檔案被稱為裝置檔案或驅動檔案,都儲存在 dev 目錄中,使得 linux 驅動互動就像是普通檔案互動一樣。編寫linux 驅動...

C Primer 讀書筆記 第六章

第 章 語句 簡單語句 表示式語句 expression r statement 乙個表示式加上結尾的分號,執行時導致該表示式被求值 空語句 null statement 只由乙個單獨的分號組成,當語法上需要乙個語句但邏輯上並不需要時使用 宣告語句 用於宣告或定義物件或類 復合語句 復合語句 com...