2017/06/01

ぼくがSPSS Modeler + Pythonを愛する理由

今年の正月に、抱負として「発信!」と宣言しながらも、ブログの管理画面を開くことのできぬままはや半年が過ぎ去ろうとしています。優秀な仲間を集めるにはブログを書くのが一番だとわかりつつも、筆が重いのです。そして人材系の会社の方からの各種督促メールも溜まっていくのです。人材募集については次のエントリーで書きます。宣言!

そんな中、ちょっとおもしろいネタがあったので、特にオチはないけどリハビリがてら筆を執ってみた次第。どんな文体で書いてたかも忘れてしもうた。

時は2017年、世は「人工知能(AI)」「機械学習(マシンラーニング)」が栄華の極みを迎えております。ほんの少し前までは「データサイエンティスト」「ビッグデータ」だったわけでございますが、きぃわぁどはいつの世も盛者必衰の理をあらわしもうす。まぁキーワードは勝手にやってくれという感じで、言葉の定義を議論するのとか、本当に森友加計ですね。重要なのは、環境の劇的な進化です。
  1. 計算場所がローカルCSV→DB→DWH→クラウドDBに変わって、劇的に早い・安い・旨い、の世界に。
  2. ちまちま個別に教科書を読ませて(理解させて)学習させる時代から、ディープラーニングに代表されるような、問題集と回答集だけをぜんぶ読ませて学習させる手法が、現実的に動かせるようになってきたこと。
  3. いろんなデータが取得され、クラウド上のストレージに事実上無限に蓄積できるようになってきたこと。(1.とかぶる)
  4. ...もうやめておこう
そんな中、興味深い記事が上がりました。まずご一読ください。個人的には分析をする「やり方」が最も重要だと思ってまして、そこを丁寧に解説されています。キーワードじゃなくて。
R, Python, SAS, SPSSをヨーロッパのデータサイエンティストの視点で比べてみた
http://qiita.com/KanNishida/items/3308de6cdea98d89edc7
私は最近はPythonを触ってる時間がたぶん一番長いんですが、実はデータ分析はほとんどSPSS Modelerでやってます。注意したいのは、この記事で言う「SPSS」とは「SPSS Statistics」(以後、Stats)のことであって、私が使っているのは「SPSS Modeler」(以後、Modeler)。Statsの方は分析始めた頃使ってたんだけどExcelのオバケのようなもので、Modelerはデータ分析のキャンバスのようなものなので、実はぜんぜん違う。
今回は特にプログラミング言語にフォーカスした比較ですので、SAS Enterprise Miner または SPSS ModelerのようなUIは今回の比較リストからは外してます。
と前置きがあるのだけれど、分析ツールにとってUIというものが非常に重要というのが昔からの持論。なので、この記事ではまるっと抜けているUser Interfaceとしてどう分析環境を構築するのが良いかというのが今回のエントリーの本題(ということにした)。近年のModeler (+Modeler Server)はもはやUIだけであって、アルゴリズムや計算はほとんどDB側で行うことが想定されてる、と思う。いわば、ガワ。

今、うちの会社で落ち着いている形式はこんな感じ。
  1. Pythonでデータを取得、軽く整形
  2. ストレージ(Amazon S3)に格納
  3. DWH(Amazon Redshift)に転送
  4. SPSS ModelerのUIで分析の流れを作る
  5. SPSS Modelerを実行すると、自動生成されたSQLがRedshiftに投げられ、最小限のデータだけがローカルに転送される
  6. モデリング or スコアリング
  7. 出力された値を本番システムに渡す
イマドキなのは6, 7の部分はクラウド側でやると思うけど。ModelerからもPythonやコマンドを叩けるので、できるといえばできる。あと、最近はAmazon Kinesis, Lambdaとか使って1-3をストリーミングへ移行中。本題とずれてきたので簡潔に言えば、分析はR, Python, SAS, SPSS (Stats)という選択肢だけじゃなく、SPSS Modeler + Pythonは便利だよ!ということでした。

