共用方式為


建立類神經網路結構和模型 (中繼資料採礦教學課程)

若要建立資料採礦模型,您必須先使用「資料採礦精靈」,根據新的資料來源檢視建立新的採礦結構。 在這項工作中,您將利用這個精靈來建立採礦結構,並同時根據 Microsoft 類神經網路演算法來建立關聯的採礦模型。

類神經網路相當靈活,可以分析許多輸入和輸出的組合,因此,您應該試驗數種處理資料的方式,以取得最佳的結果。 例如,您可能會想要自訂將服務品質的數值目標「分類收納」(Binned) 或分組的方式,以符合特定的商務需求。 若要這樣做,您將會以不同的方式將新的資料行加入到可分組數值資料的採礦結構中,然後建立一個模型來使用這個新的資料行。 您將會使用這些採礦模型來執行一些探索。

最後,當您得知類神經網路模型中哪些因素對於您的商務問題有最大的影響力時,您將會建立個別的模型來進行預測及計分。 您將會使用 Microsoft 羅吉斯迴歸演算法,此演算法是根據類神經網路模型,但是已經最佳化,可根據特定輸入來尋找方案。

步驟

  1. 使用預設值建立基本採礦結構

  2. 建立可預測資料行的複本,並透過將值分類收納修改複本

  3. 加入新模型,並將新資料行做為該模型的輸出

  4. 為修改的可預測屬性建立別名

  5. 指派種子,讓模型以相同方式處理;處理兩個模型

建立預設的撥接中心結構

若要建立預設的類神經網路採礦結構和模型

  1. 在 SQL Server Data Tools (SSDT) 的 [方案總管] 中,以滑鼠右鍵按一下 [採礦結構],再選取 [新增採礦結構]

  2. [歡迎使用資料採礦精靈] 頁面上,按 [下一步]

  3. [選取定義方法] 頁面上,確認已選取 [從現有的關聯式資料庫或資料倉儲],再按 [下一步]

  4. [建立資料採礦結構] 頁面上,確認 [建立具有採礦模型的採礦結構] 選項已選取。

  5. 按一下 [您要使用哪一種資料採礦技術?] 選項的下拉式清單,然後選取 [Microsoft 類神經網路]

    羅吉斯迴歸模型是以類神經網路為基礎,因此,您可以重複使用相同的結構,並加入新的採礦模型。

  6. [下一步]

    此時會出現 [選取資料來源檢視] 頁面。

  7. [可用的資料來源檢視] 下,選取 [撥接中心],然後按 [下一步]

  8. [指定資料表類型] 頁面上,選取 FactCallCenter 資料表旁的 [案例] 核取方塊。 針對 DimDate 請勿選取任何功能。 按 [下一步]

  9. [指定定型資料] 頁面上,選取 FactCallCenterID 資料行旁的 [索引鍵]

  10. 選取 [預測][輸入] 核取方塊。

  11. 選取 [索引鍵][輸入],以及 [預測] 核取方塊,如下表所示:

    資料表/資料行

    索引鍵/輸入/預測

    AutomaticResponses

    輸入

    AverageTimePerIssue

    輸入/預測

    Calls

    輸入

    DateKey

    請勿使用

    DayOfWeek

    輸入

    FactCallCenterID

    索引鍵

    IssuesRaised

    輸入

    LevelOneOperators

    輸入/預測

    LevelTwoOperators

    輸入

    Orders

    輸入/預測

    ServiceGrade

    輸入/預測

    Shift

    輸入

    TotalOperators

    請勿使用

    WageType

    輸入

    請注意,多個可預測資料行已選取。 類神經網路演算法的強項之一是,它可以分析所有可能的輸入和輸出屬性組合。 最好不要對大型資料集這樣做,因為處理時間可能會以指數方式增加。

  12. [指定資料行的內容和資料類型] 頁面上,確認此方格包含下表所顯示的資料行、內容類型和資料類型,然後按 [下一步]

    資料行

    內容類型

    資料類型

    AutomaticResponses

    Continuous

    Long

    AverageTimePerIssue

    Continuous

    Long

    Calls

    Continuous

    Long

    DayOfWeek

    Discrete

    Text

    FactCallCenterID

    Key

    Long

    IssuesRaised

    Continuous

    Long

    LevelOneOperators

    Continuous

    Long

    LevelTwoOperators

    Continuous

    Long

    Orders

    Continuous

    Long

    ServiceGrade

    Continuous

    Double

    Shift

    Discrete

    Text

    WageType

    Discrete

    Text

  13. [建立測試集] 頁面上,清除 [測試資料的百分比] 選項的文字方塊。 按 [下一步]

  14. [正在完成精靈] 頁面的 [採礦結構名稱] 中,輸入撥接中心。

  15. [採礦模型名稱] 中,輸入撥接中心預設 NN,再按一下 [完成]

    由於您無法鑽研包含類神經網路模型的資料,因此會停用 [允許使用鑽研] 方塊。

  16. 在 [方案總管] 中,以滑鼠右鍵按一下您剛剛建立之資料採礦結構的名稱,然後選取 [處理]

