データサイエンティスト・マシューによる最終寄稿。今回は、データサイエンティストとして様々な経験・チャレンジを続けてきたマシューが、数々の質問にお応えしていきます。
▼データサイエンティストのスキルを徹底解剖!マシューのデータサイエンスAtoZ Vol.1
▼データサイエンティストになる方法、仕事内容、スキルとは?マシューのデータサイエンスAtoZ Vol.2
こんにちは。今年の2月より、エン・ジャパン イノベーションラボのデータサイエンスチームマネージャーと不満買取センターのチーフデータサイエンティストを兼務してるマシューです。以前は、富士通カナダのイノベーションラボで4年以上データサイエンス領域で働いていた経験もあります。
さて、連載最終回となる今回は、この経験を活かしてデータサイエンスに関わる疑問へQ&A形式で回答していきたいと思います。
最初に興味をもったのは、情報科学系の大学院で機械学習について学びはじめたときでした。機械学習やビックデータ処理(Apache Hadoop等)の最先端を学んでいくにつれ、仕事でもこの領域にどっぷり漬かって働いていきたいと考えるようになりました。
これらの単語は、同じ文脈で使用されることが多いですが、一般の方にとっては区別がわかりにくいかもしれません。
データサイエンスとは、機械学習、データマイニング、そして統計分析等の手法を利用して問題へ定量的にアプローチするという方法論のことで、その中には既存の様々な学問領域が含まれていると考えています。
一方、機械学習は既存のデータを用いてコンピュータを学習させ、新たなデータに対して答えを導き出す技術。そしてデータマイニングは 大まかに言うと、データの中から有用な情報を抽出する行為のことで、この中には各種統計や機械学習の技術もふくまれます。
理想のデータサイエンティストはプログラミング、機械学習、統計、可視化、コミュニケーションとビジネス理解等の幅広い領域に精通したジェネラリストだと考えています。優れたデータサイエンティストになるには、常に新しい手法・技術を学び、最新の技術にキャッチアップしていく必要があるでしょう。目の前の問題に対し、最初に思いついた手段で満足することなく、より良い手段が無いか常に視点を広く持つという態度が大切です。
加えて、その他のエンジニアやビジネス領域を担当するメンバーと適切にコミュニケーションするスキルというのも、良いデータサイエンティストであるためには欠かせないものです。
データサイエンスは、方法論としては科学であると言えます。仮説を構築し、データを分析することで実験を行い、仮説を検証するというデータサイエンスにおけるプロジェクトの進め方は科学そのものです。
しかし、データサイエンスには技術としての側面もあります。データサイエンスには数え切れないほどのツールや技術があり、様々な問題に対してそれぞれ適用可能です。実際に、適用する手法が適切でさえあれば、ちょっとした手間で問題が解決してしまうことすらあります。
あらゆる問題に対してどのような手段をとる選択肢があるのか、一つがうまく行かなかったら次に何を試すべきなのかを考えていくことが、データサイエンティストが創造性を発揮するポイントでもあります。
①全てについて、ログを保存すること。
データについても、プログラムのコードについても、バージョン管理を行うべきです。
②データ分析プロジェクトの結果は、常に定量的に評価すること。
新しく作成したモデルがそれまでのものよりも優れているとして、それがどの程度優れているのかは数値で表現されなくてはいけません。新しいモデルが古いものよりも統計的に優位に良いことがわかれば理想的です。
③p値を汎用することの危険性について理解しておくこと。そして、ABテストを適切に利用すること。
④必ず生データを保存しておくこと。
⑤学習を止めないこと。
最先端の領域で仕事をし続けるには、自分が使用する手法が時代遅れになっているなどということがあってはなりません。
ちょうど今は、以下のような本を読んでいるところです。
▼Data Mining Concepts and Techniques 3rd Edition by Han, Kamber and Pei
▼Linked Data, Structured Data on the Web by Wood, Zaidman and Ruth(邦題:Linked Data: Webをグローバルなデータ空間にする仕組み)
▼Big Data, Principles and best practices of scalable real-time systems by Marz and Warren.
もちろん、書籍以外でも最先端の知識を取り入れることが可能です。私は今年は以下に参加/参加予定です。
▼第一線の研究者を招いて行われたディープラーニングについての社外の勉強会
▼言語処理学会 年次大会…この学会は毎年行われていて、次回2016年度は東北大学で実施されます。
▼WebDB Forum 2015(参加予定)
▼その他、Hadoop、Sparkなどビックデータに関するカンファレンスにも幾つか出席。
最近は、Elastic SearchをPythonから利用する方法を試しています。その他には、Pig Latin という言語と、PigスクリプトをAWS EMRクラスター上で動作させる方法を勉強しています。
FiveThirtyEight, Reddit Machine Learning Subreddit, Quora (Machine learning, data analysis, data mining, etc.), Cross Validated, KDNuggets などを利用しています。
Google, Facebook そして Amazonです。
GoogleはMapReduceをはじめとして、様々な最先端の技術を発表しつづけています。 そしてFacebook とAmazonはデータサイエンスを競争力の源泉として優れたビジネスを築き上げました。これらの企業が自社のビジネスのために開発してきた技術が、ここ数年のデータサイエンス業界を発展させてきたことは事実ですし、今後もこの流れはしばらく継続すると考えています。
データサイエンスで利用するには、Pythonが最も汎用的に利用しやすい言語でしょう。特に計算科学の用途に利用する場合、numpy/scipy, pandasやscikit-learnをはじめとしたライブラリのおかげで他の言語に見劣りすることはないでしょう。I
分析のためのソフトウェア・パッケージは、特定の問題に特化して作成されている傾向があります。そのため、自分が相手にしているデータに対してパッケージが利用できるようにするために、Pythonのような汎用言語のプログラミングが必要になるケースはあります。
また、スタートアップ企業や私たちイノベーションラボのような出来たばかりのデータサイエンス組織の場合にも、データサイエンスを適用すべきデータが各種にわたるために、自分でプログラミングしてデータの違いを吸収する必要があることが多々あります。反面、より成熟した企業・組織においてはプログラミングをしなくても分析パッケージをそのまま用いるだけで足りる場面が多いでしょう。
【Case-1】
私が富士通カナダに居た際、Apache Hadoopを用いて政府の求人情報を分析・予測し最適な求人をレコメンドするシステムを構築しました。レコメンドの結果はprecision and recall(適合率と再現率) という指標を用いて計測し、高い精度で適切な求人情報が表示されていることを確かめました。
【Cace-2】
不満買取センターのプロジェクトでは、投稿されたユーザの不満の価値を自動で査定し、不満の買取可否・金額を自動化するというプロジェクトを行いました。クラス分類と、回帰を組み合わせたモデルを用いて高い精度を実現し、成果についてはAUC という指標を用いて正しく分類が出来たかを測定しています。
いかがでしたか?この連載では、「データサイエンティスト」「データサイエンス」をテーマにそのスキルや仕事内容、求められる背景をお伝えしてきました。本稿を通じて、少しでもデータサイエンスに関する理解を読者の方に深めってもらえることができれば幸いです。それではまた!
文 = 寄稿
4月から新社会人となるみなさんに、仕事にとって大切なこと、役立つ体験談などをお届けします。どんなに活躍している人もはじめはみんな新人。新たなスタートラインに立つ時、壁にぶつかったとき、ぜひこれらの記事を参考にしてみてください!
経営者たちの「現在に至るまでの困難=ハードシングス」をテーマにした連載特集。HARD THINGS STORY(リーダーたちの迷いと決断)と題し、経営者たちが経験したさまざまな壁、困難、そして試練に迫ります。
Notionナシでは生きられない!そんなNotionを愛する人々、チームのケースをお届け。