0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

構(gòu)建一個(gè)決策樹并查看它如何進(jìn)行預(yù)測(cè)

lviY_AI_shequ ? 來源:未知 ? 作者:李倩 ? 2018-07-16 17:12 ? 次閱讀

與支持向量機(jī)一樣,決策樹也是多功能的機(jī)器學(xué)習(xí)算法,既可以執(zhí)行分類任務(wù),也可以執(zhí)行回歸任務(wù),甚至可以執(zhí)行多輸出任務(wù)。 它們是非常強(qiáng)大的算法,能夠完美契合復(fù)雜的數(shù)據(jù)集。 例如,在第 2 章中,我們?cè)诩永D醽喿》繑?shù)據(jù)集上訓(xùn)練了一個(gè) DecisionTreeRegressor 模型,并對(duì)其進(jìn)行了完美擬合(實(shí)際上是對(duì)其進(jìn)行過度擬合)。 決策樹也是隨機(jī)森林的基本組成部分(參見第 7 章),它是當(dāng)今最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一。 在本章中,我們將首先討論如何使用決策樹進(jìn)行訓(xùn)練,可視化和預(yù)測(cè)。 然后快速過一遍 Scikit-Learn 中使用的 CART 訓(xùn)練算法,并且討論如何調(diào)整樹并將其用于回歸任務(wù)。 最后,我們會(huì)討論決策樹的一些局限性。

訓(xùn)練和可視化決策樹

為了理解決策樹,我們只需構(gòu)建一個(gè)決策樹并查看它如何進(jìn)行預(yù)測(cè)。 以下代碼在鳶尾屬植物數(shù)據(jù)集上訓(xùn)練決策樹分類器(請(qǐng)參閱第4章):

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)

首先,我們可以通過使用 export_graphviz() 方法輸出一個(gè)名為 iris_tree.dot 的圖形定義文件來可視化已訓(xùn)練出來的決策樹:

from sklearn.tree import export_graphviz export_graphviz( tree_clf, out_file=image_path("iris_tree.dot"), feature_names=iris.feature_names[2:], class_names=iris.target_names, rounded=True, filled=True )

然后,w我們可以使用 graphviz 軟件包中的 dot 命令行工具將此 .dot 文件轉(zhuǎn)換為各種格式,例如 PDF 或 PNG 。下面的命令行將 .dot 文件轉(zhuǎn)換為 .png 圖像文件:

$ dot -Tpng iris_tree.dot -o iris_tree.png

我們的第一個(gè)決策樹如圖6-1所示。

預(yù)測(cè)

讓我們看看圖 6-1 中所呈現(xiàn)的樹如何進(jìn)行預(yù)測(cè)。假設(shè)我們找到了一種鳶尾花,并且想對(duì)它進(jìn)行分類。我們從根節(jié)點(diǎn)開始(深度0,頂部):該節(jié)點(diǎn)詢問花朵的花瓣長度是否小于2.45厘米。如果是,則向下移動(dòng)到根的左側(cè)子節(jié)點(diǎn)(深度1,左側(cè))。在這種情況下,它是一個(gè)葉子節(jié)點(diǎn)(即它沒有任何子節(jié)點(diǎn)),所以它不會(huì)提出任何問題:我們可以簡單地查看該節(jié)點(diǎn)的預(yù)測(cè)類,決策樹預(yù)測(cè)我們的花是一個(gè)Iris-Setosa(class = setosa)。 現(xiàn)在假設(shè)你找到另一朵花,但這次花瓣長度大于2.45厘米。我們必須向下移動(dòng)到根節(jié)點(diǎn)的右側(cè)(深度1,右側(cè)),這不是葉子節(jié)點(diǎn),因此它會(huì)提出另一個(gè)問題:花瓣寬度是否小于1.75厘米?如果是這樣,那么我們的花很可能是一個(gè) Iris-Versicolor(深度 2,左)。如果不是,它可能是一個(gè) Iris-Virginica(深度 2,右)。就是這么簡單。

