ビジネスと技術の狭間で

データを活用して生きていく

データマイニングの方法について

最近知ったデータマイニングフレームワークについて説明します。

「データサイエンティストって何やってるの??」って方には、彼らの仕事の理解の助けになるかもしれませんが、データマイニングの経験がある方にとってはごく当たり前のことなのでつまらないと思います。その点ご了承ください。

 

で、早速ですが、有名なフレームワークは3つあります。

1.The KDD process

2.SEMMA

3.CRISP-DM

 

正確にはそれぞれ違うのですが、根本的にはほぼ同じなので

今回は個人的に一番しっくりくるCRISP-DMについて詳しく説明します。

 

CRISP-DMとはCRoss Industry Standard Process for Data Miningの略で、

以下の6つのステップから成ります。

 

[1]ビジネス理解

[2]データ理解

[3]データ準備

[4]モデリング

[5]評価

[6]展開

 

では、詳細について私の浅い経験と解釈を踏まえて書いていきます。

[1]ビジネス理解:

まず、データマイニングの目的(落としどころ)を決めます。

顧客(社内でも同様)がどのようなビジネスを行っていて

何を求めているのかをヒアリングを通じて把握します。

「データがあるから何とかして!」という無茶振りなケースも少なくないですが、「データから○○が分かる(できる)ようになったら嬉しいですか?」という風に探っていってニーズを引き出します。

 

[2]データ理解:

その次は、顧客からデータを頂いて中身を見てみます。

データの信頼性(欠損や異常値がどのくらいあるか)をチェックしたり、

簡単な集計や可視化などをPerlやR、Excelなどを使って行います。

「説明を見ると、Aのファイルのこの項目とBのこの項目は同じものを差してるはずだけれど、どうして一致しないの?」なんて苦悩したりします。

 

[3]データ準備:

そして、詳細な分析、モデリングを行うための準備です。

外れ値や欠損値を除去したり適正だと思われる値で埋める作業や、値を対数や指数変換したり標準化する作業、複数のファイルを統合したり変数を抽出する作業などを行います。

 

[4]モデリング:

漸く一番データマイニングらしいモデリングです。

RやKNIMEを使って様々なモデルを適用したり色々な分析手法を試します。

モデルのパラメータを変えたり、変数をいじったりして

実際のデータをより適切に表現できるように試行錯誤を重ねます。

 

[5]評価:

モデリングの結果を評価します。

モデルそのものの精度も重要ですが、他に検証すべき点はないか、この結果で顧客に喜んでもらえるかどうかについて検討します。

 

[6]展開:

最後に、顧客に報告してビジネスに適用してもらいます。

行ったモデリング、分析の結果をレポートを作成して報告します。

その後、その結果を実際に顧客のビジネスに落とし込む方法について

顧客と共に検討し、適用いただくという感じです。

 

すでに気付いておられる方もいると思いますが、これらのプロセスは順番に一通りやれば終わるというものではありません。[3]データ準備と[4]モデリングは何度も繰り返しますし、[5]評価を1回でクリアできないことも多々あります。真に求めるものを手に入れるために、以上のプロセスを何度も何度も繰り返します。

巷で言われている様に、求められているアウトプットを最終的に出せるデータサイエンティストはとてもセクシーですが、実際に行っている作業は意外と泥臭いのです。

 

(参考)

Visual Guides to CRISP-DM ,KDD and SEMMA

 http://recipp.ipp.pt/bitstream/10400.22/136/1/KDD-CRISP-SEMMA.pdf

KDD, SEMMA AND CRISP-DM: A PARALLEL OVERVIEW

 http://recipp.ipp.pt/bitstream/10400.22/136/1/KDD-CRISP-SEMMA.pdf

勉強会について

初学者の方々は、「勉強会ってなんだか敷居高そうだし、参加しなくても資料が公開されていたりするので勉強会に参加する意味ってあるのか?」と思ってる人も多いのではないかと思います。

私も初めはそうでしたが、意外と参加してみると自分のレベルでも分かる話だったり、分からなかったら質問すれば親切に色々教えてもらえたりすることが分かって、とても面白いなと思えるようになりました。

それに、社外のデータサイエンティストの方々と交流するのは刺激的で

自分のモチベーション維持に役立っているなと思います。

だから社学者の方も臆せず勉強会に参加しよう!ってな感じで

今日は東京で開催されている勉強会を私が知っている範囲で紹介します。

 

■R勉強会@東京 Tokyo.R

私も何度か参加させてもらっています。

最近は100人規模の人数で開催しており、

比較的敷居も低い様に感じます。

RのパッケージやTipsなどの紹介、

実際に利用されている方の事例紹介など

R使いにはなかなか面白い内容です。

過去の勉強会資料は東京地区以外でも開催されているR勉強会の資料と

共にまとめられているので勉強にもなります。

http://lab.sakaue.info/wiki.cgi/JapanR2010?page=%CA%D9%B6%AF%B2%F1%C8%AF%C9%BD%C6%E2%CD%C6%B0%EC%CD%F7#p15

 

データマイニング+WEB@東京

こちらは毎回少人数開催のためチケットを確保するのが

なかなか難しい勉強会です。

少人数開催でディスカッションの時間をしっかり取っているため

深くて濃厚な議論が繰り広げられます。

