ALTER MINING STRUCTURE (DMX)

建立以現有採礦結構為基礎的新採礦模型。使用 ALTER MINING STRUCTURE 陳述式來建立新的採礦模型時,結構也必須存在。相反地,在使用 CREATE MINING MODEL (DMX) 陳述式時,您要同時建立模型並自動產生其基礎採礦結構。

語法

ALTER MINING STRUCTURE <structure>
ADD MINING MODEL <model>
(
    <column definition list>
  [(<nested column definition list>) [WITH FILTER (<nested filter criteria>)]]
)
USING <algorithm> [(<parameter list>)] 
[WITH DRILLTHROUGH]
[,FILTER(<filter criteria>)]

引數

  • structure
    要對其加入採礦模型之採礦結構的名稱。

  • model
    採礦模型的唯一名稱。

  • column definition list
    資料行定義的逗號分隔清單。

  • nested column definition list
    取自巢狀資料表之資料行的逗號分隔清單 (如果適用的話)。

  • nested filter criteria
    套用至巢狀資料表中資料行的篩選運算式。

  • algorithm
    提供者所定義的資料採礦演算法名稱。

    [!附註]

    目前提供者所支援之演算法的清單可使用 DMSCHEMA_MINING_SERVICES 資料列集 加以擷取。若要檢視目前 Analysis Services 執行個體中所支援的演算法,請參閱<資料採礦屬性>。

  • parameter list
    選擇性。提供者自訂之演算法參數的逗號分隔清單。

  • filter criteria
    套用至案例資料表中之資料行的篩選運算式。

備註

如果採礦結構包含複合索引鍵,採礦模型就必須包含結構中定義的所有索引鍵資料行。

如果模型不需要可預測資料行 (例如使用 Microsoft 群集與 Microsoft 時序群集演算法建立的模型),您就不必在陳述式中包含資料行定義。產生之模型中的所有屬性都會當成輸入處理。

在套用至案例資料表的 WITH 子句中,您可以同時指定篩選和鑽研的選項:

  • 加入 FILTER 關鍵字和篩選條件。篩選器會套用到採礦模型中的案例。

  • 加入 DRILLTHROUGH 關鍵字可以讓採礦模型的使用者從模型結果鑽研至案例資料。在資料採礦延伸模組 (DMX) 中,只有在建立模型時才能啟用鑽研。

若要同時使用案例篩選和鑽研,可以使用下列範例所示的語法,在單一 WITH 子句中結合關鍵字:

WITH DRILLTHROUGH, FILTER(Gender = 'Male')

資料行定義清單

請藉由指定資料行定義清單 (其中包含每個資料行的下列資訊) 來定義模型的結構:

  • 名稱 (強制的)

  • 別名 (選擇性)

  • 模型旗標

  • 指出資料行是否包含可預測值之演算法的預測要求,由 PREDICT 或 PREDICT_ONLY 子句指出

使用下列資料行定義清單的語法來定義單一資料行:

<structure column name>  [AS <model column name>]  [<modeling flags>]    [<prediction>]

資料行名稱和別名

在資料行定義清單中使用的資料行名稱,必須是採礦結構中所使用的資料行名稱。不過,您也可以選擇定義別名來代表採礦模型中的結構資料行。您也可以為相同的結構資料行建立多個資料行定義,然後為每個資料行副本指派不同的別名及預測使用方式。根據預設,如果沒有定義別名,就會使用結構資料行名稱。如需詳細資訊,請參閱<如何:建立模型資料行的別名>。

如果是巢狀資料表資料行,則要指定巢狀資料表的名稱、將資料類型指定為 TABLE,然後提供巢狀資料行的清單以包含在模型中 (加上引號)。

您可以將篩選準則運算式加在巢狀資料表資料行定義之後,以定義套用至巢狀資料表的篩選運算式。

模型旗標

Analysis Services 支援下列用於採礦模型資料行的模型旗標:

[!附註]

NOT_NULL 模型旗標適用於採礦結構資料行。如需詳細資訊,請參閱<CREATE MINING STRUCTURE (DMX)>。

術語

定義

REGRESSOR

指示演算法可以在迴歸演算法的迴歸公式中使用指定的資料行。

MODEL_EXISTENCE_ONLY

