機器學習中的決策樹:功能、分類、優缺點

已發表: 2020-05-14

每個人都必須在自己的生活中做出決定。 這些決定取決於情況。 做出正確的決定有助於以最佳方式面對情況,以最直接的方式解決問題。 在童年時期,你的大部分決定都圍繞著你吃什麼以及與你的學校有關的事情。

隨著您的成長,您的決定開始對您的生活以及其他人的生活產生更嚴重的影響。 在您生命中的某個時刻,您將做出有關您的職業或業務的決定。 這個類比是向你介紹機器學習中決策樹的概念。

目錄

什麼是決策樹?

首先,讓我們告訴您決策樹是支持決策的預測模型或工具。 眾所周知,通過使用遵循樹狀結構的設計、設計模型或表示來提供準確的推理。 該模型或機器學習模型的主要目標是考慮目標的某些屬性,然後根據這些屬性做出決策。

決策樹中的大多數決策都遵循條件語句——if 和 else。 為了使決策樹模型比其他模型更好,它將具有更深的結構和更複雜的規則來管理它。 它是機器學習中最受歡迎的監督學習模型之一,並用於許多領域。 它可能看起來像一個流程圖,設計時牢記算法技術,以確保根據條件完成拆分。

這個流程圖的結構非常簡單。 它有一個根節點,作為模型構建的基礎。 然後,一些內部節點和分支分別顯示特徵或測試和測試結果。 葉節點表示一個組,其值與對相關屬性做出決策時所獲得的值相似。

決策樹主要用於分類和回歸問題。 它們用於創建自動預測模型,這些模型不僅服務於機器學習算法應用程序,還服務於統計、數據科學和數據挖掘等領域的多個應用程序。 這些基於樹的結構提供了一些最準確的預測模型,這些模型比大多數其他預測模型更易於解釋且更穩定。

與僅適用於特定數量問題的線性模型不同,基於決策樹的模型也可用於映射非線性關係。 難怪決策樹如此受歡迎。 一個非常重要的原因是最終的決策樹模型很容易理解。 它可以非常清楚地描述預測背後的一切。 它們也是更高級的協作或集成方法的基礎,包括梯度提升、裝袋和隨機森林等。

如何定義決策樹?

現在我們已經對該概念有了基本的了解,讓我們為您定義它。 決策樹是一種有監督的機器學習算法,可用於解決基於分類和基於回歸的問題。 讓我們看看它是如何用於分類的。

讓我們假設有一個我們目前正在處理的數據集。 我們創建了一個可以劃分為不同區域的 2D 平面圖,以便將每個區域中的點指定為同一類。 分割或拆分由唯一字符表示。 這是我們正在研究的二叉樹。

現在,這個決策樹有不同的東西,它們沒有先驗表示,而是使用提供給我們的訓練數據創建的。 這些東西包括這棵樹將擁有的節點數量、它的邊緣定位和它的結構。 我們不會在這裡從頭開始創建樹。 考慮到我們的樹已經在那裡,我們只會繼續前進。

現在,我們如何對新的輸入點進行分類? 我們只需要沿著樹向下移動即可。 在遍歷時,我們將繼續提出關於到達每個節點的數據點的問題。 例如,當我們在根節點問這個問題時,答案要么讓我們向右或向左分支。 一般規則是,如果提出的問題滿足條件中提出的條件,我們必須向左分支。 如果不是真的,我們必須向右分支。 如果我們的條件將我們帶到左節點,我們將知道必須為輸入點分配什麼類。

當談到如何演示決策樹時,有幾件事是永遠不應忘記的。 沒有規則或必要性說我們必須在遍歷決策樹的兩個坐標之間交替。 我們可以選擇只使用一個特徵或維度。 我們需要記住,決策樹可以用於任何維度的數據集。 我們在示例中採用了二維數據,但這並不意味著決策樹僅適用於二維數據集。

結帳:二叉樹的類型

你參加過二十個問題競賽嗎? 它與決策樹的工作方式非常相似。 讓我們看看如何? 二十問遊戲的最終目標是找出回答問題的人在回答問題時所想的對象。 這些問題只能以是或否來回答。

隨著您在遊戲中前進,您將從之前的答案中知道要在遊戲結束之前提出哪些具體問題才能獲得正確答案。 決策樹是您的一系列問題,通過引導您提出更多相關問題來幫助您獲得最終答案。

你還記得你是如何通過語音信箱被引導到你想在公司裡與之交談的人的嗎? 您首先與電腦助手交談,然後按下手機上的一系列按鈕並輸入有關您帳戶的一些詳細信息,然後再聯繫您想要與之交談的人。 這對您來說可能是一個麻煩的經歷,但這就是大多數公司使用決策樹來幫助他們的客戶找到合適的部門或與合適的人交談的方式。 另請閱讀您必須了解的 6 種監督學習。

決策樹如何工作?

思考如何創建完美的決策樹? 正如我們之前提到的,決策樹是一類用於解決屬於分類和回歸類型的機器學習問題的算法。 它既可用於分類變量,也可用於連續變量。

