データ解析コンペ、課題部門の最終発表 [確率・統計、データマイニング]
データ解析コンペ、課題部門の最終発表が、2月25日(土)にあります。
最終解答は送ったので、後はパワーポイントを作るだけです。
さて、審査基準が発表になりました。
優勝は、"最もスコアが高い結果を出したチーム"とのことですが、
2位と3位は、"スコアを重視しつつ、他の要素も考慮する"でした。
ちょっと残念が気がします。。。
フリー部門もあるので、他の要素(新規性、信頼性、適用可能性、発表の良さなど)などは、そちらに任せて、純粋に精度だけで判断をした方がわざわざ課題部門を作った意味がない気がします。
純粋に精度の高さで勝負する。
それが課題部門らしい気がするのですが。。。
最終解答は送ったので、後はパワーポイントを作るだけです。
さて、審査基準が発表になりました。
優勝は、"最もスコアが高い結果を出したチーム"とのことですが、
2位と3位は、"スコアを重視しつつ、他の要素も考慮する"でした。
ちょっと残念が気がします。。。
フリー部門もあるので、他の要素(新規性、信頼性、適用可能性、発表の良さなど)などは、そちらに任せて、純粋に精度だけで判断をした方がわざわざ課題部門を作った意味がない気がします。
純粋に精度の高さで勝負する。
それが課題部門らしい気がするのですが。。。
データ解析コンペ、課題編の〆切 [確率・統計、データマイニング]
データ解析コンペの課題編の〆切が近づいてきた。
モデルの精度も重要なのだが、今回は、RFMのFとMのカテゴリによって配点が異なるということだ。

これをどのようにモデルに反映していくかも、意外と得点に影響が出てくる。
つまり、今回は、『高い精度のモデル ≠ 高い得点』となっている。
具体的に、どのような戦術/戦略を元にしたモデリング作りを行ったかは、2月25日の発表で。
モデルの精度も重要なのだが、今回は、RFMのFとMのカテゴリによって配点が異なるということだ。

