IBM SPSS Modeler 簡介html
做爲 IBM 分析與預測解決方案的重要組成部分,IBM SPSS Modeler 是一組數據挖掘工具,經過這些工具能夠採用商業技術快速創建預測性模型,並將其應用於商業活動,從而改進決策過程。隨着於 2010 年其新版本 14.1 的發佈,名字也由 PASW Modeler 改名爲如今的 IBM SPSS Modeler 。node
SPSS Modeler 提供了各類藉助機器學習、人工智能和統計學的建模方法。經過建模選項板中的方法,您能夠根據數據生成新的信息以及開發預測模型。每種方法各有所長,同時適用於解決特定類型的問題。算法
初次上手數據庫
典型的 SPSS Modeler 界面以下:網絡
圖 1. SPSS Modeler 界面
dom
接下來將詳細介紹其基本概念及操做。機器學習
基本概念:節點ide
節點表明要對數據執行的操做。工具
例如,假定您須要打開某個數據源、添加新字段、根據新字段中的值選擇記錄,而後在表中顯示結果。在這種狀況下,您的數據流應由如下四個節點組成:學習
表 1. 節點示例
變量文件節點,設置此節點後能夠讀取數據源中的數據。 | |
導出節點,用於向數據集中添加計算的新字段。 | |
選擇節點,用於設置選擇標準,以從數據流中排除某些記錄。 | |
表節點,用於在屏幕上顯示操做結果。 |
基本概念:數據流
SPSS Modeler 進行的數據挖掘重點關注經過一系列節點運行數據的過程,咱們將這一過程稱爲數據流。也能夠說 SPSS Modeler 是以數據流爲驅動的產品。這一系列節點表明要對數據執行的操做,而節點之間的連接指示數據的流動方向。如,上面提到的四個節點能夠建立以下數據流:
圖 2. 數據流示例
一般,SPSS Modeler 將數據以一條條記錄的形式讀入,而後經過對數據進行一系列操做,最後將其發送至某個地方(能夠是模型,或某種格式的數據輸出)。使用 SPSS Modeler 處理數據的三個步驟:
在 SPSS Modeler 中,能夠經過打開新的數據流來一次處理多個數據流。會話期間,能夠在 SPSS Modeler 窗口右上角的流管理器中管理打開的多個數據流。
圖 3. 流管理器
節點選項板
節點選項板位於流工做區下方窗口的底部。
圖 4. 節點選項板
每一個選項板選項卡均包含一組不一樣的流操做階段中使用的相關節點,如:
隨着對 SPSS Modeler 的熟悉,您能夠在收藏夾自定義經常使用的選項板內容。
使用節點和流
要將節點添加到工做區,請在節點選項板中雙擊圖標或將其拖放到工做區。已添加到流工做區的節點在鏈接以前不會造成數據流,能夠將各個圖標鏈接以建立一個表示數據流動的流,節點之間的鏈接指示數據從一項操做流向下一項操做的方向。
SPSS Modeler 中最多見的鼠標用法以下所示:
建立了流之後,能夠對流進行保存、添加註解,將其添加到工程。從文件主菜單中,選擇流屬性還能夠爲流設置各類選項,如優化、日期和時間設置、參數和腳本。使用流屬性對話框中的消息選項卡,能夠輕鬆查看有關運行、優化和模型構建和評估所用時間等流操做有關的消息,流操做的錯誤消息也將在這裏報告。
SPSS Modeler 管理器
可使用流選項卡打開、重命名、保存和刪除在會話中建立的多個流。
圖 5. 流管理器
輸出選項卡中包含由 SPSS Modeler 中的流操做生成的輸出或圖形文件。您能夠顯示、保存、重命名和關閉此選項上列出的表格、圖形和報告。
圖 6. 輸出文件管理器
模型選項卡是管理器選項卡中功能最強大的選項卡。該選項卡中包含全部模型塊,如當前會話中生成的模型,經過 PMML 導入的模型等。這些模型能夠直接從模型選項卡上瀏覽或將其添加到工做區的流中進行數據分析。
圖 7. 模型管理器
窗口右側底部是工程工具,用於建立和管理數據挖掘工程(與數據挖掘任務相關的文件組)。有兩種方式可查看您在 SPSS Modeler 中建立的工程 - 類視圖或 CRISP-DM 視圖。
依據跨行業數據挖掘過程標準 CRISP-DM選項卡提供了一種組織工程的方式。不管是有經驗的數據挖掘人員仍是新手,使用 CRISP-DM 工具都會使您事半功倍。
圖 8. 工程工具 -CRISP-DM 視圖
類選項卡提供了一種在 SPSS Modeler 中按類別(按照所建立對象的類別)組織您工做的方式。此視圖在獲取數據、流、模型的詳盡目錄時十分有用。
圖 9. 工程工具 - 類視圖
建模簡介
模型是一組規則、公式或方程式,能夠用它們根據一組輸入或變量來預測輸出。例如,一家財務機構可根據對過往申請人的已知信息,使用模型預測貸款申請人可能存在優良仍是不良風險。預測結果是預測性分析的中心目標,瞭解建模過程是使用 SPSS Modeler 的關鍵。
圖 10. 簡單的決策樹模型
本示例使用 CHAID(卡方自動交互效應檢測)模型,經過一系列決策規則對記錄進行分類(並預測用戶響應),例如:
若是收入 = 中等 而且卡 <5 則 ->“優良” |
本示例旨在介紹使用 SPSS Modeler 進行數據挖掘的基本流程,其中大部分概念可普遍應用於 SPSS Modeler 中的其餘建模類型。
不管要了解哪一種模型,均須要首先了解進入該模型的數據。此示例中的數據包含有關銀行客戶的信息。其中使用了下列字段:
表 2. 數據字段
字段名 | 描述 |
---|---|
Credit_rating | 信用評價:0= 不良,1= 優良,9= 丟失值 |
年齡 | 客戶年齡 |
收入 | 收入水平:1= 低,2= 中,3= 高 |
Credit_cards | 持有的信用卡數量:1= 少於五張,2= 五張或更多 |
教育 | 教育程度:1= 高中,2= 大學 |
Car_loans | 貸款的汽車數量:1= 沒有或一輛,2= 超過兩輛 |
銀行可維護銀行貸款客戶的歷史信息,包括客戶是正常還貸(信用評價 = 優良)仍是在拖欠貸款(信用評價 = 不良)。銀行但願使用現有的數據創建一個模型,容許他們預測將來貸款申請人拖欠貸款的可能性。使用決策樹模型,您可分析這兩組客戶的特徵,並預測不良客戶拖欠貸款的可能性。
構建流
本示例使用了名爲 modelingintro.str的流,數據文件是 tree_credit.sav。(與示例一塊兒使用的數據文件和樣本流安裝在產品安裝目錄下的 Demos 文件夾中。)
咱們來看一下流:
圖 11. ‘打開’對話框
在本例中,咱們使用 CHAID 建模節點。CHAID,或卡方自動交互效應檢測,是一種經過使用稱做卡方統計量的特定統計類型識別決策樹中的最優分割來構建決策樹的分類方法。
要構建流以建立模型,至少須要三個元素:
該流中還包含表節點和分析節點,當建立模型塊並將其添加到流之後,可以使用這兩個節點查看評分結果以評估模型。
圖 12. 流 modelingintro.str
Statistics 文件源節點從 tree_credit.sav 數據文件讀取 SPSS Statistics 格式數據,該文件安裝在 Demos 文件夾中。(名爲 $CLEO_DEMOS 的特殊變量用於引用安裝目錄位於 Demos 目錄下的文件。這樣,不管當前的安裝文件夾或版本是什麼,都可以確保路徑有效。如在本例中能夠寫做:$CLEO_DEMOS/tree_credit.sav,與圖中全路徑效果是同樣的。)
圖 13. 源節點
類型節點指定每一個字段的測量級別。測量級別是一種指示字段中數據類型的類別。咱們的源數據文件使用三種不一樣的測量級別:
連續字段(Continuous,例如年齡字段)包含連續的數字值,而名義字段(Nominal,例如信用評價字段)有兩個或多個不一樣值,如不良、優良或無信用歷史。有序字段(Ordinal,例如收入水平字段)用於描述具備順序固定的不一樣值的數據,在本例中爲低、中和高。
對於每一個字段,類型節點還指定角色,以指示每一個字段在建模中扮演的部分。字段信用評價(Credit rating)指示指定的客戶是否拖欠貸款,這是要預測的目標字段,將其角色設置爲目標。對於其餘字段,將角色設置爲輸入。輸入字段也稱爲預測變量,即建模算法用來預測目標字段值的字段。
CHAID建模節點生成模型。在建模節點的字段選項卡中,已選中使用預約義角色,這意味着將使用在類型節點中指定的目標字段和輸入字段。能夠在此處更改字段角色,但在本例中不作任何更改。
圖 14. CHAID 模型節點 - 字段頁
單擊‘構建選項’選項卡。
圖 15. CHAID 模型節點 - 構建選項頁 - 目標項
此處包含的選項能夠用於指定要構建的模型類型。因爲咱們想要一個全新的模型,所以使用默認選項構建新模型。咱們還要求它爲單個標準決策樹模型,而且不使用任何加強,所以保留默認目標選項構建單個樹。還能夠選擇啓動交互會話對模型進行手動的微調,本示例只使用默認設置來生成模型。
對於此示例,咱們但願保持樹的結構簡單,所以經過增長用於父節點和子節點的最小記錄數限制樹的增加。
圖 16. CHAID 模型節點 - 構建選項頁 - 中止規則項
咱們可使用全部其餘默認選項,而後單擊運行以建立模型。(或者,也能夠右鍵單擊該節點而後選擇運行,或選擇節點並從工具主菜單中選擇運行。)
瀏覽模型
等一小段時間當流執行完成後,模型塊將被添加到應用程序窗口右上角的模型選項板中,它還會被自動鏈接在流工做區中,並帶有指向建立它的建模節點的連接。要查看模型的詳細信息,右鍵單擊模型塊並選擇瀏覽(在模型選項板上)或編輯(在工做區上)。
圖 17. 包含模型塊的流 modelingintro.str
對於 CHAID 模型塊,模型選項卡以規則集的形式顯示詳細信息,規則集其實是可根據不一樣輸入字段的值將各個記錄分配給相應子節點的一組規則。
圖 18. CHAID 模型塊 - 模型頁
對於每一個決策樹終端節點 -- 意味着那些樹節點沒有再進一步拆分 -- 返回優良或不良的預測值。對於落在該節點內的記錄,全部個案中的預測均由模式或最多見的響應決定。
在規則集的右側,模型選項卡顯示預測變量重要性圖表,該圖表顯示評估模型時每一個預測變量的相對重要性。經過這一點,咱們看到收入水平 (Income level)在此個案中最顯著,而其餘惟一顯著的因子是信用卡數量(Number of credit cards)。
圖 19. CHAID 模型塊 - 變量重要性
模型塊中的查看器選項卡以樹的形式顯示相同的模型,每一個決策點上都有一個節點。可以使用工具欄上的縮放控件放大特定節點,或縮小節點以查看更完整的樹。
圖 20. CHAID 模型塊 - 查看器頁
查看樹的上部分,第一個節點(節點 0)爲咱們提供數據集中全部記錄的摘要。數據集中超過 40% 的個案分類爲不良風險。這是至關高的比例,所以讓咱們看看樹可否提示哪些因素起決定做用。咱們能夠看到第一個分割是根據收入水平產生的。收入水平位於低類別的記錄被指定到節點 2,能夠看到此類別包含貸款拖欠的百分比最高 --82%。所以咱們認爲此類別的客戶都具備高風險。可是要注意的是,此類別中有 16% 客戶實際上沒有拖欠,所以說預測並不是始終準確。事實上沒有模型可以精確預測全部的結果,但好的模型可以根據可用數據預測出最接近的結果。
一樣,若是咱們查看高收入客戶(節點 1),咱們看到絕大部分 (89%) 是優良風險。可是在這個類別中 10 位客戶也有 1 位會拖欠。還能繼續精煉貸款標準以便將此處的風險最小化嗎?咱們繼續看,接下來模型根據客戶持有的信用卡數量,將這些客戶分紅兩個子類別(節點 4 和節點 5)。對於高收入客戶,若是咱們只向那些信用卡少於 5 張的客戶貸款,則能夠將咱們的成功率從 89% 提升到 97%-- 很明顯是一個更滿意的結果。
圖 21. CHAID 模型塊 - 高收入客戶
回過頭來看看中等收入類別(節點 3)中的那些客戶是什麼狀況呢?他們更加均勻地劃分爲優良和不良評價。子類別(節點 6 和 7)此次仍然能幫助咱們。若是隻向那些信用卡少於 5 張的中等收入客戶貸款,可將優良評價的百分比從 58% 提升到 85%-- 顯著的改進。
圖 22. CHAID 模型塊 - 中等收入客戶
至此,咱們瞭解到輸入此模型的每項記錄都將被分配到一個特定節點,而且根據該節點最多見的結果分配在優良或不良中二選一的預測值。
爲各個客戶記錄分配預測值的過程稱爲評分 (Scoring)。由於咱們已經知道原始記錄中每一個客戶的狀況,經過對這些原始記錄進行評分並與實際值相比較,能夠評估該模型的準確度。讓咱們看看如何作到這一點。
評估模型
要評估模型的準確度,須要對一些記錄(這裏咱們用原始記錄)進行評分,並將模型預測的結果與實際結果進行比較。
圖 23. 包含輸出的流 modelingintro.str
要查看分數或預測值,請將表節點鏈接到模型塊,雙擊表節點,而後單擊運行。
能夠從表中看到,模型建立了一個名爲 $R-Credit rating 的字段,用來顯示預測值。咱們能夠將這些值與原始信用評價字段進行比較。
圖 24. CHAID 模型輸出表格
在 SPSS Modeler 中,在評分過程當中生成的字段的名稱基於目標字段,再加上標準前綴,例如 $R- 表示預測值,$RC- 表示置信度值。不一樣的模型類型使用不一樣的前綴集。置信度值(confidence value)是模型本身作的評估,尺度從 0.0 到 1.0,表示每一個預測值的精確程度。
與預期的同樣,預測值與大多數(並不是所有)記錄的實際值相匹配。緣由是每一個 CHAID 終端節點均包含混合值,而預期值與大部分結果相匹配,對於該節點中的其餘結果,該預期值是錯誤的。(還記得節點 2 中 16% 的少部分低收入客戶實際上是沒有拖欠的嗎?)若要避免出現此狀況,可繼續將樹分割爲更小的分支,直到每一個節點都不含混合值 (100%) 爲止—即所有爲優良或不良。可是,這樣的模型會很是複雜,而且不易推廣到其餘數據集。
要查看具體有多少預測值正確,咱們可通讀表格,並數一數預測字段 $R-Credit rating的值匹配信用評價的值的記錄數量。幸運的是,咱們有更簡單的方式 -- 使用分析節點,它將幫助咱們自動進行此項操做:將模型塊鏈接到分析節點,雙擊分析節點,而後單擊運行。
分析代表,2464 個記錄中有 1960 個記錄(約 80%)的模型預測值與實際值相匹配。
圖 25. CHAID 模型分析結果
注意咱們用來評分的記錄和評估模型的記錄是同一批數據。在真實狀況中,可以使用分區(partition)節點將數據分割爲兩個樣本分別用於培訓模型和評估模型。經過使用一個樣本生成模型並使用另外一個樣本對模型進行檢驗,您可更有意義地評估將模型推廣到其餘數據集的狀況。
這一階段咱們經過分析節點能夠針對已知道其實際結果的記錄來檢驗模型。下一階段將介紹如何使用模型對咱們不知道結果的記錄進行評分。例如,當前不是銀行客戶可是可作爲促銷對象的人羣。
對記錄評分
如今,咱們要查看如何對不一樣的記錄集進行評分。這是進行建模的目標:研究已知道結果的記錄,以找出模式可讓您預測未知結果記錄的結果。
圖 26. 包含評分數據的流 modelingintro.str
咱們能夠更新 Statistics 文件源節點使它指向其餘數據文件,也能夠添加一個新的源節點,用它讀取要評分的數據。不管採用哪一種方式,新數據集必須包含建模所使用的全部輸入字段(年齡、收入水平、教育等),但不包含目標字段信用評價。運行表節點便可獲得結果,咱們就不在這裏執行了。
另外,也能夠將模型塊添加到包含輸入字段的任何流中。不管數據源是文件仍是數據庫,只要字段名和類型與模型使用的相匹配,源類型都可有可無。還能夠將模型塊保存爲單獨的文件、或將模型導出爲 PMML 格式以用於其餘支持此格式的應用程序,或將模型存儲到 IBM SPSS Collaboration and Deployment Services 存儲庫中,這樣能夠在企業範圍對模型進行部署、評分和管理。不管使用何種基礎結構,模型自身都按相同的方式工做。
摘要
本示例演示建立、評估模型以及對模型評分的基本步驟。
自動建模
對客戶響應建模(自動分類器)
經過自動分類器(Auto Classifier node )節點,您能夠爲標誌字段(例如某個客戶是否極可能拖欠貸款或者是否會對特定的報價作出響應)或名義(集合)字段目標自動建立和比較多個不一樣模型。在本例中,咱們將使用標誌(是或否)字段。在一個相對簡單的流中,節點生成一組候選模型並對它們進行排序,選擇最有效的模型而後將它們合併爲一個彙總(總體)模型。此方法將自動化操做的方便性與組合多個模型的優點融爲一體,一般能產生單一模型所不能帶來的更爲準確的預測。
本示例以某虛構的公司爲例,該公司但願經過爲每一個客戶提供最合適的報價以獲取更豐厚的收益。此方法突出了自動操做的優點。咱們使用安裝在 streams 目錄下 Demo 文件夾中的流 pm_binaryclassifier.str,所使用的數據文件爲 pm_customer_train1.sav。
圖 27. 流 pm_binaryclassifier.str
歷史數據
文件 pm_customer_train1.sav的歷史數據包含過去的營銷活動中爲特定客戶提供的報價,由 campaign字段的值表示,其中值爲 Premium account的記錄數最多。campaign 字段的值在數據中實際編碼爲整數(例如 2 = Premium account)。稍後,您可爲這些值定義標籤以產生更有意義的輸出。
圖 28. 數據樣本
此外,其中還有字段表示每位客戶的相關人口統計和財務信息。這些字段可用於構建或訓練一個模型,經過基於收入、年齡或每個月交易次數等特徵來預測單個用戶或用戶羣的響應機率。
構建流
添加使用 pm_customer_train1.sav的 Statistics 文件源節點,該文件位於 SPSS Modeler 安裝程序的 Demos 文件夾中。(您能夠在文件路徑中指定 $CLEO_DEMOS/ 做爲引用此文件夾的快捷方式。請注意,路徑中必須使用正斜線而非反斜線,如圖所示。)
圖 29. 源節點
添加類型節點,而後選擇響應(response)做爲目標字段(設置其角色爲目標)。將此字段的測量設置爲標誌。
對於如下字段,將角色設置爲無:customer_id、campaign、response_date、purchase、purchase_date、product_id、Rowid和 X_random。由於這些字段(如用戶 ID)對於構建模型實際上是無心義的,把角色設置爲無之後,構建模型時將自動忽略這些字段。
單擊類型節點的讀取值按鈕以確保值得到實例化。
常見問題:當您在運行流的時候出現如下錯誤時,能夠在類型節點中(流中沒有類型節點時請先手動添加一個)單擊讀取值而後再運行流:
咱們的源數據包含四項不一樣活動的信息,每一個活動針對不一樣類型的客戶。這些活動在數據中編碼爲整數,爲了方便記住每一個整數所表明的賬戶類型,讓咱們爲每一個整數都定義一個標籤。
在活動(campaign)字段的行上,單擊值列中的條目。從下拉列表選擇指定。
圖 30. 類型節點
在標籤列中,鍵入活動字段四個值中每一個值將顯示的標籤。單擊肯定。
圖 31. 類型節點 - 指定標籤
如今咱們可在輸出窗口中顯示標籤而非僅僅是整數了。
圖 32. 輸出標籤的表格
儘管數據包含有關四項不一樣活動的信息,但每一次的分析應集中關注其中一項活動。因爲 Premium account 活動(在數據中編碼爲 campaign=2)中的記錄數最多,所以可使用選擇節點實現僅在流中包含這些記錄。
圖 33. 選擇節點
生成和比較模型
附加一個自動分類器節點,而後選擇整體精確性做爲對模型進行排序的度量。
將要使用的模型數設置爲 3。這意味着在執行節點時將只選擇三個最佳模型。
圖 34. 自動分類器節點 - 模型頁
在專家選項卡上,可從最多 11 種不一樣模型算法中進行選擇。
取消選擇判別式和 SVM模型類型。(這些模型須要花費更多時間培訓這些數據,所以取消選中它們將能夠加快示例的執行速度。若是您不介意稍等一下,也能夠保留它們的選中狀態。)因爲在模型選項卡上將要使用的模型數設置爲 3,所以節點將計算所選擇九個算法的準確性,而後選擇三個最準確的算法來構建一個模型塊。
圖 35. 自動分類器節點 - 專家頁
在設置選項卡上,選擇總體方法爲置信度加權投票。此選項將肯定如何爲每條記錄生成一個評分。
使用簡單投票方式時,若三個模型中有兩個模型均預測是,則是將以 2 比 1 的投票結果取勝。在使用置信度加權投票方式時,將基於各預測的置信度值進行加權投票。所以,若是一個預測否的模型的置信度比兩個預測是的模型合在一塊兒的置信度還高的話,則否取勝。
圖 36. 自動分類器節點 - 設置頁
單擊運行。
幾分鐘後(實際狀況中,因爲大型數據集每每須要建立數百個模型,這可能會花費數小時或更長的時間),構建生成的模型塊將放到工做區和窗口右上角的模型選項板中。您可瀏覽模型塊,或以多種其餘方式將其保存或部署。
咱們從工做區打開模型塊,它將列出在運行期間所建立的每一個模型的詳細信息。若是須要進一步探索任何單獨的模型,可在模型列中雙擊此模型塊圖標,以瀏覽單獨模型結果,甚至能夠用它們生成建模節點、模型塊或評估圖表。在圖形列中,能夠雙擊縮略圖生成標準大小的圖形進行直觀的顯示。
圖 37. 自動分類器模型塊 - 模型頁
默認狀況下,模型會基於整體精確性排序,這是咱們在自動分類器節點模型選項卡中選擇的度量。根據這一度量,C51 模型的精確性最高,但 C&R 樹和 CHAID 模型的精確性與之相差不大。您能夠經過單擊其餘列的標題對該列進行排序,或者也能夠從工具欄的排序方式下拉列表中選擇所需的度量。
基於這些結果,咱們決定使用全部三個最準確的模型。經過結合多個模型的預測,能夠避免單個模型的侷限性,從而使總體準確性更高。在是否使用列中,選擇 C51, C&R 樹和 CHAID 模型。
在模型塊後附加一個分析節點(位於下方輸出選項板)。右鍵單擊分析節點,而後選擇運行以運行流。
由總體模型生成的彙總得分將顯示在名爲 $XF-response 的字段中。當根據訓練數據評分時,預測值與實際響應(如原始響應字段中的記錄所示)匹配的整體精確性爲 92.82%。儘管這不如本例中三個模型的最高精確性高(C51 爲 92.86%),但它們之間的差距小得能夠忽略不計。通常來講,總體模型應用到訓練數據以外的數據集時,一般比單個模型效果更好。
圖 38. 自動分類器模型塊的分析結果
摘要
綜上所述,咱們使用自動分類器節點比較了多種不一樣的模型,而後使用三個最準確的模型並將它們做爲一個總體自動分類器模型塊添加到流中。
小結
本文從 IBM SPSS Modeler 基本概念開始詳細介紹其基本操做,經過典型的數據挖掘算法介紹使用 SPSS Modeler 進行數據挖掘的基本流程,以及 SPSS Modeler 強大的自動建模功能。
本文所展現的只是 SPSS Modeler 很基礎的一小部分使用。隨着用戶使用的加深,將會了解到 SPSS Modeler 更爲強大的功能,如 ADP(自動數據準備)、數據庫建模等等。
spss modeler:http://bigdata.evget.com/product/168.html
spss statistics:http://bigdata.evget.com/product/330.html