2011年12月03日

アトリビューション分析の向かう先

ひょんなことから、西郷さんの師匠である先生に会いに行きました。
そこで、アトリビューション分析について話す機会があったのですが、
なかなか良い議論ができた気がします。

そして、その中でぼんやりと次の発展系が見えてきました。

まだ、頭の中にもわもわっとしたアイデアレベルなのですが、今年中にアイデアを形にできればと思います。

その後は、筑波大学大学院の近所にある居酒屋に行きました。

スモーク系が美味しいお店です。
【茗荷谷駅】いぶしや
http://r.tabelog.com/tokyo/A1323/A132302/13052505/

金曜日だけど、あんまり混んでいなかった。。。w
学生が多いからでしょうかね。

2011年11月18日

数理システム ユーザーコンファレンス 2011

今日は、夕方から社内に戻る必要があったので、午前と午後の講演を少し聴いて社内に戻りました。
午前は、朝野熙彦(ひろひこ)先生による「マーケティング実務家にとってのデータ解析」という内容でした。

当時、安価なパソコンも素敵な統計解析のツールもない時代にフォートランを使ってシステムを書かれていたとか。

なかなか聴けない貴重な講演を聴くことができました。

講演の中で朝野先生おススメの統計の本が紹介されてました。
統計を学習するにあたり、避けては通れない大切な部分を丁寧に解りやすく紹介しているとのことでした。

これからはじめる統計学

これからはじめる統計学

  • 作者: 蓑谷 千凰彦
  • 出版社/メーカー: 東京図書
  • 発売日: 2009/10/08
  • メディア: 単行本




統計学入門

統計学入門

  • 作者: 蓑谷 千凰彦
  • 出版社/メーカー: 東京図書
  • 発売日: 2004/12
  • メディア: 単行本




朝野先生自信も新しい本を書いたとか。
後で買っておこうっと♪

アンケート調査入門

アンケート調査入門

  • 作者: 朝野熙彦
  • 出版社/メーカー: 東京図書
  • 発売日: 2011/10/08
  • メディア: 単行本(ソフトカバー)




最新マーケティング・サイエンスの基礎 (KS社会科学専門書)

最新マーケティング・サイエンスの基礎 (KS社会科学専門書)

  • 作者: 朝野 煕彦
  • 出版社/メーカー: 講談社
  • 発売日: 2010/12/07
  • メディア: 単行本(ソフトカバー)


2011年11月10日

BAF 2011 2日目

Business Analytics Forum 2日目 に行ってきました。
2日目の方がSPSSらしいセミナーで良かったですw

以下、ざっと感想を。

【2S-1】
IT進歩が支える新しい産学協同の取り組み
―きき耳パネルはこうして作られた!―

清水先生の講演は、いつ聞いても面白いですね。
聞き耳パネルを利用するには、マイボイスコムを使うとできるらしい。

【2S-3】
IBM SPSS Modeler TIPsよたび!ユーザーの皆様必見!
―裏ワザ的便利機能を濃縮還元―

西牧さんの発表。
今回で4回目になるんですね。
いつも、楽しみにしています。

今回の発表が素晴らしすぎたので、次回の発表の期待値が上がりまくりです。

2011年11月09日

BAF 2011 1日目 分析する目的

BAF 2011 1日目 分析する目的

IBM主催のBusiness Analytics Forum Japan 2011がありました。

西牧さんの講演は話が上手く、とてもおもしろ講演でした。
二日目も講演するみたいなので、とても楽しみにしています。

さて、講演の中で

顧客分析の目的は何だろうか

私たちは(我が社は)、
   ?   

目的として顧客分析をしています!

この中に入る言葉は?と問われたとき、自分だったこう答えるだろう。

【花嫁ひとりひとりのHappy】
だと。

まぁ、サイトの特性からして↑が当然といえば当然なんでしょうけど。

この【 ? 】に入る言葉って、一般のメンバーだと割りと具体的なコトを書くと思う。
それは、日々の売り上げに関連したキーワードになるだろう。

ただ、ジョブスといった経営層になればなるほど、割と遠くの理想、夢、想いといった言葉に変わっていくし、変わっていくべきだと思う。

そして、ジョブスたちは、夢(ここではVisionという意味)だけを語るのかといえば、そうではなく、
話す人に対して言葉をきちんと選んでいる。
当然売り上げに関連したキーワードを語るときは語っている。