これをどのようにモデルに反映していくかも、意外と得点に影響が出てくる。
つまり、今回は、『高い精度のモデル ≠ 高い得点』となっている。
具体的に、どのような戦術/戦略を元にしたモデリング作りを行ったかは、2月25日の発表で。
IBM SPSS Modelerのコメント記法 [確率・統計、データマイニング]
IBM SPSS Modeler(旧 クレメンタイン)のコメント記法
別タブの中にコメントが書けるのだが、CLEM式の中にもコメントを書くことが出来ます。
これがあると、CLEM式が複雑になっても、何をやっているのかコメントできます。
(例)偶数と奇数を判別するCLEM式
↑
コメントを書くまでもないけど。(^^;
◆ 1行コメント → # で書きます。
◆ 行頭からの複数行コメント → /* ~ */ で囲みます。
※ C言語などでおなじみの // によるコメントは使えません。
別タブの中にコメントが書けるのだが、CLEM式の中にもコメントを書くことが出来ます。
これがあると、CLEM式が複雑になっても、何をやっているのかコメントできます。
(例)偶数と奇数を判別するCLEM式
if index rem 2 = 1 then "奇数"
elseif index rem 2 = 0 then "偶数"
else "不明" endif
↑
コメントを書くまでもないけど。(^^;
◆ 1行コメント → # で書きます。
# 奇数かどうか
if index rem 2 = 1 then "奇数"
# 偶数かどうか
elseif index rem 2 = 0 then "偶数"
# その他
else "不明" endif
◆ 行頭からの複数行コメント → /* ~ */ で囲みます。
/*
改行コメント
改行コメント
改行コメント
*/
if index rem 2 = 1 then "奇数"
elseif index rem 2 = 0 then "偶数"
else "不明" endif
※ C言語などでおなじみの // によるコメントは使えません。
平均値の欠点 [確率・統計、データマイニング]
年末になると、年末調整とか冬のボーナスとかが気になりますね。
今日のニュースで、国家公務員のボーナスが4.1%増だったとか。
統計局のホームページから、年収や貯蓄の分布がダウンロードできます。
これによると、
年間収入の平均は、616万円
貯蓄の平均は、1,657万円
です。
今日のニュースで、国家公務員のボーナスが4.1%増だったとか。
統計局のホームページから、年収や貯蓄の分布がダウンロードできます。
これによると、
年間収入の平均は、616万円
貯蓄の平均は、1,657万円
です。
近代統計科学の創始者、カール・ピアソン [確率・統計、データマイニング]
カール・ピアソン(Karl Pearson)について調べた。
近代統計科学の創始者と言われているだけあって、業績は数多くあるが、主なものとしては、次のようなもの。
◆ 線形回帰、相関とピアソンの積率相関係数
ゴルトンの相関概念を一般化し、重相関係数や偏相関係数という概念を作った。
◆ 標準偏差
標準偏差、最頻値(モード)の概念を創案した。
ちなみに、中央値(メジアン)、四分位数は、ゴルトンの創案。
◆ 確率分布関数の分類
以後の統計学理論の基礎となり、特に指数型分布族は一般化線形モデル理論の基本となっている。
◆ χ2(カイ2乗)分布の再発見
ピアソンのカイ二乗検定:カイ二乗検定のうち最も基本的なものである。
◆ ヒストグラムという語を創案した。
また、人材育成にも力を入れており、全世界から研究者が集まった。
彼の著書『科学の文法』に影響を受けた人が多く、アルベルト・アインシュタインもこれを読んだそうな。
日本人では、夏目漱石、寺田寅彦が影響を受けた。
夏目漱石は、留学時代に実際にピアソンの講義を聴いたとか!
夏目漱石は、1867年2月9日 - 1916年12月9日
ピアソンは、1857年3月27日 - 1936年4月27日
と同じ時代を生きたんですね。
『科学の文法』The Grammar of Science Karl Pearson(1892年)
Amazonで売られていた!
アトリビューション分析の向かう先 [確率・統計、データマイニング]
ひょんなことから、西郷さんの師匠である先生に会いに行きました。
そこで、アトリビューション分析について話す機会があったのですが、
なかなか良い議論ができた気がします。
そして、その中でぼんやりと次の発展系が見えてきました。
まだ、頭の中にもわもわっとしたアイデアレベルなのですが、今年中にアイデアを形にできればと思います。
その後は、筑波大学大学院の近所にある居酒屋に行きました。
スモーク系が美味しいお店です。
【茗荷谷駅】いぶしや
http://r.tabelog.com/tokyo/A1323/A132302/13052505/
金曜日だけど、あんまり混んでいなかった。。。w
学生が多いからでしょうかね。
そこで、アトリビューション分析について話す機会があったのですが、
なかなか良い議論ができた気がします。
そして、その中でぼんやりと次の発展系が見えてきました。
まだ、頭の中にもわもわっとしたアイデアレベルなのですが、今年中にアイデアを形にできればと思います。
その後は、筑波大学大学院の近所にある居酒屋に行きました。
スモーク系が美味しいお店です。
【茗荷谷駅】いぶしや
http://r.tabelog.com/tokyo/A1323/A132302/13052505/
金曜日だけど、あんまり混んでいなかった。。。w
学生が多いからでしょうかね。
数理システム ユーザーコンファレンス 2011 [確率・統計、データマイニング]
今日は、夕方から社内に戻る必要があったので、午前と午後の講演を少し聴いて社内に戻りました。
午前は、朝野熙彦(ひろひこ)先生による「マーケティング実務家にとってのデータ解析」という内容でした。
当時、安価なパソコンも素敵な統計解析のツールもない時代にフォートランを使ってシステムを書かれていたとか。
なかなか聴けない貴重な講演を聴くことができました。
講演の中で朝野先生おススメの統計の本が紹介されてました。
統計を学習するにあたり、避けては通れない大切な部分を丁寧に解りやすく紹介しているとのことでした。
朝野先生自信も新しい本を書いたとか。
後で買っておこうっと♪

午前は、朝野熙彦(ひろひこ)先生による「マーケティング実務家にとってのデータ解析」という内容でした。
当時、安価なパソコンも素敵な統計解析のツールもない時代にフォートランを使ってシステムを書かれていたとか。
なかなか聴けない貴重な講演を聴くことができました。
講演の中で朝野先生おススメの統計の本が紹介されてました。
統計を学習するにあたり、避けては通れない大切な部分を丁寧に解りやすく紹介しているとのことでした。
朝野先生自信も新しい本を書いたとか。
後で買っておこうっと♪

最新マーケティング・サイエンスの基礎 (KS社会科学専門書)
- 作者: 朝野 煕彦
- 出版社/メーカー: 講談社
- 発売日: 2010/12/07
- メディア: 単行本(ソフトカバー)
BAF 2011 2日目 [確率・統計、データマイニング]
Business Analytics Forum 2日目 に行ってきました。
2日目の方がSPSSらしいセミナーで良かったですw
以下、ざっと感想を。
【2S-1】
IT進歩が支える新しい産学協同の取り組み
―きき耳パネルはこうして作られた!―
清水先生の講演は、いつ聞いても面白いですね。
聞き耳パネルを利用するには、マイボイスコムを使うとできるらしい。
【2S-3】
IBM SPSS Modeler TIPsよたび!ユーザーの皆様必見!
―裏ワザ的便利機能を濃縮還元―
西牧さんの発表。
今回で4回目になるんですね。
いつも、楽しみにしています。
今回の発表が素晴らしすぎたので、次回の発表の期待値が上がりまくりです。
2日目の方がSPSSらしいセミナーで良かったですw
以下、ざっと感想を。
【2S-1】
IT進歩が支える新しい産学協同の取り組み
―きき耳パネルはこうして作られた!―
清水先生の講演は、いつ聞いても面白いですね。
聞き耳パネルを利用するには、マイボイスコムを使うとできるらしい。
【2S-3】
IBM SPSS Modeler TIPsよたび!ユーザーの皆様必見!
―裏ワザ的便利機能を濃縮還元―
西牧さんの発表。
今回で4回目になるんですね。
いつも、楽しみにしています。
今回の発表が素晴らしすぎたので、次回の発表の期待値が上がりまくりです。
BAF 2011 1日目 分析する目的 [確率・統計、データマイニング]
IBM主催のBusiness Analytics Forum Japan 2011がありました。
西牧さんの講演は話が上手く、とてもおもしろ講演でした。
二日目も講演するみたいなので、とても楽しみにしています。
さて、講演の中で
顧客分析の目的は何だろうか
私たちは(我が社は)、
を目的として顧客分析をしています!
この中に入る言葉は?と問われたとき、自分だったこう答えるだろう。
【花嫁ひとりひとりのHappy】
だと。
まぁ、サイトの特性からして↑が当然といえば当然なんでしょうけど。
この【 ? 】に入る言葉って、一般のメンバーだと割りと具体的なコトを書くと思う。
それは、日々の売り上げに関連したキーワードになるだろう。
ただ、ジョブスといった経営層になればなるほど、割と遠くの理想、夢、想いといった言葉に変わっていくし、変わっていくべきだと思う。
そして、ジョブスたちは、夢(ここではVisionという意味)だけを語るのかといえば、そうではなく、
話す人に対して言葉をきちんと選んでいる。
当然売り上げに関連したキーワードを語るときは語っている。
ビジョンだけでもダメだし、売り上げといった現実の数字だけでもダメで、そのバランスが大切だ。
ただ、経営層だけでなく、最下層にいるメンバー自信も一度、自分の目線を上げて、日本のため/世界のためといったVisonを考えることが大切だと思う。
西牧さんの講演は話が上手く、とてもおもしろ講演でした。
二日目も講演するみたいなので、とても楽しみにしています。
さて、講演の中で
顧客分析の目的は何だろうか
私たちは(我が社は)、
?
を目的として顧客分析をしています!
この中に入る言葉は?と問われたとき、自分だったこう答えるだろう。
【花嫁ひとりひとりのHappy】
だと。
まぁ、サイトの特性からして↑が当然といえば当然なんでしょうけど。
この【 ? 】に入る言葉って、一般のメンバーだと割りと具体的なコトを書くと思う。
それは、日々の売り上げに関連したキーワードになるだろう。
ただ、ジョブスといった経営層になればなるほど、割と遠くの理想、夢、想いといった言葉に変わっていくし、変わっていくべきだと思う。
そして、ジョブスたちは、夢(ここではVisionという意味)だけを語るのかといえば、そうではなく、
話す人に対して言葉をきちんと選んでいる。
当然売り上げに関連したキーワードを語るときは語っている。
ビジョンだけでもダメだし、売り上げといった現実の数字だけでもダメで、そのバランスが大切だ。
ただ、経営層だけでなく、最下層にいるメンバー自信も一度、自分の目線を上げて、日本のため/世界のためといったVisonを考えることが大切だと思う。
GDO(ゴルフダイジェストオンライン)のデータ分析 [確率・統計、データマイニング]
今年のデータ解析コンペは、ゴルフダイジェストオンラインのデータ。
例年は、データだけ与えられて、自分でテーマを設定し分析をする。
今年は、通常の自分で課題を設定するフリー部門と課題部門の2つがある。
課題部門のテーマは、RFMのFとMを予測し、その精度を競うらしい。
なんだか、どっちも面白そうってことで、今年は両方の部門を申し込んで見た。
来月、課題/フリーの両部門の中間発表があるのだが、そろそろ分析をはじめなきゃ。
まずは、課題部門でFM予測をしてみるか。。。
例年は、データだけ与えられて、自分でテーマを設定し分析をする。
今年は、通常の自分で課題を設定するフリー部門と課題部門の2つがある。
課題部門のテーマは、RFMのFとMを予測し、その精度を競うらしい。
なんだか、どっちも面白そうってことで、今年は両方の部門を申し込んで見た。
来月、課題/フリーの両部門の中間発表があるのだが、そろそろ分析をはじめなきゃ。
まずは、課題部門でFM予測をしてみるか。。。
今日は、統計の日 [確率・統計、データマイニング]
今日、10月18日は、統計の日らしい。
そんな日があったこと自体に驚きだが、その由来は、明治3年9月24日(グレゴリオ暦1870年10月18日)にさかのぼる。
当時、日本で初めての近代的生産統計である府県物産表に関する太政官布告が公布されたことが由来となっており、後に1973年(昭和48年)7月3日の閣議了解によって10月18日に制定された。
その統計の日にちなんで、IBM SPSS 統計フォーラムがあったので行ってきた。
通常のSPSSのセミナーとは違った雰囲気だった。
たまには、こんな雰囲気のセミナーも良いものだ。
個人的には、成蹊大学の岩崎先生の話が面白かった。
大学の先生の話って、硬い難しい話になりがちだが、今日の講演は分かりやすかった。
講演内容は、教育や統計の必要性などの統計事情を日本の事例やアメリカの事例を織り交ぜながら講演されていた。
著書も数多く出版されているので、何冊か買ってみたいと思う。
そんな日があったこと自体に驚きだが、その由来は、明治3年9月24日(グレゴリオ暦1870年10月18日)にさかのぼる。
当時、日本で初めての近代的生産統計である府県物産表に関する太政官布告が公布されたことが由来となっており、後に1973年(昭和48年)7月3日の閣議了解によって10月18日に制定された。
その統計の日にちなんで、IBM SPSS 統計フォーラムがあったので行ってきた。
通常のSPSSのセミナーとは違った雰囲気だった。
たまには、こんな雰囲気のセミナーも良いものだ。
個人的には、成蹊大学の岩崎先生の話が面白かった。
大学の先生の話って、硬い難しい話になりがちだが、今日の講演は分かりやすかった。
講演内容は、教育や統計の必要性などの統計事情を日本の事例やアメリカの事例を織り交ぜながら講演されていた。
著書も数多く出版されているので、何冊か買ってみたいと思う。
データ解析コンペの成果報告会と発会式 [確率・統計、データマイニング]
今日は、データ解析コンペの成果報告会と発会式が同時に行われました。
通常、成果報告会は、3月くらいに行われますが、地震の影響でこの季節となりました。
さて、今年度のデータは、ゴルフダイジェストオンラインさんのデータとなっています。
ゴルフはまったくやらないので、ちゃんと分析できるだろうか…w
また、いつもと違う企画として、フリーの分析に加えて課題の分析があるみたいだ。
課題というのは、RFMのFとMを予測してその精度を競うというもの。
なんだかおもしろそう!
ということで、今年もエントリーすることになりそうです。
通常、成果報告会は、3月くらいに行われますが、地震の影響でこの季節となりました。
さて、今年度のデータは、ゴルフダイジェストオンラインさんのデータとなっています。
ゴルフはまったくやらないので、ちゃんと分析できるだろうか…w
また、いつもと違う企画として、フリーの分析に加えて課題の分析があるみたいだ。
課題というのは、RFMのFとMを予測してその精度を競うというもの。
なんだかおもしろそう!
ということで、今年もエントリーすることになりそうです。
記事リコメンドの導入から結果の振り返りまで [確率・統計、データマイニング]
久々に分背の話。
フィジビリでやっていた記事リコメンドがなかなか良さげだったので、本格的に他のグループにも流用してみた。
アルゴリズムの手法は、amazonとかその他のサイトでもおなじみのアソシエーションルール。
アソシエーションルールが良いのか、協調フィルタリングが良いのかとかって細かいことは特に気にしていない。
今回の実装で注意したことは、
1. 一度、実装して終了ではなく、都度効果チェックを行う。
⇒ 効果の悪いところ(想定したものより悪いところ)は、すぐに差し替える。
2. 異常値を発見して、原因を振り返る。
3. 単に ○○を見た人は△△を見たというルールではなく、ジャンルに注意する。
4. 流動したいコンテンツもコッソリ入れておく。
あらかじめ、1.~4.を念頭において、レコメンド実装段階で平行して効果検証用のプログラムを作っておくとスピーディに効果分析ができる。
さて、他記事にもレコメンドが実装されたわけだが、効果をみるとかなりgood。
フィジビリで想定したもの以上の効果だったのが嬉しい。
とはいえ、一時点の結果に一喜一憂するのではなく、導入が終了ではなく、導入がスタートとなるように分析を続けて行きたいものだ。
フィジビリでやっていた記事リコメンドがなかなか良さげだったので、本格的に他のグループにも流用してみた。
アルゴリズムの手法は、amazonとかその他のサイトでもおなじみのアソシエーションルール。
アソシエーションルールが良いのか、協調フィルタリングが良いのかとかって細かいことは特に気にしていない。
今回の実装で注意したことは、
1. 一度、実装して終了ではなく、都度効果チェックを行う。
⇒ 効果の悪いところ(想定したものより悪いところ)は、すぐに差し替える。
2. 異常値を発見して、原因を振り返る。
3. 単に ○○を見た人は△△を見たというルールではなく、ジャンルに注意する。
4. 流動したいコンテンツもコッソリ入れておく。
あらかじめ、1.~4.を念頭において、レコメンド実装段階で平行して効果検証用のプログラムを作っておくとスピーディに効果分析ができる。
さて、他記事にもレコメンドが実装されたわけだが、効果をみるとかなりgood。
フィジビリで想定したもの以上の効果だったのが嬉しい。
とはいえ、一時点の結果に一喜一憂するのではなく、導入が終了ではなく、導入がスタートとなるように分析を続けて行きたいものだ。
半角カナと全角カナの結合 ~成功編~ [確率・統計、データマイニング]
ファイル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


【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
半角カナと全角カナの結合 ~失敗編~ [確率・統計、データマイニング]
ファイル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"で結合させるとどんな結果になるか。

このように半角とか全角とか混同されて結合されてしまっている。
このあたりは予想通りというか、なんというか。。。
次に、"IBM SPSS Modeler(旧 Clementine)"を使って結合してみる。

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

この結果をみると、、、
まず、2行目の"ゼクシィ(ィは、半角カナ)"が勝手に"ゼクシィ(ィは、全角カナ)"に置換されています。
う~ん、勝手に半角カナを全角カナに変更しちゃっているし。。。
レコード2の部分もnullではなく、11って数字が入っています。
このように勝手に置換されてしまっては、その後どう処理してもダメです。
以上の結果から、いきなり結合ノードを使うのは、失敗!ってことになります。
少しトリッキーな処理になりますが、下記のようにすれば思った結合ができます。

続きは明日…
関連ブログ: 半角カナと全角カナの結合 ~成功編~
http://skellington.blog.so-net.ne.jp/2011-05-31


間違い探しのようになるが、
【ファイル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"で結合させるとどんな結果になるか。

このように半角とか全角とか混同されて結合されてしまっている。
このあたりは予想通りというか、なんというか。。。
次に、"IBM SPSS Modeler(旧 Clementine)"を使って結合してみる。

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

この結果をみると、、、
まず、2行目の"ゼクシィ(ィは、半角カナ)"が勝手に"ゼクシィ(ィは、全角カナ)"に置換されています。
う~ん、勝手に半角カナを全角カナに変更しちゃっているし。。。
レコード2の部分もnullではなく、11って数字が入っています。
このように勝手に置換されてしまっては、その後どう処理してもダメです。
以上の結果から、いきなり結合ノードを使うのは、失敗!ってことになります。
少しトリッキーな処理になりますが、下記のようにすれば思った結合ができます。

続きは明日…
関連ブログ: 半角カナと全角カナの結合 ~成功編~
http://skellington.blog.so-net.ne.jp/2011-05-31
IBM SPSS Modeler(旧Clementine)関数 "issubstring" の落とし穴 [確率・統計、データマイニング]
IBM SPSS Modeler(旧Clementine)の関数に
・issubstring(SUBDTRING, STRING)
・issubstring(SUBDTRING, N, STRING)
があります。
使い方として、文字列の中にあるキーワードが入っているかどうか?の調査に使います。
・issubstring(SUBDTRING, STRING)の使い方
例として、流入キーワードの中に "BCD" が含まれているかどうか?をチェックしたい。
issubstring("BCD", 流入キーワード)

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

そして、BCDは、2文字目からスタートするので、2となります。
それ以外は、0です。
条件抽出でそのキーワードが含まれているかどうか引っ張ってくる場合、
issubstring("BCD", 流入キーワード) > 0
と書いても良いですし、> 0 を書かなくて、
issubstring("BCD", 流入キーワード)
と書いても大丈夫です。
・issubstring(SUBDTRING, N, STRING)の使い方
例として、流入キーワードの中に "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を返してくれます。
・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を返してくれます。
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
さて、会社の同僚が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
大阪大学とのデータマイニングプロジェクト [確率・統計、データマイニング]
今日は、珍しく大阪に出張。
大阪大学の先生がデータマイニングに関する新技術を持っているってことなので、
うちのサイトのデータを使い色々分析をしてもらっていた。
こういう技術って、魔法の技術や打ち出の小槌ではないので、素敵なルールやら分析結果が簡単にたくさん出てくる!というものではない。
それに日ごろから色々分析やっていますしね。w
日ごろの分析で発見できなかったような、いくつかの施策に落とす可能性があるルールが1,2個でも発見できれば、それはOKなんだと思う。
そして、その発見されたルールをさらに、元のデータなどに立ち戻り、深く分析をしていくプロセスも大切だ。
大阪大学の先生がデータマイニングに関する新技術を持っているってことなので、
うちのサイトのデータを使い色々分析をしてもらっていた。
こういう技術って、魔法の技術や打ち出の小槌ではないので、素敵なルールやら分析結果が簡単にたくさん出てくる!というものではない。
それに日ごろから色々分析やっていますしね。w
日ごろの分析で発見できなかったような、いくつかの施策に落とす可能性があるルールが1,2個でも発見できれば、それはOKなんだと思う。
そして、その発見されたルールをさらに、元のデータなどに立ち戻り、深く分析をしていくプロセスも大切だ。
数理システム ユーザーコンファレンス 2010とミッキーマウスの誕生日 [確率・統計、データマイニング]
「数理システム ユーザーコンファレンス 2010」に行ってきました。
聴いたのは、
・ソネット、磯崎さんのアドネットワーク広告におけるオプティマイズ戦略
・生田目先生の小売業における顧客セグメンテーションとマーケティング戦略のための分析
・ALBERT、山川さんのVMStudioを利用したレコメンドロジック
です。
生田目先生が、
「今日は、ミッキーの誕生日。」
と言っていましたが、、、今日ではなく、昨日が誕生日。
11月18日が誕生日で、2010年は、なんと82回目(82歳)だったりします。
ミッキーってそんなにおじいちゃんだったんですねぇ。w
VMSも色々とバージョンアップをしているようで、次回のバージョンアップが楽しみだったりします。
聴いたのは、
・ソネット、磯崎さんのアドネットワーク広告におけるオプティマイズ戦略
・生田目先生の小売業における顧客セグメンテーションとマーケティング戦略のための分析
・ALBERT、山川さんのVMStudioを利用したレコメンドロジック
です。
生田目先生が、
「今日は、ミッキーの誕生日。」
と言っていましたが、、、今日ではなく、昨日が誕生日。
11月18日が誕生日で、2010年は、なんと82回目(82歳)だったりします。
ミッキーってそんなにおじいちゃんだったんですねぇ。w
VMSも色々とバージョンアップをしているようで、次回のバージョンアップが楽しみだったりします。
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は、対応していないらしい。
こちらも、次期バージョンに期待です。
実際に、読み込んでみると、文字化けを起こしてしまい読み込めなかった。。。
そこで、数理システムに問い合わせてみたところ、
・Unicodeサイン(BOM)がついているUTF-8ファイル
⇒ テキスト整形を使って文字コードを修正することが可能。
・Unicodeサイン(BOM)がついていないUTF-8ファイル
⇒ 未対応。
次期、バージョンで読み込みが可能。
現状は、手動で文字コードをシフトJISに変更するか、Unicodeサインをつける必要がある。
とのことでした。
システムとかから、一方的に吐き出されるファイルって、UnicodeサインがついていないUTF-8形式ってけっこうあったりするので、正直面倒だ。。。
ちなみに、VMStudioは、上記のようにすれば、UTF-8形式も読み込めますが、TMStudioは、対応していないらしい。
こちらも、次期バージョンに期待です。
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
日付別のファイルを処理するときに、スクリプトを使えば、こんなに簡単に書けます。

ストリーム自体は簡単ですが、その分手間として、スクリプトを書く必要がありますが。。。
繰り返し、毎月使うとかだと、スクリプトで書いておいた方が楽になるかと思います。
------------------------------------------------------------
# 初日の処理(ハコを作成する)
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
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日と実在しない日付になってしまうので、注意が必要です。
本当は、スクリプトを使うのが、一番楽だと思います。(´д`)
↓
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日と実在しない日付になってしまうので、注意が必要です。
本当は、スクリプトを使うのが、一番楽だと思います。(´д`)
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の場合)
絶対パスを使ってストリームを書いている場合は、逆に要りません。(^^;
色々なやり方があると思うので、下記のスクリプトは参考程度にしてください。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の場合)
絶対パスを使ってストリームを書いている場合は、逆に要りません。(^^;
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のスクリプトを書いたことがない人も多いかと思いますが、慣れると意外と便利です
続く・・・!(・∀・)
開発用と本番用の場所が違うって場合です。
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のスクリプトを書いたことがない人も多いかと思いますが、慣れると意外と便利です
続く・・・!(・∀・)
「SPSS ユーザーカンファレンス 2010」2日目 [確率・統計、データマイニング]
今日も朝から聞いていました。
その中で楽しみにしていたのが、SPSS西牧さんの『Modeler TIPs』です。
今回は、ロトシックスをネタにしていました。
前回ほどのキレがなかったのが残念ですた…(´д`)
ロトシックで24という数字があまり出ていないので、1万回くらい実行したらいずれは同じくらいになるから、そのうち24が出るだろう、、、というところからスタートしていました。
が、、、これは、よく陥る間違いで、、、
もう少し、簡単な事例で話をすると、コインの裏表を当てるゲームがあったとします。
10回コインを投げたとき、裏が8回、表が2回だったとします。
いかさまのコインでないとして、確率的に 裏、表の出る確率は、1/2 と仮定します。
理論的には、何回も何回もコインを投げていくと、それぞれ同じ回数に近づいていきます。
これは、正しい。
だからといって、10回投げた時点で、裏が8回多く出ちゃったから、そろそろ表を出すか!と神様が表を出しやすくしている、、、というわけではないです。
もう少し、数字を使ってあらわすと、
10回投げた時点:表2回、裏8回
⇒ 表の出る確率 0.2
1万回投げた時点:表4800回、裏5200回
⇒ 表の出る確率 0.48
と期待確率0.5に近づいています。
が!表と裏の差分を見てみると、
10回投げた時点:表2回、裏8回
⇒ 表と裏の差分は、6回
1万回投げた時点:表4800回、裏5200回
⇒ 表と裏の差分は、400回
となっています。
むしろ、差の方は、どんどん大きくなる傾向になっています。
「率」と「回数」の違いですね。
このあたりのことを面白く&分かりやすく書いている本が、『まただまされたな、ワトスン君』です。
読んでみると面白いですよ。
その中で楽しみにしていたのが、SPSS西牧さんの『Modeler TIPs』です。
今回は、ロトシックスをネタにしていました。
前回ほどのキレがなかったのが残念ですた…(´д`)
ロトシックで24という数字があまり出ていないので、1万回くらい実行したらいずれは同じくらいになるから、そのうち24が出るだろう、、、というところからスタートしていました。
が、、、これは、よく陥る間違いで、、、
もう少し、簡単な事例で話をすると、コインの裏表を当てるゲームがあったとします。
10回コインを投げたとき、裏が8回、表が2回だったとします。
いかさまのコインでないとして、確率的に 裏、表の出る確率は、1/2 と仮定します。
理論的には、何回も何回もコインを投げていくと、それぞれ同じ回数に近づいていきます。
これは、正しい。
だからといって、10回投げた時点で、裏が8回多く出ちゃったから、そろそろ表を出すか!と神様が表を出しやすくしている、、、というわけではないです。
もう少し、数字を使ってあらわすと、
10回投げた時点:表2回、裏8回
⇒ 表の出る確率 0.2
1万回投げた時点:表4800回、裏5200回
⇒ 表の出る確率 0.48
と期待確率0.5に近づいています。
が!表と裏の差分を見てみると、
10回投げた時点:表2回、裏8回
⇒ 表と裏の差分は、6回
1万回投げた時点:表4800回、裏5200回
⇒ 表と裏の差分は、400回
となっています。
むしろ、差の方は、どんどん大きくなる傾向になっています。
「率」と「回数」の違いですね。
このあたりのことを面白く&分かりやすく書いている本が、『まただまされたな、ワトスン君』です。
読んでみると面白いですよ。
SPSS ユーザーカンファレンス 2010 [確率・統計、データマイニング]
「SPSS ユーザーカンファレンス 2010」に行って来ました。
今日、聴いた講演は、↓です。
----------
A-1
マーケティング・サイエンスの基礎を学ぶ-推薦したい図書
首都大学東京
朝野 熙彦 氏
ロックオン中川さんの講演も聞きたかったが、今回は朝野先生の講演を聴くことにしました。
今度、新しい本を発売されるみたいで楽しみです。
----------
B-2
CCCポイント事業における分析取り組みのご紹介~顧客の見える化とデータ活用へのSTEP~
カルチュア・コンビニエンス・クラブ株式会社
曲沼 宏美 氏
----------
D-3
ステップアップ!顧客満足度調査~単純集計から卒業しよう~
多摩大学
酒井 麻衣子 氏
----------
C-4
製品開発に生かす消費者行動
慶應義塾大学
清水 聰 氏
内容も非常に参考になりましたが、清水先生の話し方が上手いですね。
なんだかあっという間に時間が過ぎてしまった感じです。
また、機会があれば聴いてみたいです。
----------
今日、聴いた講演は、↓です。
----------
A-1
マーケティング・サイエンスの基礎を学ぶ-推薦したい図書
首都大学東京
朝野 熙彦 氏
ロックオン中川さんの講演も聞きたかったが、今回は朝野先生の講演を聴くことにしました。
今度、新しい本を発売されるみたいで楽しみです。
----------
B-2
CCCポイント事業における分析取り組みのご紹介~顧客の見える化とデータ活用へのSTEP~
カルチュア・コンビニエンス・クラブ株式会社
曲沼 宏美 氏
----------
D-3
ステップアップ!顧客満足度調査~単純集計から卒業しよう~
多摩大学
酒井 麻衣子 氏
----------
C-4
製品開発に生かす消費者行動
慶應義塾大学
清水 聰 氏
内容も非常に参考になりましたが、清水先生の話し方が上手いですね。
なんだかあっという間に時間が過ぎてしまった感じです。
また、機会があれば聴いてみたいです。
----------
MITのキックオフと下期の分析計画 [確率・統計、データマイニング]
MITのキックオフと下期の分析計画
今日は、MITのキックオフがあった。
良くも悪くもITっぽいといえばITっぽいのだが、、、微妙に事業との感覚がズレている気がするんだよなぁ。。。
さて、、、これから3月に向けてどんな分析をやっていこうか、という分析計画のミーティングを行った。
色々やりたいことはあるのだが、当初考えていたモノ以外の分析の案件も後から大量に沸いてくるといえば沸いてくる。
本当は、ミッションに、分析のバッファなるものを書ければ良いのだが、書くわけにも行かず、とりあえず、100%で進んで、後から増えた分だけ、忙しくなる、、、という構造。
やらなければならない部分(やってもあまり評価に結びつかない部分)も少なくない。
いわゆるデータ整備とか。
現状、最後の施策の実行部分とか、目に見える部分が評価されやすいのだが、本当は、じみち~な努力をコツコツやり遂げた部分があって、初めて花開く事っていっぱいある。
特にデータ解析においては。
悲しいかな、こういった部分ってなかなか評価されにくい…
こういう部分もきちんと評価してもらえる制度があると良いんだけどねぇ。。。
今日は、MITのキックオフがあった。
良くも悪くもITっぽいといえばITっぽいのだが、、、微妙に事業との感覚がズレている気がするんだよなぁ。。。
さて、、、これから3月に向けてどんな分析をやっていこうか、という分析計画のミーティングを行った。
色々やりたいことはあるのだが、当初考えていたモノ以外の分析の案件も後から大量に沸いてくるといえば沸いてくる。
本当は、ミッションに、分析のバッファなるものを書ければ良いのだが、書くわけにも行かず、とりあえず、100%で進んで、後から増えた分だけ、忙しくなる、、、という構造。
やらなければならない部分(やってもあまり評価に結びつかない部分)も少なくない。
いわゆるデータ整備とか。
現状、最後の施策の実行部分とか、目に見える部分が評価されやすいのだが、本当は、じみち~な努力をコツコツやり遂げた部分があって、初めて花開く事っていっぱいある。
特にデータ解析においては。
悲しいかな、こういった部分ってなかなか評価されにくい…
こういう部分もきちんと評価してもらえる制度があると良いんだけどねぇ。。。
51期下期を終えて [確率・統計、データマイニング]
今日で、9月も終わり、上期が終了した。
分析も今日で一段落。
計算したら、4月から9月の6ヶ月で行った分析の数は24個。
1週間に1つの分析をしていた計算になる。
もちろん、分析の大小があって、何ヶ月もかかる分析もあれば、1日で終わる分析もある。
ただ、割と時間がかかる複雑な分析をいくつか平行してやっていたなぁという印象。
振り返ってみたら、もっとやりたかったことも色々あるのだが、ひとまずは、自分の分析結果に対しては、満足のいくものが残せたのでは?と思う。
明日から、下期が始まる。
10月の最初の方は、まだ分析のネタも決まっておらず、キックオフやら歓送迎会やらで、のんびりとスタートできそうだ。
この間に、データ解析コンペの中間発表用分析もやっておこう、、、と思う今日この頃。
分析も今日で一段落。
計算したら、4月から9月の6ヶ月で行った分析の数は24個。
1週間に1つの分析をしていた計算になる。
もちろん、分析の大小があって、何ヶ月もかかる分析もあれば、1日で終わる分析もある。
ただ、割と時間がかかる複雑な分析をいくつか平行してやっていたなぁという印象。
振り返ってみたら、もっとやりたかったことも色々あるのだが、ひとまずは、自分の分析結果に対しては、満足のいくものが残せたのでは?と思う。
明日から、下期が始まる。
10月の最初の方は、まだ分析のネタも決まっておらず、キックオフやら歓送迎会やらで、のんびりとスタートできそうだ。
この間に、データ解析コンペの中間発表用分析もやっておこう、、、と思う今日この頃。
パワーポイントを素敵に見せるツール [確率・統計、データマイニング]
最近、期末に向けて、分析結果を大量に生産している今日この頃。
分析工場みたいなもんですねぇ。。。
GMに素敵なツールを紹介してもらった。
パワーポイントやエクセルに作成できるツールです。
think-cell chart
https://www.think-cell.com/downloads
なんでも、マッキンゼーだったかのコンサル会社で作ったツールだとか。
それを外販しているらしいです。
作ったデータをどう見せるかってすっごく重要ですよね。
同じ結果なんだけど、グラフひとつでなんだか、すごそうなグラフに見えてしまいます。
見せ方のフレームなんかもあって、これだけで仕事をした気分になりました。w
※ 念のため、ここの回し者じゃないです。
分析工場みたいなもんですねぇ。。。
GMに素敵なツールを紹介してもらった。
パワーポイントやエクセルに作成できるツールです。
think-cell chart
https://www.think-cell.com/downloads
なんでも、マッキンゼーだったかのコンサル会社で作ったツールだとか。
それを外販しているらしいです。
作ったデータをどう見せるかってすっごく重要ですよね。
同じ結果なんだけど、グラフひとつでなんだか、すごそうなグラフに見えてしまいます。
見せ方のフレームなんかもあって、これだけで仕事をした気分になりました。w
※ 念のため、ここの回し者じゃないです。
春のいずみ [確率・統計、データマイニング]
データ解析コンペのデータが届いた。
といっても、ちょうど期末なので、分析する余裕もなく、実際の分析を始めるのは10月頭くらいからになりそうです。
今回、チーム名を少し変えました。
「春のいずみ」です。
由来としては、、、
見る人がみたらわかるというw
さて、どういう構想で分析をしていこうかなぁ。。。
といっても、ちょうど期末なので、分析する余裕もなく、実際の分析を始めるのは10月頭くらいからになりそうです。
今回、チーム名を少し変えました。
「春のいずみ」です。
由来としては、、、
見る人がみたらわかるというw
さて、どういう構想で分析をしていこうかなぁ。。。













