Microsoft判定樹演算法

適用於: SQL Server 2019 和更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

SQL Server 2017 Analysis Services 中已淘汰數據採礦,現在已在 SQL Server 2022 Analysis Services 中停止。 已淘汰和已停用功能的文件不會更新。 若要深入瞭解,請參閱 Analysis Services 回溯相容性。

Microsoft 決策樹演算法是一種分類與迴歸演算法,用於離散與連續屬性的預測建模。

對於離散屬性,演算法會根據數據集中輸入數據行之間的關聯性進行預測。 演算法利用這些欄位的值或 狀態 來預測你指定為可預測欄位的狀態。 具體而言,演算法會識別與可預測數據行相互關聯的輸入數據行。

例如,在預測哪些顧客可能購買自行車的情境中,若年輕顧客中有九成,但年長顧客只有兩成購買,演算法推斷年齡是購買自行車的良好指標。 判定樹會根據這種針對特定結果的趨勢進行預測。

針對連續屬性,演算法會使用線性回歸來判斷判定樹分割的位置。

若多欄設定為可預測,或輸入資料包含巢狀資料表且設定為可預測,演算法會為每個可預測欄位建立獨立決策樹。

例

Adventure Works Cycles 公司的行銷部門想要找出先前客戶的哪些特徵,可能顯示這些客戶未來是否有可能購買產品。 AdventureWorks2012 資料庫會儲存描述先前客戶的人口統計資訊。 透過使用 Microsoft 決策樹演算法分析這些資訊,行銷部門可以建立一個模型,根據已知該顧客欄位的狀態,如人口統計或過去購買模式,預測特定顧客是否會購買產品。

演算法運作原理

Microsoft決策樹演算法透過在樹中建立一系列分割來建立資料探勘模型。 這些分割以 節點表示。 演算法每當找到與可預測欄位顯著相關性的輸入欄位時,就會向模型新增一個節點。 演算法判斷分割的方式會因預測連續數據行或離散數據行而有所不同。

Microsoft 決策樹演算法利用特徵選擇來引導最有用的屬性的選擇。 所有 SQL Server 資料探勘演算法皆使用特徵選擇來提升效能與分析品質,並防止不重要的屬性佔用處理器時間。 如果你在設計資料探勘模型時使用過多輸入或可預測屬性,模型可能會花很長時間處理或記憶體不足。 判斷是否分割樹的方法包括業界標準的 熵 與 貝葉斯網路度量。 關於選擇有意義屬性並評分與排名的方法,請參見特徵選擇(資料探勘)。

資料探勘模型中常見的問題是模型對訓練資料中的細微差異過於敏感,這稱為 過度擬合 或 過度訓練。 過度擬合的模型無法推廣到其他資料集。 為了避免對特定資料集產生過度擬合,Microsoft 決策樹演算法採用控制樹成長的技術。 欲深入了解 Microsoft 決策樹演算法的運作方式,請參閱 Microsoft 決策樹演算法技術參考。

離散欄位的預測

Microsoft 決策樹演算法透過直方圖建立離散可預測欄位的樹狀結構。 下圖顯示一個直方圖,將可預測欄 Bike Buyers 與輸入欄 Age 對照繪製。 直方圖顯示,個人的年齡有助於判斷是否購買自行車。

Microsoft決策樹演算法的直方圖截圖。

圖中所示的相關性會導致 Microsoft 決策樹演算法在模型中建立一個新的節點。

決策樹節點的截圖。

當演算法向模型新增節點時,會建立樹狀結構。 樹狀圖的最上層節點說明整體客戶群體之預測目標欄位的細分情況。 隨著模型持續成長,演算法會考慮所有數據行。

預測連續型欄位

當 Microsoft 決策樹演算法根據連續可預測欄位建立樹狀結構時,每個節點都包含一個迴歸公式。 分裂發生在迴歸公式中的非線性點。 例如,請考慮下圖。

多條迴歸線的截圖顯示非線性。

標準迴歸模型嘗試推導出一個代表整體數據趨勢與關係的公式。 不過,單一公式在擷取複雜數據的不連續性時,可能會執行不佳的工作。 相反地,Microsoft 決策樹演算法會尋找樹中大致線性的片段,並為這些片段建立獨立公式。 透過將資料拆分成不同區段,模型能更好地近似資料。

下圖表示前述散點圖中模型的樹狀圖。 為了預測結果,模型提供了兩個不同的公式:一個是左分支的公式 y = .5x x 5,另一個是右分支的公式 y = 0.25x + 8.75。 散點圖中兩條線交會的點是決策樹模型中節點分裂的非線性點。

一個代表非線性點的方程式截圖。

此模型簡單,僅包含兩個線性方程,因此樹的分裂點緊接在 All 節點之後。 不過,分割可能會發生在樹狀結構的任何層級。 在包含多個層級與節點且每個節點由不同屬性集合所描述的樹中,公式可能在多個節點間共享,或僅適用於單一節點。

例如,你可能會得到一個定義為「特定年齡及收入以上顧客」的節點公式,另一個則代表「長途通勤的客戶」。要查看單一節點或段的公式,請選擇該節點。

決策樹模型所需的資料

當你準備用於決策樹模型的資料時,要了解該演算法的需求,包括它需要多少資料,以及它如何使用這些資料。

判定樹模型的需求如下:

  • 單一鍵欄位。 每個模型必須包含一個數字或文字欄位,以唯一識別每筆紀錄。 不允許使用複合鑰匙。

  • 可預測的欄位。 模型至少需要一個可預測的欄位。 您可以在模型中包含多個可預測屬性,且可預測屬性可以是不同類型的數值或離散屬性。 增加可預測屬性的數量可以增加處理時間。

  • 輸入欄位。 模型需要輸入欄位,這些欄位可以是離散的,也可以是連續的。 增加輸入屬性的數目會影響處理時間。

欲了解決策樹模型所支援的內容類型與資料型態詳細資訊,請參閱 Microsoft 決策樹演算法技術參考中的需求部分。

檢視決策樹模型

要探索這個模型,請使用 Microsoft 樹狀檢視器。 如果你的模型產生多棵樹狀結構,你可以選擇一棵樹,並查看每個可預測屬性的案例分類細分。 您也可以使用相依性網路查看器來檢視樹狀架構的互動。 欲了解更多資訊,請參閱「 使用 Microsoft 樹狀檢視器瀏覽模型」。

若想了解樹狀結構中任何分支或節點的詳細資訊,也可使用Microsoft通用內容樹檢視器瀏覽模型。 針對模型儲存的內容包含每個節點中所有值的分佈、樹狀結構每個層級的機率,以及連續屬性的回歸公式。 欲了解更多資訊,請參閱決策樹模型的挖掘模型內容(分析服務-資料探勘)。

建立預測

模型處理完成後,會將結果儲存為一組模式與統計資料。 利用這些結果來探索關係或做出預測。

關於決策樹模型的查詢範例,請參見 決策樹模型查詢範例。

關於如何針對挖礦模型建立查詢的一般資訊,請參見 資料探勘查詢。

備註

  • 支援使用預測模型標記語言 (PMML) 來建立採礦模型。

  • 支援鑽研分析。

  • 支援使用 OLAP 採礦模型和建立數據採礦維度。

另請參閱

資料探勘演算法(分析服務 - 資料探勘)
Microsoft 決策樹演算法技術參考
決策樹模型查詢範例
決策樹模型的模型內容挖掘(分析服務 - 資料探勘)