指出屬性資料行的值是否比屬性的存在更重要。

您可以為一個資料行定義多個模型旗標。如需有關如何使用模型旗標的詳細資訊,請參閱<模型旗標 (DMX)>。

預測子句

預測子句描述如何使用預測資料行。下表列出可能的子句。

PREDICT

這個資料行可以由模型預測,而其值可以用來當做輸入以預測其他可預測資料行的值。

PREDICT_ONLY

這個資料行可以依模型預測,但是其值不能用於輸入案例中以預測其他可預測資料行的值。

篩選準則運算式

您可以定義篩選來限制用於採礦模型中的案例。篩選可套用至案例資料表中的資料行或巢狀資料表中的資料列,或套用至兩者。

篩選準則運算式是經過簡化的 DMX 述詞,與 WHERE 子句類似。篩選運算式限於使用基本數學運算子、純量和資料行名稱的公式。EXISTS 運算子則是例外;如果子查詢至少傳回一個資料列,該運算子就會評估為 True。述詞可以使用常見的邏輯運算子 AND、OR 和 NOT 等來結合。

如需有關搭配採礦模型使用篩選的詳細資訊,請參閱<建立採礦模型的篩選 (Analysis Services - 資料採礦)>。

[!附註]

篩選中的資料行必須是採礦結構資料行。您無法在模型資料行或別名資料行上建立篩選。

如需有關 DMX 運算子和語法的詳細資訊,請參閱<採礦模型資料行>。

參數定義清單

您可以將演算法參數加入至參數清單,以調整模型的效能和功能。可以使用的參數是依照您在 USING 子句中指定的演算法而定。如需與每一種演算法相關聯的參數清單,請參閱<資料採礦演算法 (Analysis Services - 資料採礦)>。

參數清單的語法如下:

[<parameter> = <value>, <parameter> = <value>,…]

範例 1:將模型加入至結構

下列範例將 Naive Bayes 採礦模型加入至 New Mailing 採礦結構,並將屬性狀態的最大數目限制為 50。

ALTER MINING STRUCTURE [New Mailing]
ADD MINING MODEL [Naive Bayes]
(
    CustomerKey, 
    Gender,
    [Number Cars Owned],
    [Bike Buyer] PREDICT
)
USING Microsoft_Naive_Bayes (MAXIMUM_STATES = 50)

範例 2:將篩選模型加入至結構

下列範例將採礦模型 Naive Bayes Women 加入至 New Mailing 採礦結構。新模型的基本結構與在範例 1 中加入的採礦模型相同;不過這個模型將取自採礦結構的案例限制為年過 50 的女性客戶。

ALTER MINING STRUCTURE [New Mailing]
ADD MINING MODEL [Naive Bayes Women]
(
    CustomerKey, 
    Gender,
    [Number Cars Owned],
    [Bike Buyer] PREDICT
)
USING Microsoft_Naive_Bayes
WITH FILTER([Gender] = 'F' AND [Age] >50)

範例 3:將篩選模型加入至具有巢狀資料表的結構

下列範例將採礦模型加入至購物籃採礦結構的修改版本中。範例中使用的採礦結構已修改為加入 Region 資料行 (包含客戶地區的屬性),以及 Income Group 資料行 (使用 High、Moderate 或 Low 等值將客戶收入分類)。

此採礦結構也會包含列出客戶已購買之項目清單的巢狀資料表。

因為採礦結構包含巢狀資料表,所以您可以在案例資料表、巢狀資料表 (或這兩者) 上定義篩選。此範例結合了案例篩選和巢狀資料列篩選,將案例限制為已購買其中一款公路胎型號的富有歐洲客戶。

ALTER MINING STRUCTURE [Market Basket with Region and Income]
ADD MINING MODEL [Decision Trees]
(
    CustomerKey, 
    Region,
    [Income Group],
    [Product] PREDICT (Model) 
WITH FILTER (EXISTS (SELECT * FROM [v Assoc Seq Line Items] WHERE 
 [Model] = 'HL Road Tire' OR
 [Model] = 'LL Road Tire' OR
 [Model] = 'ML Road Tire' )
)
) WITH FILTER ([Income Group] = 'High' AND [Region] = 'Europe')
USING Microsoft_Decision Trees