Microsoft 決策樹演算法
Microsoft 決策樹演算法是用於分隔和連續屬性之預測模型的 Microsoft SQL Server 2005 Analysis Services (SSAS) 所提供的一種分類和迴歸演算法。
針對分隔屬性,此演算法依據資料集內的輸入資料行之間的關聯性來產生預測。它使用那些資料行的值或狀態,來預測您指定為可預測之資料行的狀態。尤其,此演算法會識別與可預測資料行相互關聯的輸入資料行。例如,在預測哪些客戶可能購買腳踏車的狀況中,如果 10 個年輕客戶當中有 9 個購買腳踏車,但 10 個年紀較大的客戶當中只有 2 個人這麼做,則演算法會推斷年齡是腳踏車購買的理想預測器。決策樹就是依據傾向於特定結果的趨勢來產生預測。
針對連續屬性,此演算法使用線性迴歸來決定決策樹分岔之處。
如果不止一個資料行設定為可預測,或輸入資料包含的巢狀資料表設定為可預測,則演算法會建立每一個可預測資料行的個別決策樹。
範例
Adventure Works Cycle 公司的行銷部門想要識別舊客戶的特性,這些特性會指出那些客戶是否可能購買未來的產品。AdventureWorks 資料庫儲存描述舊客戶的人口統計資訊。藉由使用 Microsoft 決策樹演算法來分析此資訊,行銷部門可以建立模型,依據關於特定客戶之已知資料行的狀態 (例如人口統計或過去購買模式) 來預測該客戶是否會購買產品。
演算法的運作方式
Microsoft 決策樹演算法在樹狀中建立一系列分岔 (亦稱為節點) 來建立資料採礦模型。每次發現輸入資料行與可預測資料行有明顯地相互關聯時,此演算法就會在模型中加入一個節點。演算法決定分岔的方式不同,視它預測連續資料行或分隔資料行而定。如需有關 Microsoft 決策樹演算法如何使用分隔可預測資料行的詳細說明,請參閱<SQL 資料庫上的可擴充分類>(英文) 和<了解 Bayesian 網路:>(英文)。如需有關 Microsoft 決策樹演算法如何與連續可預測資料行一起運作的詳細資訊,請參閱<時間序列分析的自動回歸樹模型>(英文) 的附錄。
預測分隔資料行
Microsoft 決策樹演算法為分隔可預測資料行建立樹狀的方式,可使用長條圖來示範。下列圖表顯示一個長條圖,它繪製出可預測資料行 Bike Buyers 對照輸入資料行 Age。長條圖顯示某人的年齡可協助區分此人是否會購買腳踏車。
圖表中所顯示的相互關聯會導致 Microsoft 決策樹演算法在模型中建立新節點。
當演算法在模型中加入新節點時,就會形成樹狀結構。樹狀的最上層節點描述客戶整體母體擴展之可預測資料行的細分。當模型繼續成長時,演算法會考量所有資料行。
預測連續資料行
當 Microsoft 決策樹演算法依據連續可預測資料行建立樹狀時,每一個節點會包含一個迴歸公式。分岔會出現在迴歸公式中的非線性點上。例如,請看下列圖表。
圖表包含可使用單線或使用兩條連接線建立模型的資料。不過,用單線來表示資料,效果較差。相對地,如果您使用雙線,則模型更能做好模擬資料的作業。兩條線交叉的點就是非線性點,也是在決策樹模型中之節點會分岔的那個點。例如,對應至上面圖表中之非線性點的節點可由下列圖表來表示。兩個方程式代表兩條線的迴歸方程式。
使用演算法
決策樹模型必須包含索引鍵資料行、輸入資料行和一個可預測資料行。
Microsoft 決策樹演算法支援特定輸入資料行內容類型、可預測資料行內容類型和模型旗標,這些都會在下表中列出。
輸入資料行內容類型 |
Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered |
可預測資料行內容類型 |
Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered |
模型旗標 |
MODEL_EXISTENCE_ONLY、NOT NULL 和 REGRESSOR |
所有 Microsoft 演算法都支援一個常用函數集。不過,Microsoft 決策樹演算法支援下表所列出的其他函數。
如需所有 Microsoft 演算法常用的函數清單,請參閱<資料採礦演算法>。如需有關如何使用這些函數的詳細資訊,請參閱<資料採礦延伸模組 (DMX) 函數參考>。
Microsoft 決策樹演算法支援使用預測模型標記語言 (PMML) 來建立採礦模型。
Microsoft 決策樹演算法支援數個會影響所產生之採礦模型的效能和精確度的參數。下表描述每一個參數。
參數 | 描述 |
---|---|
MAXIMUM_INPUT_ATTRIBUTES |
定義在叫用功能選項之前,演算法可以處理輸入屬性的數目。將此值設定為 0 來關閉功能選項。 預設值是 255。 |
MAXIMUM_OUTPUT_ATTRIBUTES |
定義在叫用功能選項之前,演算法可以處理輸出屬性的數目。將此值設定為 0 來關閉功能選項。 預設值是 255。 |
SCORE_METHOD |
決定用來計算分岔準則的方法。可用的選項:Entropy (1)、Bayesian with K2 Prior (2) 或 Bayesian Dirichlet Equivalent (BDE) Prior (3)。 預設值是 3。 |
SPLIT_METHOD |
決定用來分岔節點的方法。可用的選項:Binary (1)、Complete (2) 或 Both (3)。 預設值是 3。 |
MINIMUM_SUPPORT |
決定要在決策樹中產生分岔所需的最小分葉案例數目。 預設值為 10。 |
COMPLEXITY_PENALTY |
控制決策樹的成長。低值會增加分岔數目,而高值會減少分岔數目。預設值是依據特定模型的屬性數目,如下列清單所述:
|
FORCED_REGRESSOR |
強制演算法使用指定的資料行作為迴歸輸入變數,不考慮演算法計算出來之資料行的重要性。此參數只用於預測連續屬性的決策樹。 |
請參閱
概念
資料採礦演算法
資料採礦精靈
資料採礦的功能選擇
以 Microsoft 樹狀檢視器檢視採礦模型