さて。ディープラーニング的な世界になっても、やはり変わらぬのは変数職人だと思うのです。老害と呼べばいいさ。こんなニュースもありました。
ソフトバンク、新卒採用にAIを活用 エントリーシートの評価を補助

このテーマは有効としか思えないですね。膨大な数の中の候補から、ある程度の候補に絞り込む、しかも効きそうな変数も明確。現時点では自由記述欄の評価だけみたいですが。

精度を上げるためには、全項目を突っ込むのは必須。ただ、たとえば自社の若手総合職従業員数千人の評価付きデータから大学>学部だけをAIと呼ぶものに突っ込んでも、スッカスカで効かないはずなので、その学部の偏差値データと突き合わせると効くようになるはずです。ただ、大学>学部名の自由記述と予備校から仕入れた偏差値データの大学>学部名のマスタは完全一致しないので、表記ゆれを解消したり、欠損を推測したりする必要がでてくる。個人的には、こうした手間を勝手にやってくれる「AI」の方がありがたい。データサイエンティストのアシスタントとでも言うべきか。「これは大学>学部データだから、この偏差値データと結合してくれ」と言わなくても勝手にやっておいてくれる、優秀なアシスタント。「理工学部情報工学科」と「工学部情報学科」を同じとみなしてくれるアシスタント。バラバラなフォーマットの履歴書をスキャンしたら、
{
  "univercity": {
    "name": "渋谷大学",
    "id": "123",
    "department": {
      "name": "情報学部",
      "dept_id": 3
    }
  }
}
というJSONを作ってくれるアシスタント。正規化とデータ種別自動判別と自動結合。あとは無限のコンピュータリソースに膨大な変数ごと投げちゃえば、きっと計算してくれる。

人工知能(AI)バブルが日に日に大きくなっているのだけれど、SFじゃないので、機械への教え方が変わったくらいの認識に留めておくほうが良いのではないかと思う今日このごろ。

以前はもう少し文章まともに書けた気がするのだけれど、今日のリハビリはこれまで。
さて、AWS Summitへでかけよう。



2015/11/30

会社設立から一年が経ちました

明日12月1日で、会社の営業開始から一年が経ちます。あまりにも目まぐるしい日々で、3年くらいは経っているような感覚。アニバーサリーでもないとブログを永遠に書けない気がするので、勢いでポスト。

10年間のサラリーマン生活と会社経営で最も違うなと感じたのは、キャッシュフローへの意識。どうしてもサラリーマンの頃はP/Lしか見ないので、会社の口座にいくら残っているかなんて気にも留めてなかった。会社経営は、資本金という元手を握りしめて出る冒険の旅。営利が出ていても、うちみたいにソフトウェアの固定資産が大きい場合、キャッシュが先に出て行くのにP/L上の利益は残って法人税に殺意を抱くことになる。(ちなみに分析環境としてIBMのSPSS Modeler Client & Server、Tableau、ArcGISなどを購入。Redshift、S3やEC2などのクラウド系は資産にならないのはGood。)

ただここらへんは、オープンソースでなんでも作れるプログラマ系のヒトには無い苦悩かもしれない。世の中には無償のツールがごろごろ転がっているから。そんな商用ソフトウェアに相変わらずロックインされている私ですけれど、「研究所所長」なる肩書きの頃よりも「社長」の今のほうがはるかにプログラミングスキルは高まってしまった。そう、サラリーマン時代は大企業化に伴って分業化が進み、スキルの領域が狭くなっていたことに改めて気付かされた。これがもう一つの起業してからの大きな変化。今は自分でやらざるを得ない領域が多くなった分、いろんなことを勉強するためにケツに火がつく。毎日のように契約書を読んでいると、契約書の文字列をフローチャートやベン図に脳内変換できるように徐々になってきたり。

事業については、当初から構想していた事業をもうすぐ開始できそうな運び。ここまで一年かかってしまったけれど、ここからが本当のスタートです。冒険の仲間、絶賛募集中です。

2014/12/31

2014年の振り返り

過去何年も、年末には一年の振り返りブログを書いてきたので、今年も一応。