ビジョンだけでもダメだし、売り上げといった現実の数字だけでもダメで、そのバランスが大切だ。
ただ、経営層だけでなく、最下層にいるメンバー自信も一度、自分の目線を上げて、日本のため/世界のためといったVisonを考えることが大切だと思う。

2011年10月20日

GDO(ゴルフダイジェストオンライン)のデータ分析

GDO(ゴルフダイジェストオンライン)のデータ分析

今年のデータ解析コンペは、ゴルフダイジェストオンラインのデータ。
例年は、データだけ与えられて、自分でテーマを設定し分析をする。

今年は、通常の自分で課題を設定するフリー部門と課題部門の2つがある。
課題部門のテーマは、RFMのFとMを予測し、その精度を競うらしい。

なんだか、どっちも面白そうってことで、今年は両方の部門を申し込んで見た。

来月、課題/フリーの両部門の中間発表があるのだが、そろそろ分析をはじめなきゃ。
まずは、課題部門でFM予測をしてみるか。。。

2011年10月18日

今日は、統計の日

今日、10月18日は、統計の日らしい。

そんな日があったこと自体に驚きだが、その由来は、明治3年9月24日(グレゴリオ暦1870年10月18日)にさかのぼる。
当時、日本で初めての近代的生産統計である府県物産表に関する太政官布告が公布されたことが由来となっており、後に1973年(昭和48年)7月3日の閣議了解によって10月18日に制定された。

その統計の日にちなんで、IBM SPSS 統計フォーラムがあったので行ってきた。
通常のSPSSのセミナーとは違った雰囲気だった。

たまには、こんな雰囲気のセミナーも良いものだ。

個人的には、成蹊大学の岩崎先生の話が面白かった。
大学の先生の話って、硬い難しい話になりがちだが、今日の講演は分かりやすかった。
講演内容は、教育や統計の必要性などの統計事情を日本の事例やアメリカの事例を織り交ぜながら講演されていた。

著書も数多く出版されているので、何冊か買ってみたいと思う。


統計的データ解析入門 単回帰分析

統計的データ解析入門 単回帰分析

  • 作者: 岩崎 学
  • 出版社/メーカー: 東京図書
  • 発売日: 2006/07
  • メディア: 単行本




カウントデータの統計解析 (統計ライブラリー)

カウントデータの統計解析 (統計ライブラリー)

  • 作者: 岩崎 学
  • 出版社/メーカー: 朝倉書店
  • 発売日: 2010/07
  • メディア: 単行本


2011年07月23日

データ解析コンペの成果報告会と発会式

今日は、データ解析コンペの成果報告会と発会式が同時に行われました。
通常、成果報告会は、3月くらいに行われますが、地震の影響でこの季節となりました。

さて、今年度のデータは、ゴルフダイジェストオンラインさんのデータとなっています。
ゴルフはまったくやらないので、ちゃんと分析できるだろうか…w

また、いつもと違う企画として、フリーの分析に加えて課題の分析があるみたいだ。
課題というのは、RFMのFとMを予測してその精度を競うというもの。
なんだかおもしろそう!

ということで、今年もエントリーすることになりそうです。

2011年06月29日

記事リコメンドの導入から結果の振り返りまで

久々に分背の話。

フィジビリでやっていた記事リコメンドがなかなか良さげだったので、本格的に他のグループにも流用してみた。

アルゴリズムの手法は、amazonとかその他のサイトでもおなじみのアソシエーションルール。
アソシエーションルールが良いのか、協調フィルタリングが良いのかとかって細かいことは特に気にしていない。

今回の実装で注意したことは、
1. 一度、実装して終了ではなく、都度効果チェックを行う。
 ⇒ 効果の悪いところ(想定したものより悪いところ)は、すぐに差し替える。

2. 異常値を発見して、原因を振り返る。

3. 単に ○○を見た人は△△を見たというルールではなく、ジャンルに注意する。

4. 流動したいコンテンツもコッソリ入れておく。

あらかじめ、1.〜4.を念頭において、レコメンド実装段階で平行して効果検証用のプログラムを作っておくとスピーディに効果分析ができる。

さて、他記事にもレコメンドが実装されたわけだが、効果をみるとかなりgood。
フィジビリで想定したもの以上の効果だったのが嬉しい。

