分享方式:


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。 如需詳細資訊,請參閱 數據採礦屬性

數據行定義清單

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

  • 名稱 (必要項)

  • 資料型態 (必要)

  • Distribution

  • 模型旗標清單

  • 內容類型(必要)

  • 與屬性數據行的關聯性(只有在適用時才強制),由 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) 陳述式參考