共用方式為


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 數據採礦演算法都會使用特徵選取來改善效能和分析品質。 特徵選取對於防止使用處理器時間不重要的屬性很重要。 如果您在設計數據採礦模型時使用太多輸入或可預測的屬性,模型可能需要很長的時間來處理,甚至用盡記憶體。 用來判斷是否要分割樹狀結構的方法包括 entropy 和Bayesian networks*的業界標準計量*。* 如需用來選取有意義屬性的方法詳細資訊,然後評分和排名屬性,請參閱 特徵選取(數據採礦)

數據採礦模型中的常見問題是,模型對定型數據中的小差異太敏感,在此情況下,它表示 過度調整過度定型。 過度調整的模型無法一般化為其他數據集。 為了避免過度學習任何特定數據集,Microsoft判定樹演算法會使用控制樹狀結構成長的技術。 如需Microsoft判定樹演演算法運作方式的更深入說明,請參閱 Microsoft 判定樹演演算法技術參考

預測離散數據行

Microsoft判定樹演算法為離散可預測數據行建置樹狀結構的方式,可以使用直方圖來示範。 下圖顯示直方圖,根據輸入數據行的Age繪製可預測數據行 Bike Buyers。 直方圖顯示某個人的年齡有助於區分該人是否會購買自行車。

判定樹演算法 Microsoft的直方圖

圖表中顯示的相互關聯會導致Microsoft判定樹演算法在模型中建立新的節點。

判定樹節點

當演算法將新的節點新增至模型時,會形成樹狀結構。 樹狀結構的頂端節點描述客戶整體母體擴展的可預測數據行明細。 隨著模型持續成長,演算法會考慮所有數據行。

預測連續數據行

當Microsoft判定樹演算法根據連續可預測數據行建置樹狀結構時,每個節點都會包含回歸公式。 分割會在回歸公式中的非線性點發生。 例如,請考慮下圖。

顯示非線性的多條回歸線

在標準回歸模型中,您會嘗試衍生單一公式,代表整個數據的趨勢和關聯性。 不過,單一公式在擷取複雜數據的不連續性時,可能會執行不佳的工作。 相反地,Microsoft判定樹演算法會尋找大部分為線性的樹狀結構區段,併為這些區段建立個別的公式。 藉由將數據分割成不同的區段,模型可以更妥善地近似數據。

下圖代表上方散佈圖中模型的樹狀圖。 為了預測結果,模型提供兩個不同的公式:一個用於左分支,其中一個公式為 y = .5x x 5,另一個用於右分支,公式 y = .25x + 8.75。 散佈圖中兩條線結合的點是非線性點,而是判定樹模型中節點分割的點。

方程式,代表非線性點

這是一個簡單的模型,只有兩個線性方程式:因此,樹狀結構中的分割會緊接在 [所有] 節點 之後。 不過,分割可能會發生在樹狀結構的任何層級。 這表示,在包含多個層級和節點的樹狀結構中,每個節點都會以不同屬性集合為特徵,公式可能會跨多個節點共用,或只套用至單一節點。 例如,您可能會針對定義為「特定年齡和收入的客戶」的節點取得一個公式,而節點中另一個公式代表「通勤長途的客戶」。 若要查看個別節點或區段的公式,只要按兩下節點即可。

判定樹模型所需的數據

當您準備數據以用於判定樹模型時,您應該瞭解特定演算法的需求,包括需要多少數據,以及如何使用數據。

判定樹模型的需求如下:

  • 單一索引鍵數據行 每個模型必須包含一個可唯一識別每筆記錄的數值或文字數據行。 不允許複合索引鍵。

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

  • 輸入數據行 需要輸入數據行,這可以是離散或連續的。 增加輸入屬性的數目會影響處理時間。

如需判定樹模型所支援內容類型和數據類型的詳細資訊,請參閱 Microsoft 判定樹演算法技術參考的需求一節。

檢視判定樹模型

若要探索模型,您可以使用 Microsoft 樹檢視。 如果您的模型產生多個樹狀結構,您可以選取樹狀結構,而查看器會顯示每個可預測屬性案例分類方式的細目。 您也可以使用相依性網路查看器來檢視樹狀架構的互動。 如需詳細資訊,請參閱 使用 Microsoft 樹檢視器流覽模型

如果您想要深入瞭解樹狀結構中的任何分支或節點,您也可以使用 Microsoft 一般內容樹視圖器來流覽模型。 針對模型儲存的內容包含每個節點中所有值的分佈、樹狀結構每個層級的機率,以及連續屬性的回歸公式。 如需詳細資訊,請參閱 判定樹模型的採礦模型內容(Analysis Services - 數據採礦)

建立預測

處理模型之後,結果會儲存為一組模式和統計數據,您可以使用這些模式和統計數據來探索關聯性或進行預測。

如需與判定樹模型搭配使用的查詢範例,請參閱 判定樹模型查詢範例

如需如何針對採礦模型建立查詢的一般資訊,請參閱 數據採礦查詢

言論

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

  • 支援鑽研。

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

另請參閱

數據採礦演算法 (Analysis Services - 數據採礦)
Microsoft 判定樹演演算法技術參考
判定樹模型查詢範例
判定樹模型的採礦模型內容 (Analysis Services - 數據採礦)