とはいえ、一時点の結果に一喜一憂するのではなく、導入が終了ではなく、導入がスタートとなるように分析を続けて行きたいものだ。

2011年05月31日

半角カナと全角カナの結合 〜成功編〜

半角カナと全角カナの結合 〜成功編〜

ファイル1とファイル2を結合して、次の様なテーブルを作りたい。

ファイル1とファイル2

結合されたテーブル

【step1】
文字列をキーにして結合をすると、失敗する!
そこで、indexを付与してあげれば良いのだが、どちらのファイルに属するかを判断したいので、片方のindexは、もう片方よりも大きなindexをつけてあげる。
レコード結合
レコード結合
後のステップで、キーとキーの結合ではなく、indexとindexの結合をするようなストリームを作成すればよい。

【step2】
結合ノードは、全角と半角がグチャグチャになってしまうけど、集計ノードはきちんと集計されるようだ。
レコード集計
そこで、いったんレコード結合ではなく、レコード追加を実行した後に集計を行う。

レコード集計の中身は、こんな感じ。↓
レコード集計
この時に最小と最大にチェックをしておくこと。

レコード集計
そして、index_Minとindex_Maxで異常値は、-1と補正しておけばよい。

ここまでで作成されたテーブルを確認すると

となっている。

【step3】
ここまでできれば、後は、【step1】で作成したindex同士を結合すれば、OK!

結合する際、内部結合ではなく、部分外部結合で結合する必要がある。

主となるファイルを間違えないように結合すれば、終了。

結果は、想定した通りの
結合されたテーブル
というファイルが出てくる。

関連ブログ: 半角カナと全角カナの結合 〜失敗編〜
http://skellington.blog.so-net.ne.jp/2011-05-30

2011年05月30日

半角カナと全角カナの結合 〜失敗編〜

半角カナと全角カナの結合 〜失敗編〜

ファイル1とファイル2を結合して、次の様なテーブルを作りたい。

ファイル1

ファイル2

間違い探しのようになるが、
【ファイル1】
key レコード1
ゼクシィ 1
ゼクシィ 2
ゼクシィ 3

【ファイル2】
key レコード2
ゼクシィ 11
ゼクシィ 13
ゼクシイ 14

【結合されたテーブル】
key レコード1 レコード2
ゼクシィ 1 11
ゼクシィ 2 null
ゼクシィ 3 13
ゼクシイ null 14

となっている。

まずは、"Microsoft Office Access 2007"で結合させるとどんな結果になるか。

Microsoft Office Access 2007での結合結果

このように半角とか全角とか混同されて結合されてしまっている。
このあたりは予想通りというか、なんというか。。。

次に、"IBM SPSS Modeler(旧 Clementine)"を使って結合してみる。

IBM SPSS Modeler(旧 Clementine)の失敗ストリーム

まずは、単純に結合ノードで結合してみる。
内部結合だろうが、外部結合だろうが、結果はうまく行かない。

IBM SPSS Modeler(旧 Clementine)での結合結果

この結果をみると、、、

まず、2行目の"ゼクシィ(ィは、半角カナ)"が勝手に"ゼクシィ(ィは、全角カナ)"に置換されています。
う〜ん、勝手に半角カナを全角カナに変更しちゃっているし。。。
レコード2の部分もnullではなく、11って数字が入っています。

このように勝手に置換されてしまっては、その後どう処理してもダメです。

以上の結果から、いきなり結合ノードを使うのは、失敗!ってことになります。

少しトリッキーな処理になりますが、下記のようにすれば思った結合ができます。

IBM SPSS Modeler(旧 Clementine)の正しいストリーム

続きは明日…

2011年05月25日

IBM SPSS Modeler(旧Clementine)関数 "issubstring" の落とし穴

IBM SPSS Modeler(旧Clementine)の関数に
・issubstring(SUBDTRING, STRING)
・issubstring(SUBDTRING, N, STRING)
があります。

使い方として、文字列の中にあるキーワードが入っているかどうか?の調査に使います。

・issubstring(SUBDTRING, STRING)の使い方

issubstring(SUBDTRING, STRING)

STRINGにSUBSTRINGがあるかどうかを検索します。見つかった場合、その開始位置の添え字を返します。それ以外の場合は、0を返します。


