若要建立數據採礦模型,您必須先使用數據採礦精靈,根據新的數據源檢視建立新的採礦結構。 在這項工作中,您將使用精靈來建立採礦結構,同時建立以Microsoft類神經網路演算法為基礎的相關聯採礦模型。
由於類神經網路非常有彈性,而且可以分析許多輸入和輸出組合,因此您應該試驗數種方式來處理數據,以取得最佳結果。 例如,您可能想要自定義將服務質量數值目標 量化或分組的方式,以針對特定的商務需求。 若要這樣做,您會將新的數據行加入採礦結構,以不同的方式將數值數據分組,然後建立使用新數據行的模型。 您將使用這些採礦模型來執行一些探索。
最後,當您從類神經網路模型學習到哪些因素對商務問題產生最大影響時,您將建置不同的預測和評分模型。 您將使用以類神經網路模型為基礎的 Microsoft 羅吉斯回歸演算法,但已針對根據特定輸入尋找解決方案進行優化。
步驟
建立預設通話中心結構
在 SQL Server Data Tools (SSDT) 的方案總管中,以滑鼠右鍵按兩下 [採礦結構 ],然後選取 [ 新增採礦結構]。
在 [ 歡迎使用數據採礦精靈] 頁面上,按 [下一步]。
在 [ 選取定義方法] 頁面上,確認已選取 [從現有的關係資料庫或數據倉儲 ],然後按 [ 下一步]。
在 [ 建立數據採礦結構] 頁面上,確認已選取 [ 使用採礦模型建立採礦結構 ] 選項。
按一下拉式清單以選擇 您想使用的資料探勘技術?,然後選取 Microsoft 類神經網路。
由於羅吉斯回歸模型是以類神經網路為基礎,因此您可以重複使用相同的結構並新增採礦模型。
按 [下一步]。
[ 選取數據源檢視 ] 頁面隨即出現。
在 [可用的數據源檢視] 下,選取
Call Center,然後按 [ 下一步]。在 [指定數據表類型] 頁面上,選取 FactCallCenter 數據表旁的 [案例] 複選框。 請勿針對 DimDate 選取任何項目。 按 [下一步]。
在 指定訓練數據 頁面上,選取 索引鍵 在 FactCallCenterID 欄位旁邊。
選取
Predict和 輸入 複選框。選取 [金鑰]、[ 輸入] 和
Predict複選框,如下表所示:表格/欄位 按鍵/輸入/預測 AutomaticResponses 輸入 每張問題的平均時間 輸入/預測 通話 輸入 日期鍵 請勿使用 DayOfWeek 輸入 FactCallCenterID(呼叫中心識別碼) 鑰匙 提出的問題 輸入 LevelOneOperators 輸入/預測 LevelTwoOperators 輸入 訂單 輸入/預測 服務等級 輸入/預測 轉變 輸入 總操作員數量 請勿使用 薪資類型 輸入 請注意,已選取多個可預測的數據行。 神經網路演算法的其中一個優點是,它可以分析輸入和輸出屬性的所有可能組合。 您不想對大型數據集執行此動作,因為它可能會以指數方式增加處理時間。
在 [ 指定數據行的內容和數據類型 ] 頁面上,確認方格包含如下表所示的數據行、內容類型和數據類型,然後按 [ 下一步]。
欄位 內容類型 數據類型 AutomaticResponses 連續的 長 每張問題的平均時間 連續的 長 通話 連續的 長 DayOfWeek 離散 文字 FactCallCenterID(呼叫中心識別碼) 鑰匙 長 提出的問題 連續的 長 LevelOneOperators 連續的 長 LevelTwoOperators 連續的 長 訂單 連續的 長 服務等級 連續的 兩倍 轉變 離散 文字 薪資類型 離散 文字 在 [ 建立測試集] 頁面上,清除選項的文本框: 用於測試的數據百分比。 按 [下一步]。
在 [完成精靈] 頁面上,針對 [採礦結構名稱],輸入
Call Center。針對 採礦模型名稱,輸入
Call Center Default NN,然後點選 完成。允許穿透方塊已停用,因為您無法使用神經網絡模型穿透數據。
在 [方案總管] 中,以滑鼠右鍵按兩下您剛才建立的數據採礦結構名稱,然後選取 [ 處理]。
使用離散化將目標欄位分組
根據預設,當您建立具有數值可預測屬性的類神經網路模型時,Microsoft類神經網路演算法會將屬性視為連續數位。 例如,ServiceGrade 屬性是一個數位,理論上範圍從 0.00(接聽所有通話)到 1.00(所有來電者都掛斷)。 在此資料集中,這些值具有下列分佈:
因此,當您處理模型時,輸出可能會與預期的群組不同。 例如,如果您使用叢集來識別最佳值群組,則演算法會將 ServiceGrade 中的值分成如下範圍:0.0748051948 - 0.09716216。 雖然此群組在數學上是正確的,但這類範圍對商務使用者可能沒有意義。
在此步驟中,若要讓結果更直覺化,您會以不同的方式將數值分組,以建立數值數據行的複本。
離散化的運作方式
Analysis Services 提供各種方法來量化或處理數值數據。 下表說明當輸出屬性 ServiceGrade 已處理三種不同的方式時,結果之間的差異:
將它視為連續數位。
讓演算法使用群集來識別值的最佳排列方式。
指定將數據按相等區域法分組。
預設模型 (連續)
| 價值 | 支援 |
|---|---|
| 失蹤 | 0 |
| 0.09875 | 120 |
由叢集量化
| 價值 | 支援 |
|---|---|
| < 0.0748051948 | 34 |
| 0.0748051948 - 0.09716216215 | 二十七 |
| 0.09716216215 - 0.13297297295 | 39 |
| 0.13297297295 - 0.167499999975 | 10 |
| >= 0.1674999999975 | 10 |
依相等區域分組
| 價值 | 支援 |
|---|---|
| < 0.07 | 26 |
| 0.07 - 0.00 | 22 |
| 0.09 - 0.11 | 36 |
| >= 0.12 | 36 |
備註
在處理所有數據之後,您可以從模型的臨界統計數據節點取得這些統計數據。 如需臨界統計數據節點的詳細資訊,請參閱類神經網路模型的採礦模型內容(Analysis Services - 數據採礦)。
在此數據表中,VALUE 欄位顯示 ServiceGrade 的數值如何處理。 SUPPORT 欄位會顯示具有該值或在該範圍內的案例數目。
使用連續數字 (預設值)
如果您使用預設方法,演算法會計算 120 個相異值的結果,其平均值為 0.09875。 您也可以查看遺漏值的數目。
依叢集分類的 Bin
當您讓Microsoft叢集演演算法決定值的選擇性群組時,此演算法會將 ServiceGrade 的值分組為五個 (5) 範圍。 每個範圍中的案例數目不會平均分散,如您從輔助欄所見。
根據相等面積劃分類別
當您選擇此方法時,演算法會將值強制為大小相等的值區,進而變更每個範圍的上限和下限。 您可以指定桶的數目,但您要避免在任何桶中出現太少的值。
如需量化選項的詳細資訊,請參閱離散化方法(數據採礦)。
或者,除了使用數值之外,您還可以新增個別的衍生數據行,將服務等級分類為預先定義的目標範圍,例如 Best (ServiceGrade = 0.05)、可接受的 (0.10 > ServiceGrade <0.05) 和 Poor (ServiceGrade >> = 0.10)。
建立數據行的複本並變更離散化方法
您將複製包含目標屬性 ServiceGrade 的採礦欄,並變更數字分組的方式。 您可以在採礦結構中建立任何欄的多個複本,包括可預測屬性。
在本教學課程中,您將使用等面積法進行離散化,並指定四個區間。 這個方法所產生的群組相當接近您商務使用者感興趣的目標值。
在採礦結構中建立數據行的自定義複本
在 [方案總管] 中,按兩下您剛才建立的採礦結構。
在 [採礦結構] 索引標籤中,點擊 新增採礦結構資料行。
在 [ 選取數據行 ] 對話框中,從 [來源] 資料行清單中選取 [ServiceGrade],然後按兩下 [ 確定]。
新的欄位會新增至採礦結構欄位清單。 根據預設,新的採礦數據行的名稱與現有的數據行名稱相同,其中包含數值後置詞:例如 ServiceGrade 1。 您可以將此資料行的名稱變更為更具描述性。
您也會指定離散化方法。
以滑鼠右鍵按兩下 [ServiceGrade 1],然後選取 [ 屬性]。
在 [ 屬性] 視窗中,找出 Name 屬性,並將名稱變更為 服務等級量化 。
對話框隨即出現,詢問您是否要對所有相關採礦模型數據行的名稱進行相同的變更。 按一下 [否] 。
在 [ 屬性] 視窗中,找出 [數據類型 ] 區段,並視需要加以展開。
將屬性
Content的值從Continuous變更為Discretized。現在可以使用下列屬性。 變更屬性的值,如下表所示:
房產 預設值 新值 DiscretizationMethodContinuousEqualAreasDiscretizationBucketCount沒有值 4 備註
的預設值 DiscretizationBucketCount 實際上是 0,這表示演算法會自動判斷最佳的貯體數目。 因此,如果您想要將此屬性的值重設為預設值,請輸入 0。
在 [數據採礦設計師] 中,按兩下 [ 採礦模型] 索引標籤 。
請注意,當您新增採礦結構資料行的複本時,複製的使用旗標會自動設定為
Ignore。 通常,當您將某個數據行的複製品新增至採礦結構時,您不會將該複製品與原始數據行一起進行分析,否則演算法可能會在這兩個數據行之間建立強烈的相關性,從而掩蓋其他關係。
將新的採礦模型新增至採礦結構
既然您已為目標屬性建立新的群組,您必須新增使用離散化欄位的新挖掘模型。 當您完成時,CallCenter 採礦結構將會有兩個採礦模型:
採礦模型 Call Center Default NN 會將 ServiceGrade 值當作連續範圍來處理。
您將建立一個新的挖掘模型,名為 Call Center Binned NN,其目標結果是根據 ServiceGrade 資料行的值分配到四個大小相等的組。
根據新的離散化資料欄添加採礦模型
在 [方案總管] 中,以滑鼠右鍵按兩下您剛才建立的採礦結構,然後選取 [ 開啟]。
點選採礦模型索引標籤。
按兩下 [建立相關的採礦模型]。
在 [ 新增採礦模型] 對話框中,針對 [模型名稱],輸入
Call Center Binned NN。 在 [ 演算法名稱] 下拉式清單中,選取 [Microsoft類神經網络]。在新採礦模型中包含的數據行清單中,找出 ServiceGrade,並將使用量從
Predict變更為Ignore。同樣地,找出 ServiceGrade Binned,並將使用量從
Ignore變更為Predict。
建立目標欄位的別名
通常您無法比較使用不同可預測屬性的採礦模型。 不過,您可以建立採礦模型欄位的別名。 也就是說,您可以在採礦模型中重新命名數據行 ServiceGrade Binned,使其名稱與原始數據行相同。 然後,您可以在精確度圖表中直接比較這兩個模型,即使數據以不同的方式離散化也一樣。
在採礦模型中為採礦結構欄位添加別名
在 採礦模型 索引標籤的 結構 下,選取 ServiceGrade Binned。
請注意,屬性 視窗會顯示物件 ScalarMiningStructure 的數據行屬性。
在採礦模型的資料行下,找到 ServiceGrade Binned NN,然後點擊位於 ServiceGrade Binned 資料行對應的資料格。
請注意,現在 [ 屬性 ] 視窗會顯示物件 MiningModelColumn 的屬性。
找出 Name 屬性,並將值變更為
ServiceGrade。找出 Description 屬性並輸入 暫存數據行別名。
[ 屬性 ] 視窗應包含下列資訊:
房產 價值觀 說明 暫時欄位別名 識別碼 ServiceGrade Binned 模型旗標 名稱 服務等級 來源列 ID 服務等級 1 使用方式 預測 按兩下 [採礦模型] 索引標籤 中的任何位置。
網格會更新,以顯示欄位使用情況旁邊的新的暫時欄位別名
ServiceGrade。 包含採礦結構和兩個採礦模型的方格看起來應該如下所示:結構 話務中心預設 NN 客服中心分箱 NN Microsoft類神經網路 Microsoft類神經網路 AutomaticResponses 輸入 輸入 每張問題的平均時間 預測 預測 通話 輸入 輸入 DayOfWeek 輸入 輸入 FactCallCenterID(呼叫中心識別碼) 鑰匙 鑰匙 提出的問題 輸入 輸入 LevelOneOperators 輸入 輸入 LevelTwoOperators 輸入 輸入 訂單 輸入 輸入 ServceGrade Binned 忽視 Predict (ServiceGrade) 服務等級 預測 忽視 轉變 輸入 輸入 運算子總計 輸入 輸入 薪資類型 輸入 輸入
處理所有模型
最後,為了確保您所建立的模型能夠輕鬆比較,您需要為預設模型和分段模型設定種子參數。 設定種子值可確保每個模型都會從同一點開始處理數據。
備註
如果您未指定種子參數的數值,SQL Server Analysis Services 會根據模型的名稱產生種子。 因為模型一律有不同的名稱,所以您必須設定種子值,以確保它們以相同順序處理數據。
指定種子並對模型進行處理
在 [ 採礦模型] 索引卷標中,以滑鼠右鍵按兩下名為 Call Center - LR 之模型的數據行,然後選取 [ 設定演演算法參數]。
在 HOLDOUT_SEED 參數的數據列中,按下 [值] 底下的空白儲存格,然後輸入
1。 按一下 [確定]。 針對與結構相關聯的每個模型重複此步驟。備註
您選擇做為種子的值並不重要,只要您針對所有相關模型使用相同的種子即可。
在 [ 採礦模型] 功能表中,選取 [ 處理採礦結構和所有模型]。 按兩下 [是 ] 將更新的數據採礦專案部署至伺服器。
在 [ 進程採礦模型] 對話框中,按兩下 [ 執行]。
按兩下 [關閉] 以關閉 [行程進度] 對話框,然後在 [行程採礦模型] 對話框中再次按兩下 [關閉]。
現在您已建立兩個相關的採礦模型,接下來您將探索數據以探索數據中的關聯性。