Share via


Microsoft 群集演算法

Microsoft 群集演算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 所提供的分割演算法。此演算法使用反覆技巧,將資料集內的案例分成包含類似特性的群集。這些群集對於瀏覽資料、識別資料的異常,以及建立預測很有幫助。

群集模型會識別資料集內,無法透過偶然的邏輯觀察而衍生之關聯性。例如,您可以從邏輯上看出騎腳踏車上班的人通常不會住在離工作地點很遠的地方。不過,此演算法可以尋找關於腳踏車通勤者之其他較不明顯的特性。在下列圖表中,群集 A 代表可能要開車上班的人之資料,而群集 B 代表可能要騎腳踏車上班的人之資料。

通勤者傾向的叢集模式

群集演算法與其他資料採礦演算法不同,例如 Microsoft 決策樹演算法,因為您不必指定可預測資料行就可以建立群集模型。群集演算法會從資料中已存在的關聯性以及從演算法識別的群集嚴格地培訓模型。

範例

試想有一群人共用類似的人口統計資訊,而且向 Adventure Works 購買類似產品。這群人即代表一個資料群集。數個群集可存在於一個資料庫中。藉由觀察構成群集的資料行,您可以更清楚地看到資料集內的記錄彼此如何相關。

演算法的運作方式

Microsoft 群集演算法會先識別資料集內的關聯性,然後依據那些關聯性產生一系列群集。散佈圖是以視覺方式表示演算法如何將資料分組的有用方式,如下列圖表所示。散佈圖代表資料集內的所有案例,而每一個案例是圖表上的一個點。群集會將圖表上的點分組,並說明演算法所識別的關聯性。

資料集中案例的散佈圖

第一次定義群集之後,演算法會計算群集代表點群組的程度,然後嘗試重新定義群組,來建立更能代表資料的群集。此演算法反覆執行此程序,直到它無法以重新定義群集來改進結果為止。

Microsoft 群集演算法提供兩個方法來計算點在群集內符合的情況:Expectation Maximization (EM) 和 K-Means。針對 EM 群集,演算法會使用機率方法來決定資料點存在於群集內的機率。針對 K-Means,演算法會使用距離量值來指派資料點至它最接近的群集。

使用方式設定為只預測的資料行,不會用來建立群集。它們在群集內的散發是在建立群集之後才計算的。

如需有關 Microsoft 群集演算法運作方式的更詳細說明,請參閱<Scaling EM (Expectation Maximization) Clustering to Large Databases

使用演算法

群集模型必須包含索引鍵資料行和輸入資料行。您也可以將輸入資料行定義為可預測的。

此演算法支援特定輸入資料行內容類型、可預測資料行內容類型和模型旗標,這些都會在下表中列出。

輸入資料行內容類型

Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered

可預測資料行內容類型

Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered

模型旗標

MODEL_EXISTENCE_ONLY 和 NOT NULL

所有 Microsoft 演算法都支援一個常用函數集。不過,Microsoft 群集演算法支援下表所列出的其他函數。

群集

PredictCaseLikelihood

ClusterProbability

PredictNodeId

IsDescendant

PredictProbability

IsInNode

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictAssociation

PredictVariance

PredictHistogram

 

如需所有 Microsoft 演算法常用的函數清單,請參閱<資料採礦演算法>。如需有關如何使用這些函數的詳細資訊,請參閱<資料採礦延伸模組 (DMX) 函數參考>。

Microsoft 群集演算法支援使用預測模型標記語言 (PMML) 來建立採礦模型。

Microsoft 群集演算法支援數個會影響所產生之採礦模型的效能和精確度的參數。下表描述每一個參數。

參數 描述

CLUSTERING_METHOD

指定演算法要使用的群集方法。可用的群集方法有:可擴充的 EM (1)、不可擴充的 EM (2)、可擴充的 K-means (3) 和不可擴充的 K-means (4)。

預設值為 1。

CLUSTER_COUNT

指定演算法要建立的大約群集數目。如果無法從資料建立大約群集數目,則演算法會盡可能建立最多的群集。將 CLUSTER_COUNT 設定為 0 會造成演算法使用啟發法,對於建立的群集數做出最好的決定。

預設值為 10。

CLUSTER_SEED

指定在模型建立的初始階段,用於隨機產生群集的種子號碼。

預設值為 0。

MINIMUM_SUPPORT

指定每一個群集的最小案例數目。

預設值為 1。

MODELLING_CARDINALITY

指定在群集處理期間建構的範例模型數目。

預設值為 10。

STOPPING_TOLERANCE

指定用來決定何時到達聚合以及演算法完成建立模型的值。當群集機率的整體變更小於 STOPPING_TOLERANCE 參數除以模型大小的比率時,就到達聚合。

預設值為 10。

SAMPLE_SIZE

指定如果 CLUSTERING_METHOD 參數設定為可擴充的群集方法之一時,演算法使用在每個行程上的案例數目。將 SAMPLE_SIZE 參數設定為 0 會導致將整個資料集在單一行程中群集。這會造成記憶體和效能的問題。

預設值為 50000。

MAXIMUM_INPUT_ATTRIBUTES

指定在叫用功能選項之前,演算法可以處理輸入屬性的最大數目。將此值設定為 0 即指定屬性數目沒有上限。

預設值為 255。

MAXIMUM_STATES

指定演算法所支援屬性狀態的最大數目。如果屬性的狀態數目大於狀態數目上限,則演算法會使用屬性最常用的狀態,而忽略其餘狀態。

預設值為 100。

請參閱

概念

資料採礦演算法
資料採礦精靈
資料採礦的功能選擇
使用資料採礦工具
以 Microsoft 群集檢視器檢視採礦模型

其他資源

CREATE MINING MODEL (DMX)

說明及資訊

取得 SQL Server 2005 協助