模型旗標 (資料採礦)

您可以使用 SQL Server Analysis Services 中的模型旗標,為資料採礦演算法提供在案例資料表中定義之資料的其他資訊。演算法可以使用此一資訊建立更精確的資料採礦模型。

您可以使用資料採礦延伸模組 (DMX),以程式設計的方式來定義模型旗標,或是在 Business Intelligence Development Studio 的資料採礦設計師中定義它們。如需有關如何在 DMX 陳述式中定義這些旗標的詳細資訊,請參閱<採礦模型資料行>。

有些模型旗標會定義於採礦結構層級,有些則會定義於採礦模型資料行的層級。例如,NOT NULL 模型旗標是用於採礦結構資料行。您可以在採礦模型資料行中定義其他模型旗標。

下列清單描述 Analysis Services 中支援的模型旗標。如需有關特定演算法所支援之模型旗標的詳細資訊,請參閱個別演算法的技術參考主題。

  • NOT NULL
    表示屬性資料行的值絕對不能包含 Null 值。如果 Analysis Services 在模型培訓處理過程中遇到這個屬性資料行的 Null 值,將會產生錯誤。

  • MODEL_EXISTENCE_ONLY
    表示將把資料行被視為擁有兩個狀態:Missing 和 Existing。若值為 NULL,則會視為「遺漏」。

    [!附註]

    「遺漏」是演算法所使用的特殊狀態,與資料行中的文字值「遺漏」不同。如需詳細資訊,請參閱<遺漏值 (Analysis Services - 資料採礦)>。

    此模型旗標的一般用法是表示 NULL 狀態具有隱含意義的屬性,而 NOT NULL 狀態則可能不如資料行擁有值來得重要。例如,如果從未簽署過合約,[DateContractSigned] 資料行可能為 NULL,如果簽署了合約,則為 NOT NULL。因此,如果模型的用途是預測是否會簽署合約,可以使用 MODEL_EXISTENCE_ONLY 旗標來忽略 NOT NULL 案例中的精確日期值,並僅區分值為 Missing 或 Existing 的案例。

  • REGRESSOR
    表示此資料行是處理期間當做迴歸輸入變數使用的候選。這個旗標定義在採礦模型資料行上,而且只能套用至具有連續數值資料類型的資料行。如需有關這個旗標用法的詳細資訊,請參閱本主題稍後的章節。

[!附註]

除了 Analysis Services 預先定義的模型旗標外,協力廠商外掛程式也可能擁有其他的模型旗標。

檢視和變更模型旗標

在資料採礦設計師中,您可以藉由檢視結構或模型的屬性來檢視及修改與採礦結構相關聯的模型旗標。

檢視或變更結構資料行或模型資料行的模型旗標

  1. 在 BI Development Studio 的 [方案總管] 中,按兩下採礦結構。

  2. 若要設定 NOT NULL 模型旗標,按一下 [採礦結構] 索引標籤。

    若要設定 REGRESSOR 或 MODEL_EXISTENCE_ONLY 旗標,按一下 [採礦模型] 索引標籤。

  3. 以滑鼠右鍵按一下要檢視或變更的資料行,然後選取 [屬性]

  4. 若要新增模型旗標,按一下 [ModelingFlags] 屬性,然後選取要使用之模型旗標的核取方塊。

    只有適合資料行資料類型的模型旗標才會顯示。

    [!附註]

    在變更模型旗標後,必須重新處理模型。

您不能使用 DMX 變更在現有採礦模型和結構中使用的模型旗標。您必須使用 ALTER MINING STRUCTURE .ADD MINING MODEL 語法建立新的採礦模型。

如果不確定在目前的結構中是使用什麼模型旗標,可以藉由使用下列語法建立傳回模型旗標的查詢。

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_STRUCTURE_COLUMNS
WHERE STRUCTURE_NAME = '<structure name>'

使用 REGRESSOR 模型旗標

在資料行上設定 REGRESSOR 模型旗標亦即向演算法表示該資料行可能包含迴歸輸入變數。模型中使用的實際迴歸輸入變數是依照演算法而定。如果迴歸輸入變數無法建立可預測屬性的模型,則可能會遭到捨棄。

使用資料採礦精靈建立模型時,所有連續的輸入資料行都會標記為可能的迴歸輸入變數。因此,即使未在資料行上明確地設定 REGRESSOR 旗標,也可能會在模型中將該資料行當做迴歸輸入變數使用。

您可以針對採礦模型的結構描述資料列集執行查詢來判斷實際用於已處理模型的迴歸輸入變數,如下列範例所示:

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_columnS
WHERE MODEL_NAME = '<model name>'

注意:如果您修改採礦模型並將資料行的內容類型從連續變更為離散,則必須手動變更採礦資料行上的旗標,然後重新處理模型。

線性迴歸模型中的迴歸輸入變數

線性迴歸模型是以 Microsoft 決策樹演算法為基礎。即使您不使用 Microsoft 線性迴歸演算法,任何決策樹模型仍可能包含代表連續屬性迴歸的樹狀結構或節點。

您不需要指定連續的資料行代表迴歸輸入變數。即使未在資料行上設定 REGRESSOR 旗標,Microsoft 決策樹演算法也會將資料集分割成具備有意義之模式的區域。其差別是當您設定模型旗標時,演算法會嘗試尋找 a*C1 + b*C2 + ... 形式的迴歸方程式,以便在樹狀結構的節點中比對模式。之後會計算剩餘數的總和,如果差異過大,就會在樹狀結構中強制進行分割。

例如,如果您使用 Income 做為屬性來預測客戶購買行為,且在資料行上設定 REGRESSOR 模型旗標,則演算法首先會使用標準迴歸公式來比對 Income 值。如果差異過大,就會放棄迴歸公式,且根據其他的屬性分割樹狀結構。在分割之後,決策樹演算法就會接著嘗試在每個分支中比對迴歸輸入變數與收入。

您可以使用 FORCE_REGRESSOR 參數來確保演算法會使用特定的迴歸輸入變數。這個參數可用於決策樹演算法及線性迴歸演算法。