何はともあれ2014年、起業しました。用意周到に準備はしていたとはいえ、心配事のすべては杞憂に終わりました。むしろ、あまりにもすべてが想定通りすぎて、拍子抜け感。お陰様でもろもろ順調でございます。ただ、想像以上にやることが多いので、自分が本当に時間を費やすべきことだけを選択していかないと回らんなぁというのはひしひしと感じており、来年のテーマは仕事をどう外出しするかということかなと思う今日この頃です。

2014年の位置情報はまだ胎動といった感じでしたが、2015年は日本にマーケットを誕生させるべく、刺激を与えて行く所存です。


2014/12/19

IBMの人工知能Watsonを触ってみた

IBM Watson Analyticsベータ版をビジネス向けに提供開始 - Japan

IBMがゴリ押し中の所属タレント、Watson君が昨日からパブリックベータになったので、さっそく試してみました。WatsonはIBMの作った人工知能で、米国のクイズ番組でクイズ王を倒したという実績があり、今回リリースされた"Watson Analytics"は、データ分析などをやるブランドとのこと。世界のミッキー同様、クイズのWatson君とAnalyticsのWatson君は中身は別人だと思われます。ちなみにWatsonという名前はIBMの創設者の名前らしく、気合が伝わってまいります。

お金の無いスタートアップにとって 、イニシャルコストの必要ないクラウドサービスは大変有難いのですが、このWatson Analytics、機能制限はあるものの基本は無料で使えます。機能としては、データをどんどん深堀りしていく探索的BI機能(Explore)と、データマイニングの機能(Prediction)、ダッシュボード的BI機能(View)があって、ブラウザで使えるお手軽BI+データマイニングツールと考えて良さそう。

試しにSSPのアドネットワーク別レポートを突っ込んでみました。まず出てきたのがこちら。
start

「広告タイプ別の月次売上は?」とか「CTRとCPCの関係を月次で?」みたいな提案があります。つまり、SSPからダウンロードしたExcelレポートをアップロードしただけで、Dateの列は日付であることを認識して提案してくれてます。

Watson君からの提案は、とんでもないものが多々。新卒社員ばりの天然っぷり。ただ、訳の分からない提案をされると、「うん?」と思考する時間があって、今まで自分の常識の範疇では絶対にありえない分析とかをやってみようかという発想が出てくることがある。セレンディピティとでも言いましょうか。機械には人間の常識は通用しません。データ分析しろと上司に言われて呆然とディスプレイを眺めている人には良いかも。長年同じ分析をやっている人にとっても、ヒントを与えてくれるという意味では面白そう。現時点では、あんまり使い物になってないけど、今後、クラウド側にカラム名やデータ傾向が蓄積されて、業界用語と関係性をWatson君が理解できるようになったら、まさにイノベーション。BIで一番めんどくさいのが、事前にデータを定義することなので。

adnets
 提案のままだとダメなので、いろいろと組み替えるとこんな感じ。アドネットワーク別のインプレッション比率。これをある程度インタラクティブにいじくることができる。ただ、他のBIツールと比べてまだまだ感は否めない。

今度はデータマイニング機能。町丁目別の人口増減率を説明するモデルを作ってみた。ちなみに、適当に突っ込んだデータなので、結果には何の意味もありません。
predictどの変数が効いているのかが出てきて、一般的なデータマイニングツールよりは普通のビジネスユーザーにもなんとなく理解しやすいかも。ただ、一定のデータマイニング知識は必要だし、知識がない上で触ると誤った答えを導くので、ビジネスユーザーに使ってもらう製品と考えると難しいところ。なお、Watson Analyticsはまだ日本語に対応していないため文字化けしてます。

predict_field入力変数ごとに目的変数との相関が出てきたり、グラフも値に合わせて出してくれたり。

 ざっくり使ってみた感触としては、まだお金を取れるレベルではない感じだけど(ベータ版だし)、分析を分析屋だけに留めず、ビジネスのフロントの人間に直接触って欲しいんだというメッセージはひしひしと感じます。

