用SPSS Modeler 整合不同資料庫之間的資料
IBM SPSS Modeler 介紹
IBM SPSS Modeler 是 IBM 在分析與預測領域解決方案的重要組成部分,它是一組資料挖掘工具,通過這些工具可以采用商業技術快速建立預測性模型,并将其應用于商業活動,進而改進決策過程。Modeler 的界面如圖 1 所示:

2016-3-16 11:24:16 上傳
下載下傳附件 (57.36 KB)
圖 1. IBM SPSS Modeler 界面
IBM SPSS Modeler 通過節點對資料進行處理,然後将這些節點連接配接起來,就形成了對資料處理的一系列過程,我們将這一過程稱為資料流。也可以說 IBM SPSS Modeler 是以資料流為驅動的産品,這一系列節點代表要對資料執行的操作,而節點之間的連結訓示資料的流動方向。IBM SPSS Modeler 将節點分為如下幾種類型:
源:此類節點可将資料導入 IBM SPSS Modeler,如資料庫、IBM SPSS Analytic Server 資料源、文本檔案、SPSS Statistics 資料檔案、Excel、XML 等。
記錄選項:此類節點可對資料記錄執行操作,如選擇、排序、抽樣、合并和追加等。
字段選項:此類節點可對資料字段執行操作,如過濾、導出新字段和确定給定字段的測量級别等。
圖形:此類節點可在模組化前後以圖表形式顯示資料。圖形包括散點圖、直方圖、網絡節點和評估圖表等。
模組化:此類節點可使用 IBM SPSS Modeler 中提供的模組化算法,如神經網絡、決策樹、貝葉斯網絡、聚類算法、支援向量機、和資料排序等。
輸出:節點生成資料、圖表和可在 IBM SPSS Modeler 中檢視的模型等多種輸出結果。
導出:節點生成可在外部應用程式(如 IBM SPSS Data Collection、資料庫、XML、IBM SPSS Analytic Server 資料 或 Excel)中檢視的多種輸出。
IBM SPSS Statistics:節點将 IBM SPSS Statistics 資料導入或導出為 SPSS Statistics 資料,以及運作 SPSS Statistics 提供的功能。
IBM SPSS SDAP 介紹
1. SDAP 的安裝
IBM? SPSS? Data Access Pack(簡稱 SDAP)是在 Modeler 的安裝盤附帶的 ODBC 驅動程式,運作 setup.exe 檔案以啟動驅動程式安裝,并選擇所有相關的驅動程式即可。安裝的 SDAP 必須和你使用的 Modeler Server 在同一台機器,也就是說如果你使用本地的 Modeler Server, 那麼就安裝在 Modeler Client 所在的機器,如果使用的 Modeler Server 和 Modeler Client 不在同一台機器,那麼就需要安裝在 Modeler Server 所在的機器。

2016-3-16 11:24:26 上傳
下載下傳附件 (118.75 KB)
圖 2. SDAP 的安裝
2. 建立 ODBC
這裡以 Windows 7 為例,裝好 SDAP 驅動後,從“開始”菜單中選擇所有程式,選擇管理工具,選擇資料源 (ODBC),在打開 的對話框中選擇系統 DSN 頁籤,然後單擊添加,在打開的對話了狂選擇要添加的資料庫的驅動,如圖 3 所示:

2016-3-16 11:24:29 上傳
下載下傳附件 (118.13 KB)
圖 3. 選擇驅動
點選完成按鈕後,配置資料庫的資訊,對于不同的資料需要輸入不同的資訊,本文将以主流的 IBM DB2、Oracle 和 SQL Server 為例。如圖 4 所示:

2016-3-16 11:24:31 上傳
下載下傳附件 (66.33 KB)
圖 4. 建立 DB2 ODBC
在“ODBC DB2 Wire Protocol 驅動程式設定”對話框中需要指定如下内容:
資料源名稱(指定一個 ODBC 的名字);
IP 位址,指定 DB2(Oracle,SQL Server) RDBMS 所在伺服器的主機名或者 IP 位址;
TCP 端口 ( 對于 DB2,預設是 50000,Oracle 是 1521,SQL Server 是 1433);
資料庫的名稱(指定需要連接配接的資料庫);
點選“測試連接配接”後,輸入要連接配接資料庫的使用者名和密碼,然後單擊确定按鈕。此時會顯示“連接配接已建立!”的消息,說明配置成功。
對于 Oracle 資料庫來說,如圖 5 所示:

2016-3-16 11:24:32 上傳
下載下傳附件 (56.42 KB)
圖 5. 建立 Oracle ODBC
對于 SQL Server 資料庫如圖所示:

2016-3-16 11:24:34 上傳
下載下傳附件 (98.74 KB)
圖 6. 建立 SQL Server ODBC
利用 IBM SPSS Modeler 資料庫源節點擷取資料
1.擷取資料
打開 IBM SPSS Modeler 用戶端,點選左下角的 Server 按鈕,選擇要連接配接的 Modeler Server,這裡需要說明的就是如果你的 SDAP 裝在和 Modeler Client 在一台機器,那麼就選擇 Local Server, 如果不在同一台機器,而是和單獨的 Modeler Server 裝在一台機器,就選在添加按鈕,輸入機器的主機名或者 IP 位址,設定登入的使用者名和密碼,點選完成按鈕,如圖 7 所示:

