15讀《演算法基礎》有感 決策樹

2021-10-06 22:25:43 字數 1345 閱讀 2567

學完本學期的《演算法設計與分析基礎》,想對「決策樹」做進一步的了解,於是讀了rod stephens《演算法基礎》裡面的決策樹內容。

決策樹經常被用來模擬經一系列決定或條件來解決問題的情況。樹的每乙個分支代表乙個單獨的選擇,葉結點代表乙個完整的可得出最終結果的決定。我們的目標是找到可能的最佳選擇或者樹中最佳的葉結點。

決策樹非常有用,它可以模擬各種情況,可以使用一系列步驟操作來產生乙個解決方案。例如,將一堆物體分成相同重量兩堆的過程,可以使用二叉樹對其進行建模,樹中的一條完整路徑對應了乙個完整地將物品分配為兩堆的方案。我們的目標是尋找使兩堆重量盡可能均勻的方法。

其實,在平常的實踐中,我們也早已接觸到了決策樹,如投資問題、揹包問題、圖著色問題等。典型地,對於圖著色問題,我們構建出一顆決策樹,每一層代表圖中某頂點的著色方案,滿足圖中連線相鄰頂點著色不同,即滿足樹中相鄰層連線結點顏色不同。最終,每乙個葉結點都代表著一種著色方案,我們用給定的條件來衡量這個方案是否可行。

不幸的是,決策樹通常非常龐大。例如,上述二叉樹將n個物體分成有2^n個葉結點的兩堆,因此搜尋整個樹幾乎是不可能的。但基於決策樹良好的結構,結合一些其他想法往往能產生不錯的效益。

回溯和分支界限的思想自然而然與決策樹掛上了鉤。回溯法的核心思想是:用深度優先策略遍歷整棵樹,如果發現向下搜尋不可能達到解節點,就回頭,解向量在搜尋過程中不斷生成。分支界限的核心思想是:在進行到樹的乙個分支時,演算法會在此分支能獲得的最佳可能的結果,如果此最佳可能結果並未比已找到的最好解決方案有進步,演算法會捨棄此分支並不會進行子樹的計算,也就是回溯。

回溯和分支界限在決策樹的基礎上,增加了特定的剪枝策略,而剪枝策略通常能節省大量時間。然而,儘管回溯和分支界限總是避免搜尋決策樹的大部分,比窮舉法快得多,可決策樹十分龐大,因而兩者仍舊相對較慢,它們只適用相對小的問題。

要搜尋較大的樹,要啟發式方法。啟發式方法不需要尋找最優可能的結果,但它會找到乙個相對較好的結果。書中提到了四種啟發式方法——隨機搜尋、改進路徑、模擬退火和爬山。

隨機搜尋是最簡單的,在每個結點只需選擇乙個分支隨機地搜尋,如果嘗試了足夠多的隨機路徑,如一次僅執行乙個固定數的實驗,就可以得到乙個相當不錯的解決方案。改進路徑指如果選擇了乙個隨機路徑,然後對其進行優化,則可以讓隨機路徑的選擇更有效。模擬退火演算法最初讓乙個解決方案發生大的變化,然後隨著時間的推移,變化越來越小,最後嘗試優化解決方案。爬山演算法總是讓該移動接近於乙個更好的解決方案,或者可以將其質量排序,考慮移動的縮減範圍等。

讀完書中的內容,讓我進一步認識到了決策樹的優缺點、以及它適合解決什麼樣的問題,並對決策樹和回溯法、分支界限之間的聯絡有了更深的把握。決策樹是解決複雜問題的強大工具,但是它並不是解決所有問題的最佳方法,但在不知道乙個問題更好的解決方法前,我們至少要考慮這樣的方法。生活中的問題要複雜的多,資料要龐大的多,沒有什麼演算法是萬能的,但總有想法是適合的。

決策樹系列(一)決策樹基礎

機器學習按資料的使用方式來說可以分為有監督學習 無監督學習 半監督學習 強化學習等,機器學習中的演算法還有另外一種劃分方式 分類 聚類 回歸。但我更喜歡分為兩種 廣義的分類 分類 聚類 和回歸,這裡是按照 的結果是離散資料還是連續資料來劃分的。今天要介紹的決策樹就是分類演算法中的一種。在介紹機器學習...

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...