興味のある分野のテーマがある際はぜひ参加しましょう。

各回の勉強会のまとめは主催者の濱田 晃一さんのブログにて公開されています。

http://d.hatena.ne.jp/hamadakoichi/

 

以下はまだ参加したことがないので詳しいことは知りませんが、

きっと有益なんだろうなと感じています。

■おしゃれStatistics

■Jubatus Casual Talks

■「はじめてのパターン認識」 読書会

■Tokyo.SciPy

■Deep Learning 輪読会

Twitter研究会

■JMRX勉強会

■Zansa

 

こちらはおそらくもう終了しているものですね。

ググると色々資料が転がっているので勉強用に。

PRML復習レーン

集合知プログラミング勉強会

■さくさくテキストマイニング

 

最後羅列しただけで手抜きですが、今日はこんなところで。

分析環境やツールについて

私が普段の分析で使っている環境やツールについて簡単に説明します。

 

■マシンについて

OS:Windows7 32bit

メモリ:4GB

マシンは一般的なものです。

工夫すればこの程度のマシンでもできることは少なくありません。

 

■ソフトについて

・ActivePerl

Perlスクリプト言語の1つです。

分析対象となるデータから必要なものを抽出して整形するために利用します。

歴が浅いため、新しいことを行う際は色々調べたりするのに時間がかかってしまいます。

 

MeCab

日本語の形態素解析を行うためのソフトです。

テキストを投げると単語に分割して返してくれます。

例えば、このブログのタイトルを投げると

SE    名詞,固有名詞,組織,*,*,*,*
採用    名詞,サ変接続,*,*,*,*,採用,サイヨウ,サイヨー
の    助詞,連体化,*,*,*,*,の,ノ,ノ
新入    名詞,一般,*,*,*,*,新入,シンニュウ,シンニュー
社員    名詞,一般,*,*,*,*,社員,シャイン,シャイン
が    助詞,格助詞,一般,*,*,*,が,ガ,ガ
データ    名詞,一般,*,*,*,*,データ,データ,データ
サイエンティスト    名詞,一般,*,*,*,*,サイエンティスト,サイエンティスト,サイエンティスト
に    助詞,格助詞,一般,*,*,*,に,ニ,ニ
なる    動詞,自立,*,*,五段・ラ行,基本形,なる,ナル,ナル
まで    助詞,副助詞,*,*,*,*,まで,マデ,マデ
EOS
と返ってきます。

デフォルトの設定だとデータとサイエンティストが切れてしまいますが、辞書に手を加えれば切れないようにすることも可能です。

 

・R

今最も流行っている?統計解析ソフトです。

Rはオープンソースなので、様々な分析手法や可視化をサポートするパッケージが世界中で開発されており非常に便利です。

また、勉強会も頻繁に開催されており、その資料が公開されているため

後学にとって勉強しやすい環境が整っています。ありがたいです。

http://lab.sakaue.info/wiki.cgi/JapanR2010?page=%CA%D9%B6%AF%B2%F1%C8%AF%C9%BD%C6%E2%CD%C6%B0%EC%CD%F7

 

・KNIME

こちらもRと同様に統計解析を行うためのソフトです。

ノードをGUIで繋げていくことで解析のフローを実現するので

コマンドを打って解析を行うのに不慣れな方や定期的に定型の解析を行う方にとっては便利かもしれません。

機械学習について全く知らなかった私は

デフォルトで用意されている機械学習系のノードを全て分析対象となるデータに対して適用してみるなんてことをしました。

設定しなければならないパラメータと各アルゴリズムについて調べ、実行してみて精度や実行時間を調べるという感じです。

 

・Excel

皆様お馴染み表計算ソフト。

レポートを作成するためのグラフを書く際に利用します。

 長年使っていますがまだまだ極められそうな気がしています。

 

■番外編

私はなぜだかPerlに足を突っ込んでしまいましたが

新しく始める方はPythonを習得された方が良いかもしれません。

Pythonには機械学習のライブラリscikit-learnなどがあり、

前処理から後の高度な解析までシームレスに行えるそうです。

私もPerlからの乗り換えを検討しながら今後勉強していきたいです。

 

(参考)python機械学習ライブラリscikit-learnの紹介

http://sucrose.hatenablog.com/entry/2013/05/25/133021

 

私について

はじめまして。

私はデータサイエンティストになるべく日々奮闘している2年目社会人です。

学生時代は、計算機科学(学士)や実験心理学修士)について

勉強したり研究したりしていました。

データサイエンティストに向いていそうなバックグラウンドではありますが、

修士までの6年間で数学や統計学、プログラミングについては

最低限度のレベルでしかやってこなかったので、ほぼ0からのスタートです。

振り返ってみると、遊んで(飲んで)ばかりのかなり低意識な学生でしたね。

 

2012年の4月から社会人としてSIerで働き始め、数ヶ月の研修の後にSEとして配属。

約半年間開発業務の補佐を行っていました。

2012年の暮れにデータサイエンスチームへの参加を打診され、

2013年の1月にデータサイエンスチームへ参加し、今に至るという感じです。

学生時代に勉強しなかったことを日々激しく後悔しながらも

周りの方々から支えられ、毎日刺激的で楽しい日々を過ごしています。

 

どの程度更新できるか分かりませんが、これからよろしくお願いします。