決策樹的許多特質(zhì)之一是它們只需很少的數(shù)據(jù)準(zhǔn)備。 特別是,它們不需要特征縮放或居中。

每個(gè)節(jié)點(diǎn)的樣本屬性計(jì)算它應(yīng)用于的訓(xùn)練實(shí)例的數(shù)量。 例如,100 個(gè)訓(xùn)練樣本的花瓣長度大于 2.45 厘米(深度1,右側(cè)),其中 54 個(gè)花瓣寬度小于 1.75 厘米(深度2,左側(cè))。 節(jié)點(diǎn)的值屬性告訴您此節(jié)點(diǎn)適用的每個(gè)類的訓(xùn)練實(shí)例數(shù)量:例如,右下角節(jié)點(diǎn)適用于 0 Iris-Setosa,1 Iris-Versicolor和 45 Iris-Virginica。 最后,節(jié)點(diǎn)的 gini 屬性測(cè)量它的雜質(zhì):如果它適用的所有訓(xùn)練實(shí)例屬于同一個(gè)類,則節(jié)點(diǎn)是“純的”(gini = 0)。 例如,由于深度 1 左節(jié)點(diǎn)僅適用于 Iris-Setosa 訓(xùn)練實(shí)例,因此它是純的,其基尼分?jǐn)?shù)為 0。等式 6-1 顯示訓(xùn)練算法如何計(jì)算出第 i 個(gè)節(jié)點(diǎn)的 gini 分?jǐn)?shù)Gi。 例如,深度 2 左節(jié)點(diǎn)的基尼分?jǐn)?shù)等于

接下來討論另一種純度測(cè)量方法。

? 其中 p_{i,k} 是第 i 個(gè)節(jié)點(diǎn)中訓(xùn)練實(shí)例之間的 k 類實(shí)例的比率。

Scikit-Learn使用只生成二叉樹的CART算法:非葉節(jié)點(diǎn)總是有兩個(gè)孩子(即問題只有yes / no的答案)。 但是,其他算法(如ID3)生成的決策樹,可以具有兩個(gè)以上孩子的節(jié)點(diǎn)。

圖 6-2 顯示了決策樹的決策邊界。 粗的垂直線代表根節(jié)點(diǎn)(深度 0 )的決定邊界:花瓣長度 = 2.45厘米。 由于左側(cè)區(qū)域是純粹的(只有Iris-Setosa),所以不能再進(jìn)一步分割。 然而,右側(cè)區(qū)域不純,所以深度 1 右節(jié)點(diǎn)在花瓣寬度 = 1.75厘米(用虛線表示)分裂。 由于 max_depth 設(shè)置為 2,因此決策樹在此處停止。 但是,如果將max_depth設(shè)置為3,那么兩個(gè)深度 2 節(jié)點(diǎn)將分別添加另一個(gè)決策邊界(用虛線表示)。

模型解讀:白盒與黑盒

正如你所看到的,決策樹非常直觀,他們的決策很容易解釋。 這種模型通常被稱為白盒模型。 相反,正如我們將看到的,隨機(jī)森林或神經(jīng)網(wǎng)絡(luò)通常被認(rèn)為是黑匣子模型。 他們做出了很好的預(yù)測(cè),并且我們可以輕松檢查他們執(zhí)行的計(jì)算以進(jìn)行這些預(yù)測(cè); 然而,通常很難用簡單的術(shù)語來解釋為什么會(huì)做出預(yù)測(cè)。 例如,如果一個(gè)神經(jīng)網(wǎng)絡(luò)表示一個(gè)特定的人出現(xiàn)在圖片上,很難知道究竟是什么促成了這個(gè)預(yù)測(cè):模型是否認(rèn)出了這個(gè)人的眼睛? 她的嘴? 她的鼻子? 她的鞋子? 或者甚至坐在沙發(fā)上? 相反,決策樹提供了好且簡單的分類規(guī)則,甚至可以根據(jù)需要手動(dòng)調(diào)參(例如,用于花卉分類)。