例として、流入キーワードの中に "BCD" が含まれているかどうか?をチェックしたい。
issubstring("BCD", 流入キーワード)


大文字と小文字を区別するので、ABCDEFがヒットします。


そして、BCDは、2文字目からスタートするので、2となります。
それ以外は、0です。

条件抽出でそのキーワードが含まれているかどうか引っ張ってくる場合、
 issubstring("BCD", 流入キーワード) > 0
と書いても良いですし、> 0 を書かなくて、
 issubstring("BCD", 流入キーワード)
と書いても大丈夫です。

・issubstring(SUBDTRING, N, STRING)の使い方

issubstring(SUBDTRING, N, STRING)

STRINGのN番目の文字からSUBSTRINGの検索を開始します。見つかった場合、その開始位置の添え字を返します。


例として、流入キーワードの中に "BC*D" が含まれているかどうか?をチェックしたい。
です。
BCとDの間に文字列があってもなかっても良いです。



issubstring("D", issubstring("BC", 流入キーワード), 流入キーワード)

この書き方は実はあまりよろしくないです。

"BC*D"が含まれている場合は、その開始位置を返してくれます。
"BC"だけの場合は、0を返してくれます。
"BC"がない場合、、、issubstring("D", 0, 流入キーワード) となるので、これは、nullになります。

含まれていないなら0でもnullでもいいじゃないかってことなんですが、
条件抽出をする場合に、変なことが起こります。

【BCD > 0】を含める場合、


【BCD > 0】を破棄する場合、


となって、nullがどちらにも出てきません。

この問題を解決する方法としては、
issubstring("D", issubstring("BC", 流入キーワード) + 1, 流入キーワード)
と、"+ 1"を追記してあげれば、OKです。

結果は、

このように、文字列が含まれる場合は、開始位置を返し、含まれない場合は、0を返してくれます。

2011年05月12日

IBM SPSS Modeler(旧 Clementine)のバッチ起動に関するよもやま

今日は、風邪で1日お休み。

さて、会社の同僚がIBM SPSS Modeler(旧 Clementine)のバッチ処理で質問があったので、ネタに使わせてもらおうw

「要約すると、バッチが上手く動かない。」とのことだった。
クレメンタインの問題とMS-DOSでの処理の問題が2つ混在している。

解決方法というか、チェック方法としては、3点ほど。
・絶対パスでClementineを呼び出しているか?
・Clementineをインストールしたフォルダにスペースがあるか?
・バッチ用のClembを使っているか?
だ。

【その1】
まず、バッチは、clembを使うという前提で。

相対パスは、あまり使わない方が良い。
というのは、
「MS-DOSでCDをしたとしても、想定したディレクトリに移動していない場合がある。」
からだ。

ここでエラーで動かないと良いのだが、Windowsのpathが通っている場合、
clembを呼び出した場合、動いてしまう可能性がある。
勝手に動いてくれると良いじゃないか?と思うかもしれないが、
Clementineの場合、複数のバージョンをインストールできるので、
どのバージョンを呼び出しているのかがあやふやになる。

普通、バージョンが上がると、過去のバグはなくなり、上位のバージョンの方が良い!のだが、Clementineの場合は、バージョンが上がったら、急にバグが出てくるとかってことが多い。
だから、このストリームは、どのバージョンで動かしているのかってことを常に意識しておく必要がある。

そのためにも、相対パスではなく、絶対パスを指定して動かした方が良いだろう。

【その2】
絶対パスで呼び出す場合、インストールした先にスペースを含む場合、注意が必要。
インストール先が C:\Program Files\SPSSInc\ などの場合、スペースを上手く認識しない場合がある。
一番良いのは、インストールする先をC:\SPSSInc\というようにスペースを含まないフォルダにインストールしておくのが良い。
とはいえ、もうインストールしてしまったYO!って場合は、
"C:\Program Files\SPSSInc\"
ダブルクォーテーションでくくっておけば良いだろう。

【その3】
バッチ処理の場合は、Clembを使うのが良い。
GUIモードを使うと、クレメンタインが終了しないので、面倒だ。
EXIT 0を使えば、終了しそうなものだが、こちらは、あくまでもMS-DOSが終了するだけであって、一度起動したクレメンタインが終了するわけではない。

