CREATE MINING STRUCTURE (DMX)

適用於: SQL Server Analysis Services

在資料庫中建立新的採礦結構,並選擇性地定義定型和測試資料分割。 建立採礦結構之後,您可以使用 ALTER MINING STRUCTURE (DMX) 語句,將模型新增至採礦結構。

語法

  
CREATE [SESSION] MINING STRUCTURE <structure>  
(  
    [(<column definition list>)]  
)  
[WITH HOLDOUT (<holdout-specifier> [OR <holdout-specifier>])]  
[REPEATABLE(<holdout seed>)]  
<holdout-specifier>::=  <holdout-maxpercent> PERCENT | <holdout-maxcases> CASES  

引數

結構
結構的唯一名稱。

資料行定義清單
以逗號分隔的資料行定義清單。

holdout-maxpercent
介於 1 到 100 之間的整數,表示要保留用於測試的資料百分比。

holdout-maxcases
整數,表示用於測試的案例數目上限。

如果針對 max cases 指定的值大於輸入案例的數目,則會使用所有輸入案例進行測試,並引發警告。

注意

如果同時指定百分比和最大案例數目,則會使用兩個限制的較小數目。

holdout 種子
做為種子的整數,用來開始分割資料。

如果設定為 0,則會使用採礦結構識別碼的雜湊做為種子。

注意

如果您需要確保可以重現分割區,您應該指定種子。

預設值:REPEATABLE(0)

備註

您可以藉由指定資料行清單、選擇性地指定資料行之間的階層式關聯性,然後選擇性地將採礦結構分割成定型和測試資料集,以定義採礦結構。

選擇性 SESSION 關鍵字表示結構是暫時結構,您只能在目前會話期間使用。 當會話終止時,將會刪除以 結構為基礎的結構和任何模型。 若要建立暫存採礦結構和模型,您必須先設定資料庫屬性 AllowSessionMiningModels。 如需詳細資訊,請參閱 資料採礦屬性

資料行定義清單

您可以定義採礦結構,方法是在資料行定義清單中為每個資料行包含下列資訊:

  • 名稱(必要)

  • 資料類型 (必要)

  • 散發

  • 模型旗標清單

  • 內容類型(必要)

  • 與屬性資料行的關聯性(只有在適用時才強制),由 RELATED TO 子句表示

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

<column name>    <data type>    [<Distribution>]    [<Modeling Flags>]    <Content Type>    [<column relationship>]  

針對資料行定義清單使用下列語法來定義巢狀資料表資料行:

<column name>    TABLE    ( <column definition list> )  

如需可用來定義結構資料行的資料類型、內容類型、資料行散發和模型旗標清單,請參閱下列主題:

您可以定義資料行的多個模型旗標值。 不過,您只能有一個內容類型和一個資料行的資料類型。

資料行關聯性

您可以將 子句加入至任何資料行定義語句,以描述兩個數據行之間的關聯性。 Analysis Services 支援使用下列 < 資料行關聯 > 性子句。


表示值階層。 RELATED TO 資料行的目標可以是巢狀資料表中的索引鍵資料行、案例資料列中的離散值資料行,或是具有 RELATED TO 子句的另一個資料行,表示更深層階層。

Holdout 參數

當您指定 holdout 參數時,您會建立結構資料的分割區。 您為鑒效組指定的數量會保留用於測試,而剩餘的資料則用於定型。 根據預設,如果您使用 SQL Server Data Tools (SSDT) 建立採礦結構,則會為您建立保留資料分割,其中包含 30% 的測試資料和 70% 的定型資料。 如需詳細資訊,請參閱 定型和測試資料集

如果您使用資料採礦延伸模組建立採礦結構(DMX),則必須手動指定要建立鑒效組資料分割。

注意

ALTER MINING STRUCTURE 語句不支援鑒效組。

