Share via


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

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

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

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

建立預設的撥接中心結構

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

  1. 在 Business Intelligence Development Studio 的 [方案總管] 中,以滑鼠右鍵按一下 [採礦結構],再選取 [新增採礦結構]

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

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

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

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

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

  6. [下一步]

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

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

  8. [指定資料表類型] 頁面上,選取 [FactCallCenter] 資料表旁的 [案例] 核取方塊。按 [下一步]

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

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

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

    資料表/資料行

    索引鍵/輸入/預測

    AutomaticResponses

    輸入

    AverageTimePerIssue

    輸入/預測

    Calls

    輸入

    DateKey

    請勿使用

    DayOfWeek

    輸入

    FactCallCenterID

    索引鍵

    IssuesRaised

    輸入

    LevelOneOperators

    輸入/預測

    LevelTwoOperators

    輸入

    Orders

    輸入/預測

    ServiceGrade

    輸入/預測

    Shift

    輸入

    TotalOperators

    請勿使用

    WageType

    輸入

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

    資料行

    內容類型

    資料類型

    AutomaticResponses

    連續

    Long

    AverageTimePerIssue

    連續

    Long

    Calls

    連續

    Long

    DayOfWeek

    離散

    Text

    FactCallCenterID

    索引鍵

    Long

    IssuesRaised

    連續

    Long

    LevelOneOperators

    連續

    Long

    LevelTwoOperators

    連續

    Long

    Orders

    連續

    Long

    ServiceGrade

    連續

    Double

    Shift

    離散

    Text

    WageType

    離散

    Text

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

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

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

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

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

了解離散化

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

服務等級值的分佈

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

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

  • 將其視為連續的數字

  • 讓演算法透過可能的最佳方法 (也就是群集) 將值離散化

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

預設模型 (連續)

透過群集進行分類收納

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

VALUESUPPORT
Missing0
0.09875120
VALUESUPPORT
< 0.074805194834
0.0748051948 - 0.0971621621527
0.09716216215 - 0.1329729729539
0.13297297295 - 0.16749999997510
>= 0.16749999997510
VALUESUPPORT
< 0.0726
0.07 - 0.0022
0.09 - 0.1136
>= 0.1236

在此表中,VALUE 一欄會顯示如何處理連續數字,SUPPORT 一欄則顯示該值、範圍或數值類型找到多少資料列。如需有關分類收納選項的詳細資訊,請參閱<分隔方法 (資料採礦)>。

[!附註]

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

另外,您可以不使用數值,改為加入個別的衍生資料行,以便將服務等級分類成預先定義的目標範圍,例如最佳 (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. [屬性] 視窗中,找出 [名稱] 屬性,然後將名稱變更為分類收納的撥接中心 NN。

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

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

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

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

    屬性

    預設值

    新值

    DiscretizationMethod

    Continuous

    EqualAreas

    DiscretizationBucketCount

    沒有值

    4

    [!附註]

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

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

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

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

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

  • 「撥接中心預設 NN」採礦模型會將 ServiceGrade 值當做連續範圍來處理。

  • 「分類收納的撥接中心 NN」採礦模型會將 ServiceGrade 值離散化成四個不同的值區。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    屬性

    描述

    暫時資料行別名

    識別碼

    ServiceGrade Binned

    模型旗標

      

    Name

    服務等級

    SourceColumn 識別碼

    服務等級 1

    使用方式

    Predict

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

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

    結構

    撥接中心預設 NN

    分類收納的撥接中心 NN

      

    Microsoft 類神經網路

    Microsoft 類神經網路

    AutomaticResponses

    輸入

    輸入

    AverageTimePerIssue

    預測

    預測

    Calls

    輸入

    輸入

    DayOfWeek

    輸入

    輸入

    FactCallCenterID

    索引鍵

    索引鍵

    IssuesRaised

    輸入

    輸入

    LevelOneOperators

    輸入

    輸入

    LevelTwoOperators

    輸入

    輸入

    Orders

    輸入

    輸入

    ServceGrade Binned

    Ignore

    Predict (ServiceGrade)

    ServiceGrade

    Predict

    Ignore

    Shift

    輸入

    輸入

    Total Operators

    輸入

    輸入

    WageType

    輸入

    輸入

處理模型。

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

[!附註]

如果您沒有針對初始參數指定一個數值,SQL Server Analysis Services 將會根據模型的名稱產生一個初始值。因為類神經網路模型與羅吉斯迴歸模型的名稱不同,因此,您必須設定一個初始值,以確保它們會以相同順序處理資料。

若要指定初始值及處理模型

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

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

    [!附註]

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

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

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

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

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