クレメンタインを終了させるためには、スクリプト(- script)を使って、
exit Clementine 0とすれば、GUIモードでも終了させることができる。

後、MS-DOSの記述は、大文字でも小文字でも同じ。
clembと書こうがCLEMBと書こうが同じになります。

過去の参考ブログ
・IBM SPSS Modeler のバッチ実行よもやま
http://skellington.blog.so-net.ne.jp/2010-02-01

・IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その1
http://skellington.blog.so-net.ne.jp/2010-10-28

・IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その2
http://skellington.blog.so-net.ne.jp/2010-10-29

2011年02月07日

大阪大学とのデータマイニングプロジェクト

今日は、珍しく大阪に出張。

大阪大学の先生がデータマイニングに関する新技術を持っているってことなので、
うちのサイトのデータを使い色々分析をしてもらっていた。

こういう技術って、魔法の技術や打ち出の小槌ではないので、素敵なルールやら分析結果が簡単にたくさん出てくる!というものではない。

それに日ごろから色々分析やっていますしね。w

日ごろの分析で発見できなかったような、いくつかの施策に落とす可能性があるルールが1,2個でも発見できれば、それはOKなんだと思う。
そして、その発見されたルールをさらに、元のデータなどに立ち戻り、深く分析をしていくプロセスも大切だ。

2010年11月19日

数理システム ユーザーコンファレンス 2010とミッキーマウスの誕生日

数理システム ユーザーコンファレンス 2010とミッキーマウスの誕生日

「数理システム ユーザーコンファレンス 2010」に行ってきました。

聴いたのは、
・ソネット、磯崎さんのアドネットワーク広告におけるオプティマイズ戦略
・生田目先生の小売業における顧客セグメンテーションとマーケティング戦略のための分析
・ALBERT、山川さんのVMStudioを利用したレコメンドロジック
です。

生田目先生が、
「今日は、ミッキーの誕生日。」
と言っていましたが、、、今日ではなく、昨日が誕生日。

11月18日が誕生日で、2010年は、なんと82回目(82歳)だったりします。
ミッキーってそんなにおじいちゃんだったんですねぇ。w

VMSも色々とバージョンアップをしているようで、次回のバージョンアップが楽しみだったりします。

2010年11月10日

Visual Mining Studio(VMS)でUTF-8ファイルの読み込み

IBM SPSS ModelerでUTF-8を読み込む際は、自分でUTF-8を選択するので、問題なく読み込めるのだが、数理システムのVisual Mining Studio(VMS)では、文字コードを選択するオプションがない。。。

実際に、読み込んでみると、文字化けを起こしてしまい読み込めなかった。。。

そこで、数理システムに問い合わせてみたところ、
・Unicodeサイン(BOM)がついているUTF-8ファイル
⇒ テキスト整形を使って文字コードを修正することが可能。

・Unicodeサイン(BOM)がついていないUTF-8ファイル
⇒ 未対応。
次期、バージョンで読み込みが可能。
現状は、手動で文字コードをシフトJISに変更するか、Unicodeサインをつける必要がある。

とのことでした。

システムとかから、一方的に吐き出されるファイルって、UnicodeサインがついていないUTF-8形式ってけっこうあったりするので、正直面倒だ。。。

ちなみに、VMStudioは、上記のようにすれば、UTF-8形式も読み込めますが、TMStudioは、対応していないらしい。
こちらも、次期バージョンに期待です。

2010年11月04日

IBM SPSS Modeler(旧Clementine)で日付別のファイルを処理する

先日の続き。

日付別のファイルを処理するときに、スクリプトを使えば、こんなに簡単に書けます。


ストリーム自体は簡単ですが、その分手間として、スクリプトを書く必要がありますが。。。

繰り返し、毎月使うとかだと、スクリプトで書いておいた方が楽になるかと思います。

------------------------------------------------------------
# 初日の処理(ハコを作成する)
set input.full_filename = '\\\\192.168.***.***\rawdata\data_20101001.csv'
set out_01.write_mode = Overwrite
execute 'out_01'

# 2日〜9日の処理
for i from 2 to 9
set input.full_filename = '\\\\192.168.***.***\rawdata\data_2010100' >< i >< '.csv'
set out_01.write_mode = Append
execute 'out_01'
endfor

