2014年11月18日

IBM SPSS Modeler - Essentials for R for Windowsのインストール

SPSS Modeler上でRを動かしてみようってことで、IBM SPSS Modeler - Essentials for R for Windowsをインストールしました。

IBM SPSS Modeler - Essentials for R for Windows
http://www.ibm.com/developerworks/spssdevcentral
からダウンロードできます。

その際に、"pasw.rstats"拡張がインストールされているフォルダーのパスを求められます。
SPSS Modeler15だと、"pasw.rstats"は存在しません。
IBM SPSS Analytic Serverが必要みたいです

SPSS Modeler 16からはインストール時に自動で"pasw.rstats"作られます。

データ処理の例として、与えられた日に1日追加するコードがあったので、試しに実行して正常に動くことを確認。

サンプルストリーム


ユーザ入力ノード


R変換ノード


ということで、とりあえず、動くことが確認できました。

入力した、シンタックスは、こちら。
******************************************************
day<-as.Date(modelerData$dob, format="%Y-%m-%d")
next_day<-day + 1
modelerData<-cbind(modelerData,next_day)
var1<-c(fieldName="Next day",fieldLabel="",fieldStorage="date",fieldMeasure="",fieldFormat="",
fieldRole="")
modelerDataModel<-data.frame(modelerDataModel,var1)
******************************************************

コンソール出力をみると、こんな感じになっていました。
*****************R Scripts****************************
while(ibmspsscfdata.HasMoreData()){
modelerDataModel <- ibmspsscfdatamodel.GetDataModel()
modelerData <- ibmspsscfdata.GetData(rowCount=1000,missing=NA,rDate="POSIXct",logicalFields=FALSE)
day<-as.Date(modelerData$dob, format="%Y-%m-%d")
next_day<-day + 1
modelerData<-cbind(modelerData,next_day)
var1<-c(fieldName="Next day",fieldLabel="",fieldStorage="date",fieldMeasure="",fieldFormat="",
fieldRole="")
modelerDataModel<-data.frame(modelerDataModel,var1)
ibmspsscfdatamodel.SetDataModel(modelerDataModel)
ibmspsscfdata.SetData(modelerData)
}******************************************************

2014年11月08日

データサイエンスフェスティバル、最終プレゼンテーション

データサイエンスフェスティバルの最終プレゼンテーションを見てきました。
1位と4位が数理計画を使った事例で、2位、3位、5位がかなりシンプルなロジックでした。

かなりシンプルなロジックでもそこそこの精度が出るんだ、って感想です。

ただ、共通していたことは、どこが精度向上のブレイクポイントなのかをしっかりと見切っていたってことです。
今回のゲームの構造を把握し、どこに着目すべきかどうかを発見することって、なかなか気が付きにくいポイントですが、そこが上位のチームとの境だったのかもしれません。

来年度は、もう少し時間をかけれるようにしたいです。
(出る機会があれば、ですが…)

