資料採礦:SPSS Modeler指令碼功能的應用情境和編寫技巧

來源:互聯網
上載者:User

引言

資料採礦軟體 IBM SPSS Modeler 以使用者介面友好、可視化功能強大著稱。關於其指令碼功能,參考資 料很少。作者認為,指令碼功能實際上旨在實現資料處理和分析建模過程的自動化。在需要動態改變資料處 理過程、資料流自動執行和自動執行批量任務等應用情境下,必須補充編寫一些指令碼才能完成某些特定功 能。所以,指令碼功能是使用者介面的必要補充,而不僅僅是使用者介面滑鼠操作功能的代碼化。

SPSS Modeler 內建的指令碼編寫使用者指南沒有按照指令碼功能的常用應用情境組織內容,這給指令碼編寫人 員參考查閱造成一定的不便。同時,缺少完整的實用的例子,給出的例子多數是類比使用者介面上的常用操 作。而實際情況是編寫指令碼通常是為了補充使用者介面上很少使用或者不能實現的功能。作者就經常為找不 到可以參考的例子而苦惱。

本文首先介紹使用者介面上無法或者不便實現而必須編寫指令碼的常見的五種應用情境。每種情境下均給 出完整的應用執行個體,重點介紹指令碼編寫的方法和技巧。在第二節,基於作者經驗,總結了編寫指令碼的常用 技巧。本文所附的執行個體均來自實際項目,且在 SPSS Modeler 15.0 環境下測試通過。

指令碼功能的應用情境

什麼情況下需要指令碼功能?根據作者的經驗,遇到下列情況應考慮使用指令碼功能:需要重複執行某些 資料處理;需要動態改變資料處理的過程;資料流最終需要部署到第三方環境;資料流需要自動執行 ( 而不是滑鼠操作執行 );需要批量修改已有的資料流或者自動執行批量任務。

重複執行的資料處理

我們知道,Modeler 資料流預設都是順序執行的,多個節點的依次串連而成的資料流提前指定了資料 處理的順序。然而,實際建模中經常會遇到部分資料流需要重複多次執行,且可能帶參數,這時手工執行 就很不方便。同時,可能需要根據某個變數的取值重複執行一段資料流 ( 實現動態迴圈 ),這種情況下 就必須藉助指令碼來實現。

圖 1 所示的資料流來自是一個預測產品銷售的時間序列模型。需要分別預測每個銷售分公司 (IMT) 在未來一個季度的銷售總額。當銷售機構較多 (=21) 且動態變化時,需要根據 Table 節點 IMT_List 的 輸出結果,迴圈多次逐行取出 IMT 的取值,然後根據此值設定 Select1 和 IMT 節點,從而實現動態 重複執行的資料處理。這裡的主要技巧是從 Table 節點迴圈取數。

圖 1. 從 Table 節點迴圈取數

圖 1 中方框內的三個節點是指令碼涉及的主要部分,對應的指令碼內容如下:

清單 1 指令碼內容 - 從 Table 節點迴圈取數

清單 1. 指令碼內容 - 從 Table 節點迴圈取數

指令碼編寫的要點:執行 Table 節點讀取所有的迴圈變數取值。利用 Result 對象的 output 屬性和 Value 命令逐個讀取迴圈變數的取值。使用 set 命令為多個節點動態賦值。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.