該算法有一種簡單的前進方式——它將數據集或樣本數據劃分為不同的數據集,每個數據集分組在一起共享相同的屬性。 決策樹為不同的目的使用了許多算法——識別分割、最重要的變量以及可以產生更多細分的最佳結果值。

通常,決策樹的工作流程涉及將數據劃分為訓練和測試數據集、算法的應用以及模型性能的評估。 讓我們通過一個非常簡單的例子來了解它是如何工作的。 假設我們要檢查一個人是否適合某項工作。 這將是樹的根。

現在我們轉向樹的特徵或屬性,它們將構成內部節點。 基於這些屬性,將做出決策——樹的分支的形成。 讓我們在這裡做另一個假設。 被認為適合這份工作的人的參數是他們 5 年或更長時間的經驗。 第一次除法將在我們剛剛設置的這個參數上進行。

我們需要更多的參數集來進一步拆分。 這些參數可以是關於他們是否屬於某個年齡組,是否具有一定程度,等等。 結果由樹的葉子來描述,而不是根和樹枝。 葉子從不分裂並描繪決策。 這棵樹將幫助您確定候選人是否適合這份工作。

如前所述,決策樹有自己獨特的表示,可以幫助我們解決問題。 它有根、內部節點、分支和葉子,每個都服務於特定目的或執行特定工作。 這些步驟將幫助您進行樹表示:

  1. 樹的根部具有最佳屬性的優化版本
  2. 使用適當的屬性將樣本數據拆分為子集。 確保新的數據子集或數據組不會為同一屬性攜帶不同的值
  3. 重複上述兩個步驟,直到你的決策樹中的每個分支都有葉子

分類或回歸樹 (CART)

讓我們舉個例子。 想像一下,我們的任務是根據一些預定義的屬性對求職者進行分類,以確保在流程結束時只選擇值得的求職者。 選擇候選人的決定將取決於實時或可能的事件。 我們只需要一個決策樹來找到正確的分類標準。 結果將取決於分類的完成方式。

眾所周知,分類包含兩個步驟。 第一步涉及在樣本數據集上構建隨機模型。 第二步涉及預測——在第一步中訓練的模型被實施以對給定數據的響應進行預測。

現在,在某些情況下,目標變量是實數,或者根據連續數據做出決策。 您可能會被要求根據勞動力成本對物品的價格做出預測。 或者,您可能會被要求根據候選人以前的薪水、技能、經驗和其他相關信息來決定他們的薪水。

在這些情況下,目標值的值要么是某個實際值,要么是與連續數據集相關的值。 我們將使用決策樹的回歸版本來解決這些問題。 這棵樹將考慮對對象特徵所做的觀察,並訓練模型進行預測並提供絕對有意義的連續輸出。

現在讓我們談談分類和回歸決策樹之間的一些異同。 在目標變量本質上是分類的情況下,決策樹被用作分類模型。 訓練數據集在終端節點的頂點處獲得的值等於當我們對該特定部分採用觀察模式時收到的值。 如果有任何新的觀察被添加到樹的那個部分,我們將用眾數替換它,然後進行預測。

另一方面,當目標變量是連續數據集的一部分時,決策樹被用作回歸模型。 在我們討論分類樹的同一點收到的值是該部分中關於回歸樹的觀察值的平均值。

也有一些相似之處。 兩種決策樹模型都使用遞歸二元方法,並將自變量劃分為彼此不重疊且確定的區域。 在這兩棵樹中,劃分都從樹的頂部開始,並且觀測值位於一個區域中。 這些觀察將變量分成兩個分支。 這種分裂是一個持續的過程,它讓位於一棵完全成熟的樹。

閱讀:機器學習項目理念

如何學習 CART 模型?

創建 CART 模型需要做一些重要的事情。 這些包括以正確構建樹的方式選擇輸入變量和分割點。 降低成本函數的貪心算法用於選擇輸入變量以及劃分點。

在預先定義的停止標準的幫助下終止樹的收縮。 停止標準可以提及任何內容,例如將多少訓練實例分配給樹的葉節點。

1.貪心算法:必須正確分割輸入空間才能構建二叉樹。 遞歸二進制拆分是用於此目的的貪心算法。 這是一種數值方法,涉及排列不同的值。 然後使用成本函數來嘗試和測試幾個劃分點。 選擇成本最小的分割點。 此方法用於評估所有除法點以及輸入變量。

2. 樹修剪:停止標準提高了決策樹的性能。 為了使它更好,您可以在學習後嘗試修剪樹。 決策樹的劃分數量說明了它的複雜程度。 每個人都喜歡比其他人更簡單的樹。 它們不會過度擬合數據,而且很容易破譯。

修剪樹的最佳方法是查看每個葉節點並找出刪除它會對樹產生怎樣的影響。 當此操作保證成本函數下降時,將刪除葉節點。 當您認為無法進一步提高性能時,您可以停止此刪除過程。 您可以使用的修剪方法包括