最終順位は11位でした。(^^;

2014年10月23日

IBM SPSS Modelerの引用符の罠

引用符(ダブルクォーテーションとシングルクォーテーション)の罠

他人が作ったストリームを見ていて、一見気が付かなかったのだが、
「あ、なるほど!(・∀・)」
と思った罠がありました。

(例)
変数でテストグループと通常グループを作りたい。
変数名は、【テストグループ】とする。

本来なら、変数名と中身は変えるべきで、
変数名:グループ
変数の中身:{テストグループ, 通常グループ}



奇数 ⇒ テストグループ
偶数 ⇒ 通常グループ

【正しい書き方】
if index rem 2 = 1 then "テストグループ"
else "通常グループ" endif



【変な書き方】
if index rem 2 = 1 then "テストグループ"
else "通常グループ" endif



ちなみに、

if index rem 2 = 0 then 'テストグループ'
else '通常グループ' endif

とすると、



本来、フィールドの中身は、ダブルクォーテーション " " でくくり、
他のフィールドの中身を持ってくるときは、シングルクォーテーション' 'でくくる

今回、何が起こっていたか考えてみると、
1行目を実行した時、変数'テストグループ'の中身を持ってきなさいとなるが、自分自身なため、空白になる。

2行目を実行した時、変数'通常グループ'の中身を持ってきなさいとなるが、その様な変数はない。
そのため、文字列を入力すると、判断し、"通常グループ"という文字列が入る。

2行目を実行した時、変数'テストグループ'の中身を持ってきなさいとなり、今入っている値は"通常グループ"なため、"通常グループ"という文字列が入る。

ちなみに、テキストで処理をしているので、上記のような値になるのだが、
これをNetezzaデータベースで処理した場合、SPSS Modeler自身が強制終了になってしまうので、注意が必要です。。。

2014年10月14日

DATA SCIENCE FESTIVAL RECOMMEND CONTEST

DATA SCIENCE FESTIVAL RECOMMEND CONTEST
https://lpc.zozo.jp/recontest/

賞金100万円のデータ解析コンペ

50位以内に入っても、「ZOZOTOWNギフトカード5万円分」がもらえます。

すっかり忘れていて、締め切りの3日前から始めたのですが、1日ごとに大幅に精度が上がっていきました。

う〜ん、もうちょっと早くやっていれば、、、と夏休みの宿題気分ですが、実際、8月〜9月って通常の業務と育児が忙しくて、現実的に難しかったですが…

こういう分析って楽しいので、また、参加したいです。

2014年10月06日

SIGKDDの略

SIGKDDから手紙が届いたのだが、そこに正式な(?)名称が書かれていた。

SIGAda: Special Interest Group on Ada Programming Language
SIGCOMM: Special Interest Group on Data Communication
SIGDOC: Special Interest Group on Design of Communication
SIGKDD: Special Interest Group on Knowledge Discovery in Data
SIGMM: Special Interest Group on Multimedia
SIGMOBILE: Special Interest Group on Mobility of Systems, Users, Data, and Computing
SIGSAC: Special Interest Group on Audit, and Control
SIGSAM: Special Interest Group on Symbolic and Algebraic Manipulation

2014年09月14日

IBM XCITE Autumn 2014

IBM XCITE Autumn 2014に行ってきました。
https://ibm-xcite.jp/

「クラウド」、「モバイル」の発表が増えてきているように感じました。

また、先日のKDD 2014@NYと、今回のIBMの発表ってかなりの温度差があるなって思いました。
コンピューターサイエンス(機械学習)の技術を、どうマーケティング(ビジネス)の分析につなげているのか。

そこには、大きな壁があって、そのままでは適用できないし、中途半端な気持ちで取り組んでも失敗しそうです。

この橋渡し的な部分をどう考えていくのか、実際に使う側の企業が色々と考えていく必要がありそうですね。

2014年08月19日

KDD2014@ニューヨーク

東京に戻ってきました。

今年もKDDの方に行って来ます。

KDD 2014, 8/24-27, New York: Data Mining for Social Good
http://www.kdd.org/kdd2014/

今年はニューヨーク。
去年はシカゴで、会場がめちゃくちゃ寒かったので、今年も防寒着はしっかりと持って行った方が良さそうです。

なるべく多くの事例を持ち帰りたいです。

2014年08月08日

平成26年度 データ解析コンペティション 発会式

平成26年度のデータ解析コンペティション、発会式がありました。

今年度の特徴は、学生部門と一般部門の分けがなくなったところ。

もう一つは、今年度もデータ提供は2件。
ひとつは全日本食品株式会社で、もう一つは株式会社良品計画のデータでした。

無印良品のデータはサンプルデータではなく、全件データなので、非常にデータ量が膨大です。

個人的にはこちらの方が興味があるのですが、今年は、もろもろ忙しい年なので、参加できそうにないかな、というのが本音だったりします。

来年度以降で面白そうなデータが出てきたら、また、復活しようかと思います。

2014年07月16日

SPSS Modeler、文字列で入っている日付データを変換する方法

データベースに日付データを格納するときに、日付データとして入れている場合は良いのですが、文字列としてデータベースに入れている場合もあるかと思います。

そして、IBM SPSS Modeler(クレメンタイン)で日付として処理をしたい場合、
例えば、date_days_differrenceなどの関数を使いたい場合、
一度、日付に置換する必要があります。

Invalid Date. というエラーが出る場合がありますが、その際、インプットノードをSQLで書くことで解決できます。

例えば、hogehogeという変数を日付に変えて取得したい場合、
・TO_DATE(hogehoge,'YYYYMMDD') AS "hogehoge"
・DATE(hogehoge) AS "hogehoge"
と書けば、日付に置換できます。

2014年07月15日

ビッグデータと倫理

ビクター・マイヤー氏は、big dataの特徴を
1. more
2. messy
3. correlation
ととらえています。

theory → generate hypothes → data

色の専門家が、この色が良いと考えるより、ABテストをしてみた方が効果が良かった、ということがあります。

Why はわかりませんが、What はデータからわかるということ。

● カナダのトロント大学の事例
未熟児に対して big data を使った紹介がありました。

重度の未熟児に対して、何かの予兆が現れた時は既に手遅れになっている場合が多いです。

そこで、赤ちゃんに色々なセンサーをつけ、さまざまなデータをリアルタイムで取得していきます。

そして、他の赤ちゃんとの傾向を比べた時に、今どういう状態なのかを適切に判断していこうという事例でした。

● 新しいビジネス
何気なく持っていたデータが既存のビジネスと違う新たなビジネスを生む場合があります。
例えば、全国に数多くの基地局を持っていれば、それが天気予測のシステムサービスを始めるきっかけになります。

携帯会社や飛行機会社が天気予報のサービスを始める可能性があり、big dataは、新たな価値を生む一方で、全く考えもしなかった新たな競合を生むきっかけにもなります。

● ethics
target(アメリカのディスカウントストア)は、big dataを使うことで、顧客が妊娠したかどうかを判別することができるみたいです。

しかも、本人がそれを認識する以前に妊娠したかどうかが分かるようになったとか。
つまり、ちょっとした食べ物の傾向や購買パターンの変化で予測ができるとのこと。

それが、どのくらいの精度なのか分かりませんが、そこまで出来るようになると、ちょっと気持ち悪いというか、big dataを使う立場としての倫理上の問題も合わせて考えていく必要があります。

マイノリティ・リポートという作品がありましたが、なんだか遠くない未来にそんな世界が来るのかもしれません。


マイノリティ・リポート [Blu-ray]

マイノリティ・リポート [Blu-ray]

  • 出版社/メーカー: 20世紀フォックス・ホーム・エンターテイメント・ジャパン
  • メディア: Blu-ray




マイノリティ・リポート 特別編 [DVD]

マイノリティ・リポート 特別編 [DVD]

  • 出版社/メーカー: 20世紀フォックス・ホーム・エンターテイメント・ジャパン
  • メディア: DVD


2014年07月14日

ビッグデータの正体 情報の産業革命が世界のすべてを変える

ビクター・マイヤー=ショーンベルガー(Viktor Mayer-Schönberger)氏が書いた本。

ビッグデータの正体 情報の産業革命が世界のすべてを変える

ビッグデータの正体 情報の産業革命が世界のすべてを変える

  • 作者: ビクター・マイヤー=ショーンベルガー
  • 出版社/メーカー: 講談社
  • 発売日: 2013/05/21
  • メディア: 単行本



彼の書いた本を読んだことはありませんが、、、たまたま講演を聞くことが出来ました。

いくつか面白かったポイントを自分なりにまとめなおしました。

● Google、インフルエンザの予測
政府の統計レポートだと、予測レポートが出てくるまでにかなりの時間を要します。
しかし、Gooleに検索するキーワードの情報から、かなりの精度でインフルエンザがどれくらい流行するかを予測できる。
しかも、リアルタイムで。

しかし、Googleも2012年に大きく予測を外してしまう。
「過去に作ったモデルの更新を怠った」というのが主な原因らしい。

本来は、インフルエンザにかかった人、かかった可能性が高い人が検索をするのだが、
テレビでインフルエンザの特集をしたために、全然インフルエンザと関係ない人もそのキーワードを入力し、かなり高めの予測を出してしまった、ということだった。

後は、豚インフルエンザ(新型インフルエンザ)の時も精度が悪くなっている。

ここで重要なのは、キーワードとインフルエンザ流行の相関はあるが、それが原因ではないということだ。
人がキーワードを入力するとインフルエンザにかかるわけではない。

あくまでもインフルエンザに関するキーワードの入力数とインフルエンザの流行に相関があるというだけである。

● Farecast.com
飛行機のチケットの価格が上がるか下がるかを予測するサイト。
マイクロソフトは、$115M(約120億円)で買収した。

Oren Etzioniは、航空機チケットのサイトをマイクロソフトに売却した後は、Decide.com(ショッピングアドバイスサイト)を作り、こちらは、e-bay(オークションサイト)に売却した。

飛行機のチケット価格を予測するだけでなく、今、買うべきかそうでないかを教えてくれるのが良い。
ちなみに、このプロジェクトの名前は、Hamletらしい。
ハムレットに出てくる有名なセリフとして、"to be or not to be that is the question"があります。

これを文字って、
"to buy or not to buy that is the question"

Farecast.comは、マイクロソフトが購入しました。

一方、Googleは、そこで、Googleは、旅行システムを買収し、大量のトランザクションデータを手に入れました。

つまり、アルゴリズムよりもデータが大切だと考えたわけです。

2014年06月22日

KDD 2014に申し込み

KDD 2014に申し込みをしました。

KDD 2014 8月24日〜8月27日
http://www.kdd.org/kdd2014/

今年の開催地はニューヨークで、会場は Sheraton New York Times Square Hotel になります。

最初、ホテルの金額が高かったので、予算の都合上、会場とは別のホテルに宿泊予定でした…
旅行会社から送られてきたホテルを見ると、それはもうかなり微妙すぎるホテルだったのですが、KDD 2014に申し込んだ人限定で、格安に取ることができました。

ちなみに、航空会社は、日系のJALでした。
サービス面の質を考えると、JALかANAが安心です♪

2014年06月10日

ファイルに誤ったデータ型があります。

IBM SPSS Modeler(旧称クレメンタイン)でバッチ処理を行っている時に、
"ファイルに誤ったデータ型があります。"
というエラーメッセージが出ました。

色々試して分かったことをまとめると

・ローカルモードだと発生しない
・サーバに接続してのバッチモードも発生しない
・サーバにストリームを置いて、バッチ実行すると発生する

・Modelerのバージョンによって、発生したり、しなかったり。

・カラムを作る際に、型指定(名義型)すると発生。
⇒ "デフォルト"の型に変更すると発生しなかった。

かなり細かい条件で発生したり、発生しなかったりのバグっぽい。

2014年05月20日

KDD cup 2014 が始まる。

KDD Cup 2014 - Predicting Excitement at DonorsChoose.org
https://www.kaggle.com/c/kdd-cup-2014-predicting-excitement-at-donors-choose

ようやく内容が出てきましたね。

今回は寄付の支援がテーマとなっています。

締め切りは、7月8日、7月15日となっており、比較的ゆとりがあります。

どこまで分析に時間が割けるかわかりませんが、楽しみながら分析していきたいものです。

2014年04月25日

IBM SPSS Modeler 16、ログファイルの設定

IBM SPSS Modeler 16(旧称クレメンタイン)をインストールしました。

いつもの options.cfg の設定をいじっていたら、
log_directory, ""
がない!

調べていたら、バージョン16から新しいログエンジンを使っているとか。

How to set the log directory for IBM SPSS Modeler 16.
http://www-01.ibm.com/support/docview.wss?uid=swg21660846

では、今まで通りにするにはどうすれば良いのか?

まず、下記フォルダに移動します。
{Modeler 16 がインストールされているフォルダ}\SPSS\Modeler\16.0\config\

設定をいじるのは、下記の二つのファイル
・log4cxx.properties
・log4j.properties

仮に D:\Clem\ 配下にログを書き込む場合
・log4cxx.propertiesの設定
log4j.appender.LoggingAppender.File=${ALLUSERSPROFILE}/IBM/SPSS/Modeler/16/log/server_logging.log
⇒ D:/Clem/server_logging.log

・log4j.propertiesの設定
log4j.appender.LoggingAppender.File=${ALLUSERSPROFILE}/IBM/SPSS/Modeler/16/log/client_logging.log
⇒ D:/Clem/client_logging.log

と書きかえれば動くはずです。

ちなみに、デフォルトのログの場所は、Windows 7の場合は、
C:\Documents and Settings\All Users\IBM\SPSS\Modeler\16\log\
に置かれているかと思います。

設定をいじった後は、不要なログファイルは削除しておきましょう。

2014年04月03日

ストリームとセッションパラメータの設定

IBM SPSS Modeler(旧称Clementine)で最近知った素敵な機能があります。



ストリームパラメータとセッションパラメータの二種類あるのですが、基本的には同じ使い方ができます。

スクリプトを利用して、

# パラメータの設定
set 条件抽出_A.condition="index >= '$P-パラメータ'"

条件抽出ノードを中身を変えることもできますが、ストリームパラメータやセッションパラメータを利用すると、GUIを利用して、プログラムが苦手な人もお手軽に値を修正することができます。

ストリームパラメータの設定方法
ツール> ストリームのプロパティ> パラメータ

セッションパラメータの設定方法
ツール> セッションパラメータの設定



【プロンプト?】にチェックを入れておくと、ストリームを実行する際にパラメータを入力する画面が出てきます。



また、データ型に値を設定することで、パラメータ値の上限と下限を入力することもが出来ます。



変な値を入力すれば、エラーメッセージを出すことが可能です。



ただ、エラーメッセージだけなので、[OK]ボタンを押すと、範囲外のパラメータでも実行することができてしまいますが。。。

このパラメータをうまく埋め込んでしまえば、SPSS Modeler(クレメンタイン)初心者でも対話型で集計/分析することが可能になりますね。

2014年03月27日

データ解析コンペ 2014 成果報告会

今年は、データが二つ提供されたのと、課題編、フリー編と2種類のエントリーがあり、さらに、学生と一般(社会人)と別れていたので、相当な発表時間がありました。

朝から夕方まで、かなりの長丁場でした。

参考にできる分析は、自分で取り込み、使えるようにしたいものです。

2014年03月10日

NYSOL「にそる」

粒子化技術が拓くマイニングの新しい未来@国立情報学研究所に行ってきました。
講演は、約4時間半とけっこうなボリュームでした。

その中で紹介された大規模データの解析に関するソフトウェア。

「にそる」
http://www.nysol.jp/

大学やプロジェクトでの研究成果をソフトウェアとして提供しているみたいです。

こういうのは、ありがたいです。

2014年03月04日

データ解析コンペ、課題編の結果発表

今日は、課題編の報告会があります。
発表用の資料を作成していて、作ったモデルを見直していたのですが、大きなミスに気が付きました。

重要な特徴量が入っていない…!

作ったものの、選択ミスで入れ忘れていたようです。
影響が少ないどうでも良い変数だったら、良かったのですが、けっこう重要な変数なので、ほぼ絶望的。。。

結果は、県外となりました。

今回は、大小大きなミスをしていたな、、、って反省です。

忙しくバタバタしながらの分析だったといえば、それまでなのですが、
時間がない中でも、良いスコアを出すのが自分のポリシーなので、素直に反省です。

また、今年もありますし、KDD CUPの方ももうすぐはじまります。

この悔しさを次にぶつけていきたいと思います…(;_;)

2014年02月22日

データ解析コンペのスコア提出

無事、データ解析コンペのスコアを提出しました。
ここ1週間は、ほとんど寝ていない状態&寝ていても頭の中で常に考えている状態でした。

なんか吐血しそうな気もしましたが、無事に終わって何よりです。

こういうのって、実際に手を動かしてみて分かることって多い気がします。
時間という大きな制約の中で、どう最大限の利得を得るために、何をすべきか。
そして、何をしないべきか。

この何をしないべきか、って視点がすごく重要だった気がします。

Aの部分ってまともに計算したら1日かかるけど、95%の精度で良かったら1時間で終わる。
まず、それを見積もることが大切ですし、全体の中で何を取捨選択していくのかを、分析の都度変わっていく状況の中でどう決断していくのか。

分析しているときは、常に緊張した状態が続いていましたが、終わってみれば、晴れやかな気分です。

また、次回も機会があれば出てみたいものです。