2016-3-16 11:24:48 上傳
下載下傳附件 (28.86 KB)
圖 7. 連接配接 Modeler Server
連接配接上 Modeler Server 之後,在源選項輕按兩下資料庫節點,然後就可以添加資料庫源節點到資料流工作區,輕按兩下節點,在資料項選擇添加一個資料庫連接配接,然後 Modeler Client 會将 Modeler Server 所在機器的所有 ODBC 查詢出來,找到需要連接配接的資料庫連接配接資訊,輸入使用者名和密碼後,點選連接配接按鈕,選擇完成然後進入選擇表,這裡以 SQL Server 為例,如圖 8 所示:

2016-3-16 11:24:52 上傳
下載下傳附件 (273.17 KB)
圖 8. 添加資料庫連接配接
點選完成按鈕後,在表名列點選選擇按鈕,選擇表名,這裡我們以 dbo.Modeler_Drug1 為例,如圖 9 所示:

2016-3-16 11:25:07 上傳
下載下傳附件 (39.48 KB)
圖 9. 選擇表名
選擇表後,節點自動讀取表結構,如圖 10 所示:

2016-3-16 11:25:15 上傳
下載下傳附件 (72.93 KB)
圖 10. 來自 SQL Server 的資料
用同樣的方法再添加兩個資料庫節點,選擇 ODBC 為 DB2 和 Oracle, 輸入使用者名和密碼之後,就可以選擇要讀取資料的表名了。這樣就完成了用Modeler Client 讀取資料庫資料的操作,然後要進行的就是對資料的處理。
首先我們利用 Modeler 的 Merge 節點對 DB2 和 Oracle 中的兩張表的資料進行合并,處理後的結果是我們得到的資料一部分來自DB2 資料庫,一部分來自 Oracle 資料庫。對于來自 Oracle 資料庫的資料,我們取 3 個字段的值,如圖 11 所示:

2016-3-16 11:25:16 上傳
下載下傳附件 (157.95 KB)
圖 11. 來自 Oracle 的資料
對于來自 DB2 資料庫的資料,我們取 4 個字段,如圖 12 所示:

2016-3-16 11:25:20 上傳
下載下傳附件 (87.41 KB)
圖 12. 來自 DB2 的資料
2.資料處理
輕按兩下記錄選項中的 Merge 節點,然後将 DB2 和 Oracle 兩個節點與之連接配接,輕按兩下 Merge 節點,可以看到處理後的資料包括來自 DB2 和 Oracle 的 7 個字段,如圖 13 所示:

2016-3-16 11:25:24 上傳
下載下傳附件 (93.75 KB)
圖 13. Merge 後的資料
然後我們需要通過 Modeler 的 Append 節點将 Merge 後的資料追加到來自 SQL Server 資料庫的資料。輕按兩下記錄選項中的 Append 節點,在流工作區中将 Merge 節點和 SQL Server 資料源節點與之連接配接,這樣得到的就是來自三個資料庫的資料了。如圖 14 所示:

2016-3-16 11:25:31 上傳
下載下傳附件 (120.52 KB)
圖 14. Append 後的資料
我們還可以通過 Modeler 的其他節點對資料進行進一步的處理,比如通過選擇節點,可以設定條件來選擇我們需要的資料,或者通過排序節點對某幾個列進行排序等等,這裡就不詳細介紹了。
3.模組化
最後要做的就是對處理過的資料進行模組化了,首先我們需要設定一個 Target 列,也就是需要預測的列。我們通過 Modeler 的 Type 節點設定 Target 列,在字段選項輕按兩下 Type 節點,在流工作區中将 Append 節點與之連接配接,輕按兩下 Type 節點,修改 Drug 列的角色為 Target,其他預設為 Input,如圖 15 所示:

2016-3-16 11:25:32 上傳
下載下傳附件 (102.19 KB)
圖 15. 設定 Target 列
然後就是選擇我們要使用的模型了,這裡以神經網絡為例,在模型選擇中輕按兩下神經網絡節點,在流工作區中将 Type 節點與之連接配接,打開神經網絡節點,可以看到我們是通過所有的角色為 Input 的列來預測覺得為 Target 的列,當然我們可以在這裡修改 Input 和 Target,我們将年齡的角色從 Input 修改為 Target,如圖16 所示:

2016-3-16 11:25:33 上傳
下載下傳附件 (65.49 KB)
圖 16. 設定 Input 和 Target
點選運作按鈕,生成一個新的模型塊,該模型塊會被自動連接配接在流工作區,并帶有指向建立它的模組化節點的連結。要檢視模型的詳細資訊,右鍵單擊模型塊并選擇浏覽(在模型選項闆上)或編輯(在工作區上)。如圖 17 所示:

2016-3-16 11:25:33 上傳
下載下傳附件 (40.66 KB)
圖 17. 包含模型塊的流
輕按兩下打開生成的模型塊,可以看到哪些值對預測結果的影響最大,線條寬深說明影響越大,如圖 18 所示:

2016-3-16 11:25:35 上傳
下載下傳附件 (87.99 KB)
4.模型評估
模組化完成後,需要評估模型的準确度,就是對一些記錄進行評分,我們這裡用原始資料進行評估,并将模型預測的結果與實際結果進行比較。如圖19 所示:

2016-3-16 11:25:39 上傳
下載下傳附件 (39.35 KB)
圖 19. 包含輸出的流
要檢視分數或預測值,如上圖将表節點連接配接到模型塊,輕按兩下表節點,然後單擊運作。可以從表中看到,模型建立了兩個名為 $N-Age 和 $N-Drug 的字段,用來顯示預測值。
張文彤老師SPSS Modeler資料挖掘實戰案例教育訓練2016年勞動節上海開講!