3. 停止條件:我們前面提到的貪婪分裂方法,必須有停止命令或條件才能知道何時停止。 一個常見的標準是獲取每個葉節點已分配的實例數。 如果達到該數字,則不會發生劃分,並且該節點將被視為最後一個。

例如,假設預定義的停止標準被提及為五個實例。 根據訓練數據,這個數字也說明了樹的準確性。 如果它過於精確或精確,則會導致過度擬合,這意味著性能不佳。

如何避免在決策樹中過擬合?

大多數決策樹都存在過擬合。 我們可以構建一個能夠以理想方式對數據進行分類的決策樹,或者我們可能會遇到沒有任何劃分屬性的情況。 這對測試數據集不太適用; 但是,它將適合訓練數據集。 您可以遵循我們將要提到的兩種方法中的任何一種來避免這種情況。

如果樹太大,您可以修剪它,或者在它達到過度擬合狀態之前停止它的生長。 在大多數情況下,定義了一個限制來控制樹的生長,其中提到了深度、層數和它可以擁有的其他東西。 需要在其上訓練樹的數據集將分為測試數據集和訓練數據集。 這兩個數據集都將在訓練數據集的基礎上具有最大深度,並將針對測試數據集進行測試。 您還可以將交叉驗證與此方法一起使用。

當您選擇修剪樹時,您可以對照原始版本測試修剪後的樹版本。 如果在針對測試數據集進行測試時,修剪後的樹的性能優於其版本,那麼只要這種情況持續存在,樹就無法使用葉子。

了解更多: R 中的決策樹

決策樹方法的優點

  1. 它可用於連續數據和分類數據。
  2. 它可以提供多個輸出
  3. 它可以解釋精確的結果,你可以量化和信任樹木的可靠性
  4. 使用這種方法,您可以探索數據,找到重要變量,並找到不同變量之間的關係,從而在更短的時間內加強目標變量並構建新功能。
  5. 易於理解和向他人解釋
  6. 它有助於清理數據。 與其他方法相比,它不會花費太多時間,因為在某個點之後沒有缺失值和異常值對其產生影響
  7. 決策樹的效率和性能不受特徵之間非線性關係的影響
  8. 準備數據不需要太多時間,因為它不需要缺失值替換、數據規範化等。
  9. 這是一種非參數方法。 它與分類器的設計和空間佈置無關

決策樹的缺點

  1. 一些用戶可以構建過於復雜的決策樹,即使他們自己喜歡。 這些樹不像更簡單的樹那樣概括數據。
  2. 有偏差的樹通常是由於某些類的支配而產生的。 這就是為什麼在使用之前平衡樣本數據非常重要的原因
  3. 有時這些樹不太穩定。 數據變化可能導致創建不符合要求的樹。 這種異常被稱為方差。 它可以通過使用boosting和bagging來處理。
  4. 你不能指望用貪心算法得到最好的決策樹。 為了解決這個問題,你可以訓練多棵樹。

結論

該博客討論了學習者需要了解的有關決策樹的所有重要信息。 看完這篇博文,你會對這個概念有更好的理解,在現實生活中你也能更好地實現它。

如果您有興趣了解有關機器學習和人工智能的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為在職專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業, IIIT-B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。

決策樹算法有什麼用?

作為監督學習算法家族的一部分,決策樹是使用最廣泛的分類算法之一。 它很容易理解和解釋,這也是它受歡迎的原因。 可以使用決策樹來開發訓練模型,該模型可以根據從歷史訓練數據得出的簡單決策指令來預測目標變量的值。 決策樹算法最好的一點是它可以有效地解決分類和回歸問題,這是其他監督學習算法無法應用的。 根據目標變量的類型,可以使用不同種類的決策樹。

作為監督學習算法家族的一部分,決策樹是使用最廣泛的分類算法之一。 它很容易理解和解釋,這也是它受歡迎的原因。 可以使用決策樹來開發訓練模型,該模型可以根據從歷史訓練數據得出的簡單決策指令來預測目標變量的值。 決策樹算法最好的一點是它可以有效地解決分類和回歸問題,這是其他監督學習算法無法應用的。 根據目標變量的類型,可以使用不同種類的決策樹。

在 AI 中,決策樹算法具有廣泛的應用。 決策樹的一些最有趣的應用包括根據歷史數據評估公司的潛在增長機會。 為此,歷史銷售數據可以幫助決策樹指明進一步業務擴展和增長的可能途徑。 決策樹還可用於使用人口統計信息來尋找潛在客戶。 此外,金融機構還可以應用決策樹來創建預測模型,以評估客戶和拖欠貸款者的信用。

人工智能中還使用了哪些其他算法?

人工智能中使用的算法可以大致分為三個部分——回歸算法、分類算法和聚類算法。 分類算法用於以特定方式對數據集進行分類。 聚類算法應用於整個數據集,以發現特定數據點之間的差異和相似之處。 它可以用來在一大群客戶中指出同齡人。 回歸算法有助於根據輸入數據預測未來結果。 例如,回歸算法可用於設計預測天氣的模型。