Bobにループ処理のスクリプトを書かせて多品種を需要予測させる
*時系列モデルや、単一の数値予測モデルを使って出し分ける場合には以下の方法が便利です。この記事ではAutoモデリングによるアンサンブル学習を想定しているため、スクリプトによるループ処理を行います。
1.想定される利用目的
・単品で作成した予測モデルを複数の品種に拡張する。
・ループ内で品種によって特徴量を変更する。
・ループ内で品種によってベストモデルを選択する。
2.サンプルストリームとデータのダウンロード
サンプルストリーム
サンプルデータ
3.サンプルストリームの説明
ループの基本となるストリームを作成する
a.入力するデータは以下の通りです。ゴルフコース01から10までの過去の来場者実績、価格、天気予報、30日前の時点の予約などが記録されています。このデータを用いてそれぞれのコースの将来の来場者を求めます。
b.[条件抽出]ノードを編集します。ループの基本となるようにゴルフコース01のみを対象にしています。
c.[データ型]ノードを編集します。
d.[自動数値]ノードを編集します。時短のために試すモデルを7つに限定してます。
e.モデルナゲットを編集します。以下の5つのモデルを精度で採用しアンサンブルしています。
f.[条件抽出]ノードを編集します。将来の区間のみをデータとして出力します。
g.[フラットファイル]ノードを編集します。出力するファイルパスを設定します。
[プレビュー]します。
Bobによるスクリプトの作成手順
1.Bobを起動して、作業フォルダを指定します。作業フォルダにはストリームとスクリプト例を入れておきます。
スクリプト例は、ストリームを範囲指定後 Modelerスクリプトウインドウでcommad + shift + p のショートカットで貼り付けることができます。
2..プロンプトを作成します。
SPSS Modelerの拡張のインポートノードで
GC.strはコースGC01に絞った時系列予測と結果出力をしています。
これをGC02からGC10まで順にループして残る9つのCSVファイルを同じパスに出力できるような
Modeler スクリプトを作成して下さい。
base.txtはGC.strのModeler スクリプトですので、参考にして下さい。
3.プロンプトを実行します。
4.指定したフォルダにファイルが出来上がります。
注意事項
記事の冒頭で触れた通り、今回Autoモデリングでなく指定した数値予測モデルを作成する場合にはゴルフコースの[ロール]を[分割]とすることでループが実現新ます。
ストリーム上はシングルモデルに見えますがナゲットのBadgeから、多品種モデルだとわかります。
またこのループ処理の応用としてBob連携により、多品種モデルの自動化およびシミュレーションツール(IBM Planning Analitics)との連携を視野に入れることができます。
IBM Planning Analiticsを用いた活用方法はこちら
4.参考情報
SPSS Modeler
IBM Bob 無料トライアル
店舗の数だけファイルを分割するpython拡張ノードをBobに作らせる
Modelerスクリプトでループ処理を実行する
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)