# 10日〜31日の処理
for i from 10 to 31
set input.full_filename = '\\\\192.168.***.***\rawdata\data_201010' >< i >< '.csv'
set out_01.write_mode = Append
execute 'out_01'
endfor
------------------------------------------------------------

では、1行目から解説していきますと…

# 初日の処理(ハコを作成する)
# は、MS-DOSでいうところの rem と同じで、コメント行に使用します。

set input.full_filename = '\\\\192.168.***.***\rawdata\data_20101001.csv'
これを実行すると、インプットファイルは、
  \\192.168.***.***\rawdata\data_20101001.csv
となります。
\マークがいっぱい出てきていますが、\\ で \ ということですね。

感が良い人は、気がついたかもしれませんが、
set input.full_filename = '\\\\192.168.***.***\\rawdata\\data_20101001.csv'
と書いても、結果は同じです。

set out_01.write_mode = Overwrite
最初の日の保存モードは、上書きするので、Overwriteと設定します。
以下の行は、Append とすることで、保存モードがレコード追加になります。

# 2日〜9日の処理
for i from 2 to 9
 << 処理 >>
endfor
i が2から9まで値を変えながら以下の処理をしてくれます。

ファイル名を
 data_20101002.csv、data_20101003.csv、…、data_20101009.csv
と変化させていきたいので、i を使って、
 '\\\\192.168.***.***\rawdata\data_2010100' >< i >< '.csv'
と書きます。

ファイルをつなげる方法としては、' を使って区切ります。
" でも動きます。
○ '\\\\192.168.***.***\rawdata\data_2010100' >< i >< '.csv'
○ "\\\\192.168.***.***\rawdata\data_2010100" >< i >< ".csv"

何もつけないと動きません。
× \\\\192.168.***.***\rawdata\data_2010100 >< i >< .csv

両端だけ ' や " をつけるのもダメです。
× '\\\\192.168.***.***\rawdata\data_2010100 >< i >< .csv
× "\\\\192.168.***.***\rawdata\data_2010100 >< i >< .csv

# 10日〜31日の処理
こちらは、同様の処理なので省略。

※ 関連記事
IBM SPSS Modeler(旧Clementine)を解凍してみる
http://skellington.blog.so-net.ne.jp/2010-11-01

IBM SPSS Modeler(旧Clementine)を圧縮してみる
http://skellington.blog.so-net.ne.jp/2010-11-02

2010年11月02日

IBM SPSS Modeler(旧Clementine)を圧縮してみる

昨日のブログの続き。
  ↓
IBM SPSS Modeler(旧Clementine)を解凍してみる
http://skellington.blog.so-net.ne.jp/2010-11-01

仮に、こんなストリームがあったとします。


※ 実際は、スクリプトを書いた方がカンタンです…

一つ一つの入力ファイルをクリックして、入れ替えるのって面倒。。。
そこで、この方法。

1. いったん、xmlファイルに解凍します。

2. 日付の部分をエディタで一括変換します。

3. 解凍/圧縮ソフトでzip圧縮をします。

4. .zipの拡張子を .strに変更します。
(スーパーノードの場合は、.slb)

今作成したストリームをクレメンタインで読み込むと、


ちゃんと日付が変わっているかと思います。
もちろん、ちゃんと動きます。

※ 8月31日の場合、9月31日と実在しない日付になってしまうので、注意が必要です。