既存のIBMのデータマイニングソフトウェアであるSPSS Modelerや、BIのCognosには到底及ばないのだけれど、今後データをクラウドで集中管理し、クラウド側がデータの意味を理解できるようになってくると、本当の人工知能として、BIやデータマイニングツールのカイゼンとは隔絶したイノベーションの可能性は垣間見える、そんな気がします。
  • 私のMac環境では、Safariでファイルのアップロードでエラーが発生しましたが、Firefoxを使用することで回避出来ました。
  • WebからダウンロードするレポートなどであるExcel用CSVをアップロードする際にエラーが発生しますが、一旦Excelで開き、フォーマットをExcelブックにして再保存することで回避出来ました。


2014/12/01

株式会社ジオロジックを設立しました

位置情報ベンチャー『株式会社ジオロジック』を設立し、本日から営業開始しました。

geologic_logo_3d_white_317x100

Geography《地理学》 + Logic《論理》 = GeoLogic
位置情報にインテリジェンスを。

これまで培ってきた「アドテクノロジー」「データ分析」の技術に加え、「位置情報」が新たに加わります。

「なぜ位置情報?」

よく聞かれます。これまでの位置情報にまつわる数々の失敗事業の歴史はもちろん知っています。今の位置情報広告の市場規模は、ほぼゼロです。でも、今はまさに位置情報がビッグバンを起こす瞬間だと思ったんです。そろそろ、今まで出たくて出たくてうずうずしていた位置情報データたちが飛び出してくる頃合いです。スマホはもちろんのこと、今IoTやO2Oと呼ばれているもののほとんどは位置情報と密接に関わった領域です。にも関わらず、地理情報業界(GIS業界)のマーケティング方面への動きは活発にはなっていません。アドテクやビッグデータ分析などが勃興してきた頃に、マーケティングリサーチ業界が動かなかったあの頃のデジャブを感じています。

今までのオーディエンスターゲティングは、Web閲覧履歴(URL)を基にユーザーの興味関心・デモグラなどを推測するものでした。これからは、そこに位置情報データが加わります。URLと緯度経度は同じようなもの。そもそもドメインというものは、IPアドレスの数字を人間に読みやすく変換してるだけ。たとえば、http://54.65.75.112とブラウザに打ち込んでも、http://www.geologic.co.jpと同じページが開きます。GeoLogicではその逆に、緯度経度の数字を人間にわかりやすく変換するだけでなく、同時にマーケティング情報を付与したいなと。Webの世界では[IP:11.11.11.11→realestate.jp→不動産サイト]と分析すると考えれば、位置情報の世界では[緯度35.656806, 経度139.701101→渋谷区桜丘町16-12→不動産屋]となるだけなので、URLベースの分析も緯度経度ベースの分析も本質は変わらないのです。(緯度経度だけでなく住所でも分析はできます。)

人間はWebの中だけに生息する生物ではないので、リアルを加味するのはマーケティングとして当然の進化です。過去にエリアターゲティング広告(いわゆるジオフェンシング)が全然ダメだったというスコープの話ではなく、もっと大きなマーケティングのスコープにおいて。

いま、アドテク業界には位置情報に関するノウハウはほとんどありません(たぶん)。しかも、位置情報のノウハウは、アドテクのノウハウとはまったくの別物ときています。片手間でできる代物ではないです。そこで、GeoLogicはテクノロジープロバイダとして、アドテク業界における位置情報データ活用を一任してもらえる存在になりたいと思って、会社設立に至ったわけです。

まだウェブサイトもHTMLソース手打ちの状態なんですが、TwitterアカウントFacebookページを用意したので、今後のGeoLogicが少しでも気になる方はフォローしていただければと。また、位置情報以外のコンサルティングも、あまり時間は割けないのですが案件によってはお引き受けできるので、サイト上からお問い合わせいただければと。

本来、会社設立のブログエントリーってものは大きなビジョンを語るもんです。はい。ただ、こういう感じがオレ流な感じもしたんで、そのまま投稿ボタンを押してみることにします。 

位置情報データ分析のジオロジック