資料探勘是從大量資料中發現可行動模式的過程。SQL Server 2008 整合了 Business Intelligence Development Studio (BIDS) 提供完整探勘生命週期工具。本文依微軟官方六步驟架構,詳細說明各階段任務、關鍵決策點、工具操作與常見陷阱,並附上流程關係圖說明。
六步驟總覽
- 定義問題:明確業務目標、預測目標、關鍵指標 (KPI)。
- 準備資料:清洗、合併、轉換、處理缺失值/異常值。
- 探索資料:統計分布、相關性、季節性、取樣驗證。
- 建立模型:選擇演算法、定型、參數調整、交叉驗證。
- 探索與驗證模型:提升圖、分類矩陣、交叉驗證、模型比較。
- 部署與更新模型:預測查詢、整合應用、動態重新定型。
各步驟詳細實務指南
1. 定義問題
- 關鍵問題:您要預測什麼屬性?尋找關聯還是序列?資料如何分佈?是否有季節性?
- 輸出:問題陳述文件、目標屬性清單、成功指標 (如提升率 > 20%)。
- 工具:BIDS 專案屬性、需求文件。
2. 準備資料
- 資料來源:關聯式資料庫、OLAP Cube、Excel、文字檔、外部提供者 (均可作為 Analysis Services 資料來源)。
- 關鍵任務:
- 欄位選擇:訂單日期用 OutDate 還是 OrderDate?銷售影響因子用數量、總價或折扣價?
- 缺失值處理:刪除、插補 (平均/中位數/模型預測)、標記為獨立類別。
- 異常值偵測:標準差 > 3σ、業務規則違反 (如購買日期早於上市日期)。
- 工具:SSIS (Integration Services) 資料流轉換元件 (衍生欄、查閱、腳本元件) 自動化清洗。
3. 探索資料
- 統計指標:最小/最大值、平均、標準差、偏度、峰度、分位數。
- 視覺化:長條圖、散佈圖、相關矩陣、平行座標圖。
- 決策點:若目標屬性嚴重不平衡 (如詐騙 < 0.1%),需重採樣 (SMOTE/ undersampling) 或調整演算法參數。
- 工具:BIDS 資料來源檢視設計師 內建統計摘要、分佈檢視。
4. 建立模型
- 流程:建立探勘結構 (定義欄位/型別/內容類型) → 加入探勘模型 (選演算法/參數) → 處理 (定型)。
- SQL Server 2008 內建演算法:
- Microsoft 決策樹 (分類/迴歸)
- Microsoft 類神經網路
- Microsoft 羅吉斯迴歸
- Microsoft 朴素貝氏
- Microsoft K-Means 叢集
- Microsoft 關聯規則
- Microsoft 序列叢集
- Microsoft 時間序列 (ARIMA/ARTXP)
- Microsoft 線性迴歸
- 參數調整:如決策樹
COMPLEXITY_PENALTY、類神經網路 HIDDEN_NODE_RATIO、關聯規則 MINIMUM_SUPPORT。
- 工具:BIDS 資料探勘精靈 或 DMX (Data Mining Extensions) 語言。
5. 探索與驗證模型
- 資料分割:定型集 / 測試集 (預設 70/30),BIDS 可自動分割。
- 驗證工具:
- 檢視器:瀏覽規則、樹狀結構、叢集特徵、序列轉移機率。
- 提升圖:預測正確率隨人口比例變化。
- 分類矩陣 / 混淆矩陣:精確率、召回率、F1。
- 交叉驗證:自動建立 K 折疊子集,統計穩定性。
- 模型比較:同一結構建立多模型 (不同參數/演算法),以測試集指標選擇最佳。
- 失敗處理:所有模型表現不佳 → 回步驟 1 重新定義問題或步驟 2 重新準備資料。
6. 部署與更新模型
- 部署方式:
- DMX 預測查詢:
SELECT PREDICT(...) FROM MODEL NATURAL PREDICTION JOIN ...
- 預測查詢產生器 (BIDS 圖形化)。
- AMO (Analysis Management Objects):.NET 程式碼建立/處理/刪除模型。
- XMLA:腳本自動化部署。
- 整合應用:
- SSIS 封裝:資料流中呼叫探勘模型分流資料 (如潛在客戶分級)。
- 報表服務:即時顯示預測結果/分群特徵。
- 動態更新:新資料湧入時,重新處理結構與模型 (增量或完整),策略納入 CI/CD。
專案結構建議
MyDMProject/
├── DataSources/ # 共用資料來源 (.ds)
├── DataSourceViews/ # 共用資料來源檢視 (.dsv)
├── MiningStructures/ # 探勘結構 (.miningstructure)
├── MiningModels/ # 探勘模型 (隸屬結構)
├── SSISPackages/ # ETL 封裝
└── DeploymentScripts/ # XMLA/DMX 部署腳本
共用資料來源/檢視可跨模型重用,確保定義一致。