估計(jì)屬于各類的概率

決策樹還可以估計(jì)實(shí)例屬于特定類 k 的概率:首先遍歷樹來找到此實(shí)例的葉子節(jié)點(diǎn),然后返回該節(jié)點(diǎn)中類 k 的訓(xùn)練實(shí)例的比率。 例如,假設(shè)你已經(jīng)找到一朵花長 5厘米,寬 1.5 厘米的花朵。 相應(yīng)的葉子節(jié)點(diǎn)是深度為 2 的左節(jié)點(diǎn),因此決策樹應(yīng)該輸出以下概率:Iris-Setosa(0/54)為 0%,Iris-Versicolor為 (49/54),即 90.7%, Iris-Virginica (5/54),即 9.3 %。 當(dāng)然,如果你讓它預(yù)測(cè)類別,它應(yīng)該輸出Iris-Versicolor(類別 1),因?yàn)樗哂凶罡叩母怕省?讓我們來檢查一下:

>>> tree_clf.predict_proba([[5, 1.5]]) array([[ 0. , 0.90740741, 0.09259259]]) >>> tree_clf.predict([[5, 1.5]]) array([1])

完美! 請(qǐng)注意,估計(jì)的概率在圖 6-2 的右下方矩形的其他任何地方都是相同的,比如說花瓣長 6 厘米,寬 1.5 厘米(盡管在這種情況下很明顯它更有可能是 Iris -Virginica)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:【翻譯】Sklearn 與 TensorFlow 機(jī)器學(xué)習(xí)實(shí)用指南 —— 第6章 決策樹

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于決策樹,這些知識(shí)點(diǎn)不可錯(cuò)過

    利用決策樹算法構(gòu)建個(gè)初始的之后,為了有效的分類,還要對(duì)其進(jìn)行剪枝,剪枝是為了減少過擬合現(xiàn)象。
    發(fā)表于 05-23 09:38

    ML之決策樹與隨機(jī)森林

    ML--決策樹與隨機(jī)森林
    發(fā)表于 07-08 12:31

    介紹支持向量機(jī)與決策樹集成等模型的應(yīng)用

    本文主要介紹支持向量機(jī)、k近鄰、樸素貝葉斯分類 、決策樹決策樹集成等模型的應(yīng)用。講解了支持向量機(jī)SVM線性與非線性模型的適用環(huán)境,對(duì)核函數(shù)技巧作出深入的分析,對(duì)線性Linear核函數(shù)、多項(xiàng)式
    發(fā)表于 09-01 06:57

    決策樹的生成資料

    在本文中,我們將討論種監(jiān)督式學(xué)習(xí)算法。最新代意法半導(dǎo)體 MEMS 傳感器內(nèi)置個(gè)基于決策樹分類器的機(jī)器學(xué)習(xí)核心(MLC)。這些產(chǎn)品很容易
    發(fā)表于 09-08 06:50

    個(gè)基于粗集的決策樹規(guī)則提取算法

    個(gè)基于粗集的決策樹規(guī)則提取算法:摘要:決策樹是數(shù)據(jù)挖掘任務(wù)中分類的常用方法。在構(gòu)造決策樹的過程中,分離屬性的選擇標(biāo)準(zhǔn)直接影響到分類的效果,
    發(fā)表于 10-10 15:13 ?12次下載

    改進(jìn)決策樹算法的應(yīng)用研究

    該方法利用決策樹算法構(gòu)造決策樹,通過對(duì)分類結(jié)果中主客觀屬性進(jìn)行標(biāo)記邏輯運(yùn)算,最終得到較客觀的決策信息,并
    發(fā)表于 02-07 11:38 ?27次下載
    改進(jìn)<b class='flag-5'>決策樹</b>算法的應(yīng)用研究

    決策樹的介紹

    關(guān)于決策樹的介紹,是些很基礎(chǔ)的介紹,不過是英文介紹。
    發(fā)表于 09-18 14:55 ?0次下載

    決策樹構(gòu)建設(shè)計(jì)并用Graphviz實(shí)現(xiàn)決策樹的可視化

    種涉及到的算法進(jìn)行總結(jié)附上自己相關(guān)的實(shí)現(xiàn)代碼。所有算法代碼以及用于相應(yīng)模型的訓(xùn)練的數(shù)據(jù)都會(huì)放到GitHub上。 本文中我將步步通過MLiA的隱形眼鏡處方數(shù)集構(gòu)建
    發(fā)表于 11-15 13:10 ?1.5w次閱讀
    <b class='flag-5'>決策樹</b>的<b class='flag-5'>構(gòu)建</b>設(shè)計(jì)并用Graphviz實(shí)現(xiàn)<b class='flag-5'>決策樹</b>的可視化

    決策樹的原理和決策樹構(gòu)建的準(zhǔn)備工作,機(jī)器學(xué)習(xí)決策樹的原理

    希望通過所給的訓(xùn)練數(shù)據(jù)學(xué)習(xí)個(gè)貸款申請(qǐng)的決策樹,用于對(duì)未來的貸款申請(qǐng)進(jìn)行分類,即當(dāng)新的客戶提出貸款申請(qǐng)時(shí),根據(jù)申請(qǐng)人的特征利用決策樹決定是否
    的頭像 發(fā)表于 10-08 14:26 ?6013次閱讀

    決策樹的構(gòu)成要素及算法

    決策樹種解決分類問題的算法,決策樹算法采用樹形結(jié)構(gòu),使用層層推理來實(shí)現(xiàn)最終的分類。
    發(fā)表于 08-27 09:52 ?4372次閱讀

    決策樹的基本概念/學(xué)習(xí)步驟/算法/優(yōu)缺點(diǎn)

    本文將介紹決策樹的基本概念、決策樹學(xué)習(xí)的3個(gè)步驟、3種典型的決策樹算法、決策樹的10個(gè)優(yōu)缺點(diǎn)。
    發(fā)表于 01-27 10:03 ?2651次閱讀
    <b class='flag-5'>決策樹</b>的基本概念/學(xué)習(xí)步驟/算法/優(yōu)缺點(diǎn)

    什么是決策樹模型,決策樹模型的繪制方法

    決策樹種解決分類問題的算法,本文將介紹什么是決策樹模型,常見的用途,以及如何使用“億圖圖示”軟件繪制決策樹模型。
    發(fā)表于 02-18 10:12 ?1.3w次閱讀
    什么是<b class='flag-5'>決策樹</b>模型,<b class='flag-5'>決策樹</b>模型的繪制方法

    決策樹的結(jié)構(gòu)/優(yōu)缺點(diǎn)/生成

    決策樹(DecisionTree)是機(jī)器學(xué)習(xí)中種常見的算法,的思想非常樸素,就像我們平時(shí)利用選擇做決策的過程。決策樹
    發(fā)表于 03-04 10:11 ?8331次閱讀

    基于遺傳優(yōu)化決策樹的建筑能耗預(yù)測(cè)模型

    基于遺傳優(yōu)化決策樹的建筑能耗預(yù)測(cè)模型
    發(fā)表于 06-27 16:19 ?6次下載

    大數(shù)據(jù)—決策樹

    認(rèn)為是if-then的集合,也可以認(rèn)為是定義在特征空間與類空間上的條件概率分布。 決策樹通常有三個(gè)步驟:特征選擇、決策樹的生成、決策樹的修剪。 用
    的頭像 發(fā)表于 10-20 10:01 ?1217次閱讀