共用方式為


Microsoft關聯演算法技術參考

Microsoft關聯規則演算法是已知 Apriori 演算法的直接實作。

Microsoft判定樹演算法和Microsoft關聯規則演算法都可以用來分析關聯,但每個演算法所找到的規則可能會有所不同。 在判定樹模型中,導致特定規則的分割是以資訊收益為基礎,而在關聯模型中,規則完全以信賴為基礎。 因此,在關聯模型中,強式規則或具有高度信賴度的規則,可能不一定很有趣,因為它不會提供新的資訊。

Microsoft關聯演算法的實作

Apriori 演算法不會分析模式,而是會產生並計算 候選專案集。 專案可以代表事件、產品或屬性的值,視所分析的數據類型而定。

在最常見的關聯模型類型中,布林變數用來表示「是/否」或「存在/缺失」的值,並指派給每個屬性,例如產品或事件名稱。 購物籃分析是關聯規則模型的範例,其使用布爾變數來代表客戶購物籃中特定產品是否存在。

針對每個項目集,演算法接著會建立代表支持度和信心度的分數。 這些分數可用來對專案集進行排名和衍生有趣的規則。

您也可以為數值屬性建立關聯模型。 如果屬性是連續的,數字可以 離散化,或 分組成區間。 接著可以將離散化值當作布爾值或屬性值組來處理。

支援、機率和重要性

支持度,有時候被稱為 頻率,表示包含目標專案或項目組合的案例數目。 只有至少具有指定支援量的專案可以包含在模型中。

頻繁項集是指一組項,當這些項的組合在 MINIMUM_SUPPORT 參數所定義的臨界值以上時,也具有支持度的項集。 例如,如果專案集是 {A,B,C} 且MINIMUM_SUPPORT值為 10,則必須在至少 10 個案例中找到要包含在模型中的個別專案 A、B 和 C,而且至少必須在 10 個案例中找到專案 {A、B、C} 的組合。

注意 您也可以指定專案集的最大長度,以控制採礦模型中的專案集數目,其中 length 表示項目數目。

根據預設,任何特定的項目或項目集的支持度表示包含該項目或項目集的案例計數。 不過,您也可以將MINIMUM_SUPPORT表示為數據集中總案例的百分比,方法是將數位輸入為小於 1 的十進位值。 例如,如果您指定 0.03 的MINIMUM_SUPPORT值,表示數據集中至少 3 個% 必須包含此專案或專案集,才能包含在模型中。 您應該試驗模型,以判斷使用計數或百分比是否更合理。

相反地,規則的臨界值不會表示為計數或百分比,而是以機率表示,有時稱為 信賴度。 例如,如果專案集 {A,B,C} 發生在 50 個案例中,但專案集 {A,B,D} 也發生在 50 個案例中,而專案集 {A,B} 在另 50 個案例中,很明顯 {A,B} 不是 {C} 的強預測值。 因此,為了根據所有已知結果來加權特定結果,Analysis Services 會將專案集 {A、B, C} 的支援除以所有相關專案集的支持來計算個別規則的機率(例如 If {A,B} Then {C})。

您可以藉由設定MINIMUM_PROBABILITY的值來限制模型所產生的規則數目。

針對所建立的每個規則,Analysis Services 會輸出指出其 重要性的分數,也稱為 增益。 項集和規則的提升重要性會以不同的方式計算。

專案集的重要性會計算為專案集的機率除以專案集中個別專案的複合機率。 例如,如果專案集包含 {A,B},Analysis Services 會先計算包含這個組合 A 和 B 的所有案例,並將它除以案例總數,然後正規化機率。

規則的重要性是由給定規則左邊的條件下,右邊的對數似然來計算。 例如,在規則 If {A} Then {B}中,Analysis Services 會計算同時具有 A 和 B 的案例與僅具有 B、但不具有 A 的案例之比率,然後使用對數尺度來正規化該比率。

特徵選取

Microsoft關聯規則演算法不會執行任何類型的自動特徵選取。 相反地,演算法會提供參數來控制演算法所使用的數據。 這可能包括每個專案集的大小限制,或設定將專案集新增至模型所需的最大和最小支援。

  • 若要篩選掉太常見的專案和事件,因此不感興趣,請減少MAXIMUM_SUPPORT的值,以從模型中移除非常頻繁的專案集。

  • 若要篩選掉罕見的專案和專案集,請增加MINIMUM_SUPPORT的值。

  • 若要篩選出規則,請增加MINIMUM_PROBABILITY的值。