了解離散化

根據預設,當您建立具有數值之可預測屬性的類神經網路模型時,Microsoft 類神經網路演算法會將該屬性視為一個連續數字。 例如,ServiceGrade 屬性是一個理論上範圍從 0.00 (已接聽所有電話) 到 1.00 (已掛斷所有呼叫端) 的數字。 在此資料集中,值的分佈如下:

服務等級值的分佈

因此,當您處理模型時,輸出結果的群組方式可能會和您預期的不同。 例如,如果您使用叢集來識別值的最佳群組,演算法會將 ServiceGrade 的值分割成類似 0.0748051948 - 0.09716216215 的範圍。 雖然這個群組在數學上是正確的,但是這些範圍對商務使用者而言,可能沒有很大的意義。 若要以不同方式分組數值,您可以建立數值資料行的一個或多個複本,並指定資料採礦演算法應該要如何處理這些值。 例如,您可能會指定此演算法應該將這些值分到五個以下的箱子內。

Analysis Services 會提供各種方法來分類收納或處理數值資料。 下表說明當輸出屬性 ServiceGrade 已透過三種不同的方式處理之後,所產生的結果之間的差異:

  • 將其視為連續的數字。

  • 讓演算法使用叢集來識別值的最佳排列。

  • 指定數字要透過 Equal Areas 方法進行分類收納。

預設模型 (連續)

透過叢集進行分類收納

透過同等區域進行分類收納

VALUE

SUPPORT

Missing

0

0.09875

120

VALUE

SUPPORT

< 0.0748051948

34

0.0748051948 - 0.09716216215

27

0.09716216215 - 0.13297297295

39

0.13297297295 - 0.167499999975

10

>= 0.167499999975

10

VALUE

SUPPORT

< 0.07

26

0.07 - 0.00

22

0.09 - 0.11

36

>= 0.12

36

[!附註]

當所有資料都經過處理之後,您就可以從模型的臨界統計資料節點取得這些統計資料。 如需有關臨界統計資料節點的詳細資訊,請參閱<類神經網路模型的採礦模型內容 (Analysis Services - 資料採礦)>。

在此表中,VALUE 資料行顯示如何處理 ServiceGrade 的數字。 SUPPORT 資料行顯示多少案例有該值,或在該範圍中。

  1. 使用連續的數字 (預設值)

    如果您使用預設方法,演算法會計算 120 個相異值的結果,其平均值為 0.09875。 您也可以看到遺漏值的數目。

  2. 透過叢集進行分類收納

    當您讓 Microsoft 叢集演算法決定值的選擇性群組方式時,演算法會將 ServiceGrade 的值群組為五 (5) 個範圍。 從 SUPPORT 資料行可得知,案例數目未平均分佈在各範圍中。

  3. 透過同等區域進行分類收納

    當您選擇此方法時,演算法會強制將值分為相同大小的值區,這又會變更各範圍的上下限。 您可以指定值區的數目,但要避免值區中有太少的值。

如需有關分類收納選項的詳細資訊,請參閱<分隔方法 (資料採礦)>。