您可以指定最多三個鑒效組參數。 如果您同時指定最大保留案例數目和保留百分比,則會保留案例的百分比,直到達到最大案例限制為止。 您可以將鑒效組的百分比指定為整數, 後面接著 PERCENT 關鍵字,並將案例數目上限指定為整數, 後面接著 CASES 關鍵字。 您可以依任何順序合併條件,如下列範例所示:

WITH HOLDOUT (20 PERCENT)   
WITH HOLDOUT (2000 CASES)   
WITH HOLDOUT (20 PERCENT OR 2000 CASES)   
WITH HOLDOUT (2000 CASES OR 20 PERCENT)  

鑒效組種子會控制將案例隨機指派給定型或測試資料集的程式起點。 藉由設定鑒效組種子,您可以確定資料分割可以重複。 如果您未指定鑒效組種子,Analysis Services 會使用採礦結構的名稱來建立種子。 如果您重新命名 結構,種子值將會變更。 鑒效組種子參數可以搭配其他保留參數之一或兩者使用。

注意

由於分割區資訊是使用定型資料快取,因此若要使用 holdout,您必須確定 採礦結構的 CacheMode 屬性設定為 KeepTrainingData 。 這是 Analysis Services 中新採礦結構的預設設定。 將 CacheMode 屬性變更為 ClearTrainingCases 的現有採礦結構,其中包含鑒效組資料分割不會影響任何已處理的採礦模型。 不過,如果未 MiningStructureCacheMode 設定為 KeepTrainingData ,則 holdout 參數將不會有任何作用。 這表示所有來源資料都將用於定型,而且不會提供任何測試集。 分割區的定義會以 結構快取;如果您清除定型案例的快取,也會清除測試資料的快取,以及鑒效組的定義。

範例

下列範例示範如何使用 DMX 建立具有 holdout 的採礦結構。

範例 1:新增不含定型集的結構

下列範例會建立名為 New Mailing 的新採礦結構,而不建立任何相關聯的採礦模型,而不使用 holdout。 若要瞭解如何將採礦模型新增至 結構,請參閱 ALTER MINING STRUCTURE (DMX)

CREATE MINING STRUCTURE [New Mailing]  
(  
    CustomerKey LONG KEY,   
    Gender TEXT DISCRETE,  
    [Number Cars Owned] LONG DISCRETE,  
    [Bike Buyer] LONG DISCRETE   
)  

範例 2:指定保留百分比和種子

您可以在資料行定義清單之後加入下列子句,以定義可用於測試與採礦結構相關聯之所有採礦模型的資料集。 語句會建立一個測試集,此測試集是輸入案例總數的 25%,但案例數目上限沒有限制。 5000 會作為建立分割區的種子。 當您指定種子時,每次處理採礦結構時,都會針對測試集選擇相同的案例,只要基礎資料不會變更。

CREATE MINING STRUCTURE [New Mailing]  
(  
    CustomerKey LONG KEY,   
    Gender TEXT DISCRETE,  
    [Number Cars Owned] LONG DISCRETE,  
    [Bike Buyer] LONG DISCRETE   
)   
WITH HOLDOUT(25 PERCENT) REPEATABLE(5000)  

範例 3:指定保留百分比和最大案例

下列子句會建立一個測試集,其中包含總輸入案例的 25%, 或 2000 個案例,無論哪一個案例都更少。 由於 0 指定為種子,因此會使用採礦結構的名稱來建立用來開始取樣輸入案例的種子。

CREATE MINING STRUCTURE [New Mailing]  
(  
    CustomerKey LONG KEY,   
    Gender TEXT DISCRETE,  
    [Number Cars Owned] LONG DISCRETE,  
    [Bike Buyer] LONG DISCRETE   
)   
WITH HOLDOUT(25 PERCENT OR 2000 CASES) REPEATABLE(0)  

另請參閱

資料採礦延伸模組 (DMX) 資料定義語句
資料採礦延伸模組 (DMX) 資料動作陳述式
資料採礦延伸模組 (DMX) 陳述式參考