本当は、スクリプトを使うのが、一番楽だと思います。(´д`)

2010年11月01日

IBM SPSS Modelerを解凍してみる

IBM SPSS Modelerを解凍してみる

何もないストリームをとりあえず保存してみる。


例えば、名前はデフォルトのまま【ストリーム1.str】とします。


このまま直接解凍ソフトを使って解凍しても良いのだが、、、
分かりやすいようにいったん拡張子を .zip に変更します。



Windows君に怒られるかもしれないけど、無視して変更。

Lhaplusなどの解凍ソフトを使って解凍すると、、、



何やら怪しい文字化けした xmlファイルが登場します。

原因は、【ストリーム1.str】と日本語の名前を付けて保存したのが原因です。


試しに、【minky_str1.str】という名前のファイルで保存してみると、xml ファイルの名前は、minky_str1.xml となります。

次にこの xml ファイルを開けてみると、


既に、色々書かれていますね。
【minky_str1】という名前も出ています。

色々なノードを組み合わせてストリームを作成していきますが、これらの結果は、このように xml ファイルとして保存されています。

そして、これは、スーパーノードでも同じです。
スーパーノードを保存すると、.slb として保存されます。
これも直接解凍するなり、拡張子を変更するなりして解凍すると、xml ファイルとして書かれています。

次に、
 1. xml ファイルをいろいろと書き換えて、保存し、zip圧縮し
 2. .zip を .str や .slb に変更すると、
そのまま Clementine で読み書きすることも可能です。

実際の使い方?は、次回紹介します。

2010年10月29日

IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その2

MS-DOSのスクリプトを使う場合のやり方。
色々なやり方があると思うので、下記のスクリプトは参考程度にしてください。w



MS-DOSのScriptを書いたことがない人向けに一つずつ説明していきます。

--------------------------------------------------
● rem
rem というのは、注釈行みたいなもので、メモに使用します。
プログラム的には実行されません。

● set CLEM_PATH=C:\SPSSInc\Clementine\13.0\bin\
CLEM_PATHという変数を設定します。
クレメンタインのインストール場所を設定します。
パスは、人によって違うので変更してください。

● set FIRST_PLACE=%~dp0
バッチファイル実行パスを表示します。
例えば、
  C:\test\bat\
というディレクトリで実行すれば、
  FIRST_PLACE=C:\test\bat\
となります。
最後に \ マークも含まれているので、後でパスを表記する際は注意が必要です。

● %CLEM_PATH%clemb -stream %FIRST_PLACE%..\str\ストリーム1.str -directory %FIRST_PLACE% -execute -log %FIRST_PLACE%bat.log
上記で設定した変数の値を書き込むと、
  C:\SPSSInc\Clementine\13.0\bin\clemb -stream C:\test\bat\..\str\ストリーム1.str -directory C:\test\bat\ -execute -log C:\test\bat\bat.log
となります。
  -stream ⇒ 実行するストリームを書きます。
  -directory ⇒ デフォルトの作業ディレクトリを設定します。
  -execute ⇒ ストリームを実行します。
  -log ⇒ ログファイルを保存します。エラーが起きた場合に使用。

● %ERRORLEVEL%
Clementine が正常に終了したかのチェック。
正常に終了すると、0を返します。
if 文などを使って、異常終了時の処理などに使えます。

● EXIT 0
MS-DOSの終了コマンド
ただ、cmd でbat実行する場合は、ウィンドウが閉じてしまうので、書かない方が良いでしょう。
--------------------------------------------------

★ ポイント ★
今回、相対パスを使っているため、-directory を使って、デフォルトの作業ディレクトリを設定しないとだめです。

これがないと、
  C:\Documents and Settings\ユーザネーム
がデフォルトとなってしまいます。(Windows XPの場合)

絶対パスを使ってストリームを書いている場合は、逆に要りません。(^^;

2010年10月28日

IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その1

IBM SPSS Modeler(旧 Clementine)でストリームを作成する場所と実行する場所が違ったりすることがあります。
開発用と本番用の場所が違うって場合です。

ODBC経由でデータをとって来る場合は良いのですが、中間ファイルなどのテキストファイルを使う場合、ファイルのパスを設定しなおす必要があります。
ちょっと面倒くさいですよね。。。

例えば、こんな簡単なストリームを事例に書きますと、、、


絶対パス表記ではなく、相対パスで書いておくと便利だったりします。

絶対パス表記というのは、

C:\test\rawdata\rawdata.txt

相対パス表記というのは、

..\rawdata\rawdata.txt

と書きます。

ここで、フォルダ構成はこうなっています。


出力先のフォルダとして、【data】を使うとすると、その場合の表記は、
 絶対パス: C:\test\data\output.txt
 相対パス: ..\data\output.txt
となります。

ここで、C:\test で開発したストリームを D:\hoge に持っていったとします。

その場合、フォルダ(bat, data, rawdata, str)ごと持っていけば、移動先のフォルダでも、そのままファイルの読み込み、出力が可能となっています。



では、一歩進んで、これらの処理をバッチファイル(MS-DOS)で書くとどうなるか?です。
なかなか、MS-DOSのスクリプトを書いたことがない人も多いかと思いますが、慣れると意外と便利です

続く・・・!(・∀・)