Microsoft 關聯分析演算法

更新: 2008 年 11 月 17 日

Microsoft 關聯分析演算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 所提供的關聯分析演算法,對於建議引擎很有用。建議引擎會依據客戶已購買或感興趣的項目向客戶建議產品。Microsoft 關聯分析演算法對於購物籃分析也很有用。如需有關購物籃分析的詳細資訊,請參閱資料採礦教學課程中的<第 4 課:建立購物籃狀況>。

關聯分析模型是建立在包含個別案例和案例所含項目之識別碼的資料集上。案例中的項目群組稱為項目集。關聯分析模型是由一系列項目集和規則所組成,這些規則描述那些項目在案例內如何分組。演算法識別的規則可依據客戶購物車已有的項目,來預測客戶未來可能購買的項目。下列圖表顯示項目集內的一系列規則。

關聯模型的規則集

如圖表所示,Microsoft 關聯分析演算法可能會在資料集內找到許多規則。演算法使用兩個參數 (案例數和機率) 來描述它產生的項目集和規則。例如,若 X 和 Y 代表可能存在於購物車內的兩個項目,則案例數參數就是指資料集內包含 X 和 Y 項目結合的案例數目。藉由使用案例數參數以及使用者自訂的 MINIMUM_SUPPORTMAXIMUM_SUPPORT, 參數,演算法可控制產生的項目集數目。機率參數也稱為信心,它代表資料集內包含 X 也包含 Y 之案例的比例。藉由使用機率參數以及 MINIMUM_PROBABILITY 參數,演算法就可以控制產生的規則數目。

範例

Adventure Works Cycles 公司正在重新設計其網站的功能。重新設計的目標是要增加產品的實際銷售。因為公司會在交易式資料庫中記錄每一筆銷售,所以他們可以使用 Microsoft 關聯分析演算法來識別可能一起購買的產品集。然後,他們可以依據客戶購物籃已有的項目,來預測客戶可能感興趣的其他項目。

演算法的運作方式

Microsoft 關聯分析演算法周遊資料集來尋找一起出現在案例中的項目。接著,演算法就會將任何出現的相關聯項目分組為項目集,且至少會分成在 MINIMUM_SUPPORT 參數中指定的案例數目。例如,項目集可能是 "Mountain 200=Existing, Sport 100=Existing",而且可能有 710 個案例數。接著,演算法會從項目集產生規則。依據演算法識別為重要的其他特定項目出現與否,這些規則將用來預測項目在資料庫出現與否。例如,若規則是「if Touring 1000=existing and Road bottle cage=existing, then Water bottle=existing」,則機率為 0.812。在這個範例中,演算法識別出由於購物籃內有 Touring 1000 輪胎和水壺架的存在,所以預測水壺也可能會出現在購物籃內。

使用演算法

關聯分析模型必須包含索引鍵資料行、輸入資料行和一個可預測資料行。輸入資料行必須是分隔的。關聯分析模型的輸入資料通常包含在兩個資料表中。例如,一個資料表可能包含客戶資訊,而另一個資料表則包含客戶購買的項目。您可以使用巢狀資料表,將此資料輸入模型中。如需有關巢狀資料表的詳細資訊,請參閱<巢狀資料表>。

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

輸入資料行內容類型

Cyclical、Discrete、Discretized、Key、Table 和 Ordered

可預測資料行內容類型

Cyclical、Discrete、Discretized、Table 和 Ordered

模型旗標

MODEL_EXISTENCE_ONLY 和 NOT NULL

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

IsDescendant

PredictHistogram

IsInNode

PredictNodeId

PredictAdjustedProbability

PredictProbability

PredictAssociation

PredictSupport

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

Microsoft 關聯分析演算法不支援使用預測模型標記語言 (PMML) 來建立採礦模型。

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

參數

描述

MINIMUM_SUPPORT

指定演算法產生規則之前必須包含項目集的最小案例數目。將此值設定為小於 1,是以總案例數的百分比來指定最小案例數目。將此值設定為大於 1 的整數,是以必須包含項目集的絕對案例數目來指定最小案例數目。如果記憶體有限,演算法可增加此參數的值。

預設值為 0.03。

MAXIMUM_SUPPORT

指定項目集可支援的最大案例數目。如果此值小於 1,則此值代表總案例數的百分比。大於 1 的值代表可包含項目集的絕對案例數目。

預設值為 1。

MINIMUM_ITEMSET_SIZE

指定項目集內所允許的最小項目數目。

預設值是 1。

MAXIMUM_ITEMSET_SIZE

指定項目集內所允許的最大項目數目。將此值設定為 0,即代表項目集沒有大小限制。

預設值為 3。

MAXIMUM_ITEMSET_COUNT

指定要產生的最大項目集數目。如果沒有指定數目,將會使用預設值。預設值為 200000。

ms174916.note(zh-tw,SQL.90).gif附註:

項目集僅會依支援進行排序。因此具有相同支援之項目集間的排序是隨機的。

MINIMUM_PROBABILITY

指定規則為 True 的最小機率。例如,將此值設定為 0.5 是指定不產生機率小於 50% 的規則。

預設值為 0.4。

OPTIMIZED_PREDICTION_COUNT

定義要為預測進行快取或最佳化的項目數目。

預設值為 0。使用預設值時,此演算法將會產生如查詢所要求的預測數目。

變更歷程記錄

版本 歷程記錄

2008 年 11 月 17 日

新增內容:
  • 新增 OPTIMIZED_PREDICTION_COUNT 預設值和預設行為的描述。

2007 年 9 月 15 日

變更的內容:
  • 更正 MAXIMUM_ITEMSET_COUNT 預設行為的描述。
  • 如需有關 MINIMUM_SUPPORT 預設值相關問題的詳細資訊,請參閱 Microsoft 知識庫。

請參閱

概念

資料採礦演算法
資料採礦精靈
使用資料採礦工具
以 Microsoft 關聯規則檢視器檢視採礦模型

其他資源

CREATE MINING MODEL (DMX)

說明及資訊

取得 SQL Server 2005 協助