另外,您可以不使用數值,改為加入個別的衍生資料行,以便將服務等級分類成預先定義的目標範圍,例如最佳 (ServiceGrade <= 0.05)、可接受 (0.10 > ServiceGrade > 0.05) 及差 (ServiceGrade >= 0.10)。

建立資料行的複本及變更離散化方法

在 Analysis Services 資料採礦中,您可以輕鬆地變更數值資料分類收納到採礦結構中的方法,其方式是加入一個包含目標資料的資料行複本,並變更離散化方法。

下列程序描述如何針對包含目標屬性 ServiceGrade 的採礦資料行建立一個複本。 您可以在採礦結構中建立任何資料行的多個複本,包括可預測的屬性。

然後您會在複製的資料行中自訂數值的群組,以減少群組的複雜性。 在此教學課程中,您將會使用離散化的 Equal Areas 方法,並指定四個值區。 這個方法所產生的群組與商務使用者感興趣的目標值非常接近。

[!附註]

在初次探索資料時,您也可以實驗各種離散化方法,或先嘗試群集資料。

若要在採礦結構中建立資料行的自訂複本

  1. 在 [方案總管] 中,按兩下您剛剛建立的採礦結構。

  2. 在 [採礦結構] 索引標籤上,按一下 [加入採礦結構資料行]

  3. [選取資料行] 對話方塊中,從 [來源資料行] 的清單中選取 [ServiceGrade],然後按一下 [確定]

    新的資料行就會加入到採礦結構資料行的清單中。 根據預設,新的採礦資料行與現有資料行同名,但是後面多加了一個數值,例如 ServiceGrade 1。 您可以變更此資料行的名稱,使名稱更具描述性。

    您也將指定離散化方法。

  4. 以滑鼠右鍵按一下 [ServiceGrade 1],然後選取 [屬性]

  5. [屬性] 視窗中,找出 [名稱] 屬性,然後將名稱變更為 Service Grade Binned。

  6. 隨即出現一個對話方塊,詢問您是否要針對所有相關採礦模型資料行的名稱進行相同的變更。 按一下 [否]

  7. [屬性] 視窗中,找出 [資料類型] 區段,必要時將它展開。

  8. 將屬性 Content 的值從 Continuous 變更為 Discretized。

    現在有下列屬性可以使用。 變更屬性值,如下表所示:

    屬性

    預設值

    新值

    DiscretizationMethod

    Continuous

    EqualAreas

    DiscretizationBucketCount

    沒有值

    4

    [!附註]

    DiscretizationBucketCount 的預設值實際上是 0,這表示演算法會自動決定最佳的值區數目。 因此,如果您想要將此屬性的值重設為其預設值,請輸入 0。

  9. 在資料採礦設計師中,按一下 [採礦模型] 索引標籤。

    請注意,當您加入採礦結構資料行的複本時,此複本的使用旗標會自動設定為 Ignore。 通常當您在採礦結構中加入資料行的複本時,您不會搭配原始資料行來使用此複本進行分析,否則演算法將會在兩個資料行之間尋找很強的關聯,這樣可能會遮蔽其他關聯性。

將新的採礦模型加入採礦結構中

現在您已經針對目標屬性建立新的群組,所以需要加入一個新的採礦模型來使用離散化資料行。 當您完成時,CallCenter 採礦結構將會有兩個採礦模型:

  • Call Center Default NN 採礦模型會將 ServiceGrade 值當做連續範圍來處理。

  • 您將建立新的採礦模型 Call Center Binned NN,此採礦模型將分佈在四個相同大小之值區的 ServiceGrade 資料行值做為其目標結果。

若要根據新的離散化資料行來加入採礦模型

  1. 在 [方案總管] 中,以滑鼠右鍵按一下您剛剛建立的採礦結構,然後選取 [開啟]

  2. 按一下 [採礦模型] 索引標籤。

  3. 按一下 [建立相關的採礦模型]

  4. [新增採礦模型] 對話方塊的 [模型名稱] 中,輸入分類收納的撥接中心 NN。 在 [演算法名稱] 下拉式清單中,選取 [Microsoft 類神經網路]

  5. 在新的採礦模型所包含的資料行清單中,尋找 ServiceGrade,然後將使用方式從 Predict 變更為 Ignore。

  6. 同樣地,找出 ServiceGrade Binned,然後將使用方式從 Ignore 變更為 Predict。

