Microsoft 時序群集演算法技術參考
Microsoft 時序叢集演算法是一種混合式演算法,它使用 Markov 鏈結分析來識別已排序的時序,並結合此分析的結果與叢集技術,根據模型中的時序和其他屬性產生叢集。 本主題描述演算法的實作、如何自訂演算法,以及時序叢集模型的特殊需求。
如需有關演算法的一般詳細資訊,包括如何瀏覽和查詢時序叢集模型,請參閱< Microsoft Sequence Clustering Algorithm>。
Microsoft 時序群集演算法的實作
Microsoft 時序叢集模型使用 Markov 模型來識別時序,並判斷時序的機率。 Markov 模型是一種導向圖形,可儲存不同狀態間的轉換。 Microsoft 時序叢集演算法使用 n 順序的 Markov 鏈結,而非隱藏的 Markov 模型。
Markov 鏈結中的順序數目會告訴您使用多少個狀態判斷目前狀態的機率。 在第一優先順序的 Markov 模型中,目前狀態的機率僅取決於先前的狀態。 在第二優先順序的 Markov 鏈結中,狀態的機率取決於先前的兩個狀態,以此類推。 轉換矩陣會針對每個 Markov 鏈結儲存每個狀態組合的轉換。 當 Markov 鏈結的長度增加時,矩陣的大小也會以指數方式增加,而且該矩陣會變得相當疏鬆。 處理時間也會等比例地增加。
這可能有助於使用點選流分析的範例視覺化鏈結,以分析網頁的查閱次數。 每個使用者都會針對每個工作階段建立一長串的點選。 當您建立模型來分析網站上的使用者行為時,用於定型的資料集就是轉換為圖形的一連串 URL,其中包含相同點選路徑之所有執行個體的計數。 例如,此圖形包含使用者從第 1 頁移到第 2 頁的機率 (10%)、使用者從第 1 頁移到第 3 頁的機率 (20%) 等等。 當您將所有可能的路徑與路徑片段放在一起時,您會取得可能比任何單一已觀察路徑更長、更複雜的圖形。
根據預設,Microsoft 時序群集演算法使用 Expectation Maximization (EM) 群集方法。 如需詳細資訊,請參閱 Microsoft 群集演算法技術參考。
群集的目標為循序與非循序屬性。 每個群集都會使用機率分配隨機選取。 每個群集都有一個代表一組完整路徑的 Markov 鏈結,以及包含時序狀態轉換和機率的矩陣。 根據初始分配,貝氏機率分類規則用於計算特定群集中任何屬性的機率,包括時序。
Microsoft 時序叢集演算法支援模型額外的非循序屬性。 也就是說,這些額外的屬性會結合時序屬性,就像在一般叢集模型般建立具有類似屬性之案例的群集。
時序群集模型傾向於建立比一般叢集模型還要更多的叢集。 因此,Microsoft 時序群集演算法會根據時序及其他屬性執行 「群集分解」(Cluster Decomposition) 來分割群集。
時序叢集模型中的特徵選取
特徵選取不會在建立時序時叫用,但是特徵選取會在群集階段套用。
模型類型 | 特徵選取方法 | 註解 |
---|---|---|
時序群集 | 未使用 | 尚未叫用特徵選取。不過,您可以藉由設定 MINIMUM_SUPPORT 和 MINIMUM_PROBABILIITY 參數的值,控制演算法的行為。 |
叢集 | 有趣性分數 | 雖然群集演算法可以使用離散或離散化的演算法,但每個屬性的分數都會計算為距離,而且是連續的;因此會使用有趣性分數。 |
如需詳細資訊,請參閱 Feature Selection。
最佳化效能
Microsoft 時序群集演算法支援各種最佳化處理的方式:
設定 CLUSTER_COUNT 參數的值來控制所產生之群集的數目。
增加 MINIMUM_SUPPORT 參數的值來減少當做屬性加入之時序的數目。 因此,系統會刪除極少數的序列。
處理模型前,將相關的屬性分組來降低複雜度。
一般而言,您可以利用數種方式,使 n 順序 Markov 鏈結模式的效能最佳化:
控制可能時序的長度。
以程式設計方式減少 n 的值。
只儲存超過指定之臨界值的機率。
這些方法的完整討論超出本主題的範圍。
自訂時序群集演算法
Microsoft 時序叢集演算法支援影響所產生採礦模型行為、效能和精確度的參數。 您也可以設定控制演算法處理定型資料之方式的模型旗標,修改已完成之模型的行為。
設定演算法參數
下表描述可搭配 Microsoft 時序群集演算法使用的參數。
CLUSTER_COUNT
指定演算法要建立的大約群集數目。 如果無法從資料建立大約群集數目,則演算法會盡可能建立最多的群集。 將 CLUSTER_COUNT 參數設定為 0,會導致演算法使用啟發式來判斷可建立的最佳群集數目。
預設值為 10。
注意
指定非零的數字做為演算法的提示,這樣會繼續尋找指定之數字的目標,但最後可能會找到更多或更少的結果。
MINIMUM_SUPPORT
指定支援屬性建立群集所需之案例的最小數目。
預設值為 10。
MAXIMUM_SEQUENCE_STATES
指定一個順序可以具有的最大狀態數目。
將此值設定為大於 100 的數字,可能會導致演算法建立一個無法提供有用資訊的模型。
預設值為 64。
MAXIMUM_STATES
針對演算法支援的非順序屬性指定最大狀態數目。 如果非序列屬性的狀態數目大於狀態數目上限,則演算法會使用屬性最熱門的狀態,並將其餘狀態 Missing
視為 。
預設值為 100。
模型旗標
支援下列模型旗標搭配 Microsoft Sequence Clustering 演算法使用。
NOT NULL
表示資料行不能包含 Null 值。 如果 Analysis Services 在模型定型期間遇到 Null 值,將會產生錯誤。
適用於採礦結構資料行。
MODEL_EXISTENCE_ONLY
表示資料行將被視為擁有兩個可能狀態:Missing
和 Existing
。 Null 值會被視為 Missing
值。
適用於採礦模型資料行。
如需有關在採礦模型中使用遺漏值,以及遺漏值如何影響機率分數的詳細資訊,請參閱 Missing Values (Analysis Services - 資料採礦) 。
規格需求
案例資料表必須有一個案例識別碼資料行。 案例資料表可以選擇性地包含儲存案例之相關屬性的其他資料行。
Microsoft 時序群集演算法需要儲存為巢狀資料表的時序資訊。 巢狀資料表必須有一個單一的 Key Sequence 資料行。 Key Sequence
資料行可以包含能夠儲存的任何資料類型,包括字串資料類型,但資料行對於每個案例,必須包含唯一的值。 此外,處理模型前,您必須確認案例資料表與巢狀資料表都根據與資料表相關的索引鍵,以遞增方式排序。
注意
如果您建立使用 Microsoft 時序演算法但不使用時序資料行的模型,所產生的模型將不包含任何時序,但是將只根據模型中包含的其他屬性群集案例。
輸入和可預測資料行
Microsoft Sequence Clustering 演算法支援下表所列的特定輸入資料行和可預測資料行。 如需採礦模型中使用內容類型的意義詳細資訊,請參閱 內容類型 (資料採礦) 。
資料行 | 內容類型 |
---|---|
輸入屬性 | Continuous、Cyclical、Discrete、Discretized、Key、Key Sequence、Table 和 Ordered |
可預測屬性 | Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered |
備註
使用 PredictSequence (DMX) 函式來預測序列。 如需支援順序預測之SQL Server版本的詳細資訊,請參閱SQL Server 2012 () https://go.microsoft.com/fwlink/?linkid=232473 版本支援的功能。
Microsoft 時序群集演算法不支援使用預測模型標記語言 (PMML) 來建立採礦模型。
Microsoft 時序叢集演算法支援鑽研、使用 OLAP 採礦模型,以及使用資料採礦維度。
另請參閱
Microsoft 時序叢集演算法
時序叢集模型查詢範例
時序群集模型的採礦模型內容 (Analysis Services - 資料採礦)