自定義Microsoft關聯規則演算法

Microsoft關聯規則演算法支援數個影響結果採礦模型行為、效能和精確度的參數。

設定演算法參數

您可以隨時使用 SQL Server Data Tools 中的數據採礦設計工具來變更採礦模型的參數。 您也可以使用 AMO 中的AlgorithmParameters集合,或在 XMLA 中使用 MiningModels 元素 (ASSL)來以程式設計方式變更參數。 下表描述每個參數。

備註

您無法使用 DMX 語句來變更現有模型中的參數;您必須在 DMX CREATE MODEL 或 ALTER STRUCTURE 中指定參數...當您建立模型時,請新增MODEL。

MAXIMUM_ITEMSET_COUNT
指定要產生的項目集數目上限。 如果未指定任何數位,則會使用預設值。

預設值為 200000。

備註

項目集依支持度排名。 在具有相同支援度的專案集中,排序是任意的。

MAXIMUM_ITEMSET_SIZE
指定專案集中允許的項目數目上限。 將此值設定為 0 會指定專案集的大小沒有限制。

預設值為 3。

備註

減少此值可能會降低建立模型所需的時間,因為達到限制時,模型處理會停止。

MAXIMUM_SUPPORT
指定專案集支援的最大案例數目。 這個參數可以用來排除那些經常出現、因此可能意義不大的項目。

如果此值小於 1,則值代表總案例的百分比。 大於 1 的值代表可以包含專案集的絕對案例數目。

預設值為 1。

MINIMUM_ITEMSET_SIZE
指定專案集中允許的項目數目下限。 如果您增加此數量,模型可能會包含較少的項目集。 例如,如果您想要忽略單項目物件集,這會很有幫助。

預設值為 1。

備註

您無法藉由增加最小值來減少模型處理時間,因為 Analysis Services 必須在處理時計算單一專案的機率。 不過,藉由將此值設定為較高,您可以篩選出較小的專案集。

MINIMUM_PROBABILITY
指定規則為 true 的最小機率。

例如,如果您將此值設定為 0.5,表示不會產生小於 50% 機率的規則。

預設值為 0.4。

MINIMUM_SUPPORT
指定在演算法生成規則之前,必須包含項目集的最小案例數。

如果您將此值設定為小於 1,則最小案例數目會計算為總案例的百分比。

如果您將此值設定為大於 1 的整數,則指定最小案例數目被計算為必須包含項目集的案例計數。 如果記憶體有限,演算法可能會自動增加此參數的值。

預設值為 0.03。 這表示要包含在模型中,項目集必須在至少% 的 3 個案例中被找到。

OPTIMIZED_PREDICTION_COUNT
定義要快取的項目數量,來優化預測。

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

如果您為OPTIMIZED_PREDICTION_COUNT指定非零值,即使您要求其他預測 預測查詢最多可以傳回指定的項目數目。 不過,設定值可以改善預測效能。

例如,如果值設定為 3,演算法只會快取 3 個項目以進行預測。 您無法看到與所傳回的 3 個項目同樣可能的其他預測。

模型旗標

支援 Microsoft 關聯規則演算法使用的模型標誌如下。

不可為空
表示欄位不能包含 Null。 如果 Analysis Services 在模型定型期間遇到 Null,將會產生錯誤。

適用於採礦結構數據行。

模型僅存在
表示資料列會被視為有兩個可能的狀態: MissingExisting。 Null 是遺漏值。

適用於採礦模型數據行。

需求

關聯模型必須包含索引鍵數據行、輸入數據行和單一可預測數據行。

輸入和預測欄位

Microsoft關聯規則演算法支援下表所列的特定輸入數據行和可預測數據行。 如需採礦模型中內容類型意義的詳細資訊,請參閱內容類型(數據採礦)。

資料行 內容類型
輸入屬性 循環、離散、離散化、索引鍵、表格、已排序
可預測屬性 週期性的、離散、離散化、表格、有序的

備註

支援迴圈和已排序的內容類型,但演算法會將它們視為離散值,而且不會執行特殊處理。

另請參閱

Microsoft關聯演算法
關聯模型查詢範例
關聯模型的採礦模型內容 (Analysis Services - 數據採礦)