一般來說,您無法比較使用不同可預測屬性的採礦模型。 但是您可以為採礦模型資料行建立別名。 也就是說,您可以在採礦模型內重新命名 ServiceGrade Binned 資料行,好讓它與原始資料行同名。 然後您可以在精確度圖表中直接比較這兩個模型,即使資料是以不同方式離散化也可以。

若要在採礦模型中加入採礦結構資料行的別名

  1. [採礦模型] 索引標籤的 [結構] 底下,選取 [ServiceGrade Binned]。

    請注意,[屬性] 視窗會顯示 [ScalarMiningStructure] 資料行物件的屬性。

  2. 在採礦模型 [ServiceGrade Binned NN] 的資料行底下,按一下對應 [ServiceGrade Binned] 資料行的資料格。

    請注意,現在 [屬性] 視窗會顯示 MiningModelColumn 物件的屬性。

  3. 找出 [名稱] 屬性,並將值變更為 ServiceGrade。

  4. 找出 [描述] 屬性,並輸入暫時資料行別名。

    [屬性] 視窗應該包含以下資訊:

    屬性

    說明

    暫時資料行別名

    識別碼

    ServiceGrade Binned

    模型旗標

      

    名稱

    服務等級

    SourceColumn 識別碼

    服務等級 1

    使用方式

    Predict

  5. 按一下 [採礦模型] 索引標籤中的任何地方。

    此方格會更新,在資料行使用方式旁邊顯示新的暫時資料行別名 ServiceGrade。 包含採礦結構及兩個採礦模型的方格應該如下所示:

    結構

    撥接中心預設 NN

    分類收納的撥接中心 NN

      

    Microsoft 類神經網路

    Microsoft 類神經網路

    AutomaticResponses

    輸入

    輸入

    AverageTimePerIssue

    Predict

    Predict

    Calls

    輸入

    輸入

    DayOfWeek

    輸入

    輸入

    FactCallCenterID

    Key

    Key

    IssuesRaised

    輸入

    輸入

    LevelOneOperators

    輸入

    輸入

    LevelTwoOperators

    輸入

    輸入

    Orders

    輸入

    輸入

    ServceGrade Binned

    Ignore

    Predict (ServiceGrade)

    ServiceGrade

    Predict

    Ignore

    Shift

    輸入

    輸入

    Total Operators

    輸入

    輸入

    WageType

    輸入

    輸入

處理模型

最後,為了確認您建立的模型可以輕鬆比較,您將會針對預設模型和分類收納模型設定種子參數。 設定初始值可保證每一個模型都會從相同點開始處理資料。

[!附註]

如果您沒有為種子參數指定一個數值,SQL Server Analysis Services 將會根據模型的名稱產生一個種子。 因為模型的名稱永遠不同,因此您必須設定一個初始值,以確保它們會以相同順序處理資料。

指定種子和處理模型

  1. [採礦模型] 索引標籤中,以滑鼠右鍵按一下名為「Call Center - LR」之模型的資料行,然後選取 [設定演算法參數]

  2. 在 HOLDOUT_SEED 參數的資料列中,按一下 [值] 底下的空資料格,然後輸入 1。 按一下 [確定]。 針對與此結構有關的每一個模型重複這個步驟。

    [!附註]

    只要您將相同的初始值用於所有相關的模型,您選擇當做初始值的值就不重要了。

  3. [採礦模型] 功能表上,選取 [處理採礦結構和所有模型]。 按一下 [是],將更新的資料採礦專案部署到伺服器上。

  4. [處理採礦模型] 對話方塊中,按一下 [執行]

  5. 按一下 [關閉] 以關閉 [處理進度] 對話方塊,然後再按一次 [處理採礦模型] 對話方塊中的 [關閉]

現在您已經建立兩個相關的採礦模型,您將會瀏覽資料來探索資料的關聯性。

本課程的下一項工作

探索撥接中心模型 (中繼資料採礦教學課程)

請參閱

概念

採礦結構 (Analysis Services - 資料採礦)