意識の高いデータサイエンティストにオススメの6つのこと

最終更新日:

Ben Weber氏は、スマホ向けゲーム開発で有名なZyngaで主席データサイエンティストを務めています。同氏が英語長文メディアMediumに投稿した記事『意識の高いデータサイエンティストにオススメの6つのこと』では、「仕事のできる」データサイエンティストと見なされるために実践すべき6つの行動が解説されています。
データサイエンティストとしてヒトを雇う立場も経験している同氏によると「できるデータサイエンティスト」が実践すべき(あるいは実践している)6つの行動とは、以下のようなものです。
  1. クラウドコンピューティングを実際に試す
  2. 新規のデータセットを作る
  3. (ツールやシステムといった)物事を接合する
  4. サービスを立ち上げる
  5. 目をみはるビジュアライゼーションを作る
  6. ホワイトペーパーを書いてみる

以上の行動はPythonのプログラミングスキルや統計学の専門知識といったデータサイエンティストの必須スキルを活用して、顧客に仕事の成果を提供する際に「違いを見せる」能力を培うものです。こうした行動は現役のデータサイエンティストだけではなく、これからこの職種を目指すヒトのキャリア形成にも役立つものでしょう。

なお、以下の記事本文はBen Weber氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。

職に就く前に経験を築き上げる

データサイエンスは多くを要求される分野である。そう見られるのは、部分的にはデータサイエンティストとして雇われるには多くの経験が要求されるからだろう。しかし、わたしがいっしょに働いた最良のデータサイエンティストの多くは人文科学から神経科学までに広がる多様なバックグラウンドを持っていて、その才覚を示すために自らの経験を見せつけていた。新卒生あるいはプロのアナリストがデータサイエンスのキャリアを築こうとしてこの世界に飛び込む時、この分野における専門知識があることを証明するために職歴を作ることはチャレンジングなことだ。わたしはデータサイエンス職を雇う側と雇われる側の両方にいたことがあるので、以下にデータサイエンティストとして職を得るのを助けるかも知れないカギとなる経験を述べていきたい。

1.クラウドコンピューティングを実際に試す
2.新規のデータセットを作る
3.(ツールやシステムといった)物事を接合する
4.サービスを立ち上げる
5.目をみはるビジュアライゼーションを作る
6.ホワイトペーパー(※訳注1)を書いてみる

以上のトピックの詳細を展開して行きたいと思うが、データサイエンスにおいてカギとなるテーマは、顧客企業に対して価値を付加するデータ製品を構築することができるか、ということだ。こうしたend-to-endのデータ製品を構築できるデータサイエンティストは価値ある強みを持っていると言え、データサイエンス職のキャリアを追求するうえでそうした強みを実演することは非常に役に立つのだ。

(※訳注1)ホワイトペーパーとは、通常は政府等が政策や国勢を周知するために作成・発表する「白書」と訳される単語である。しかし、本記事のような英文のIT系記事では顧客に製品やサービスを提案する際の資料を意味する。英語圏では日本のIT業界における提案書やプレゼン資料に該当するものを「White paper」と呼ぶ慣わしがある。

クラウドコンピューティングを実際に試す

多くの企業が過去にクラウドコンピューティング環境で仕事をしたことがあるデータサイエンティストを探している。なぜなら、そうしたプラットフォームは大規模に拡張できるデータ・ワークフローと予測的モデルを使用可能とするツールを提供してくれるからだ。もちろん読者諸氏もAmazon Web Services(AWS)あるいはGoogle Cloud Platform(GCP)のようなクラウドプラットフォームを日々の業務で使っていることだろう。

幸いなことに以上のようなクラウドプラットフォームの多くはそれに慣れ親しめるように無料利用枠を提供している。例えば、AWSはEC2インスタンスの無料利用枠と小規模のリクエストのためにLambdaのようなサービスの使用を無料で提供している。GCPはプラットフォームの大部分を試してみるために300ドル相当のクレジットを無料で提供し、Databricksはプラットフォームを試してみるためにコミュニティ・エディションの利用を提供している。こうした無料のオプションを使うにあたっては大規模なデータセットを扱うことはできないものも、各プラットフォームを使う経験を積めるだろう。

以上をふまえて、ひとつめにわたしがおすすめするのは、前述したプラットフォームの様々な機能を試してみて、モデルを訓練し実装するためのツールのうちのいくつかを実際に使えるかどうか調べることだ。例えば、わたしが以前に投入したモデルサービスではすでに慣れ親しんでいたSKLearnをツールとして使って作ったのだが、このモデルをLambdaのひとつの機能としてラッピングする方法を調査したことがある。

(※訳注2)以上のMedium記事『スタートアップのためのデータサイエンス:モデルサービス』において、Weber氏はLambdaを使って予測モデルを試作する手順を解説している。

新規のデータセットを作る

アカデミックな講座やデータサイエンスのコンペでは、しばしばクリーンなデータセットが提供される。そんな講座やコンペにおけるプロジェクトの焦点は探索的データ解析(※訳注3)あるいはモデリングにある。しかしながら、現実世界のプロジェクトにおいては、生のデータセットを分析やモデリングのタスクにより役立つように変形するためにデータマンジング(※訳注4)に取り組まなくてはならないのだ。データマンジングにおいては、しばしばデータを変形するために追加的なデータを収集することが求められる。例えば、わたしの以前の仕事ではアメリカの富裕層における資産の分布をより理解しようとして、連法制度準備制度のデータを使ったことがあった。

(※訳注5)以上のMedium記事『上位1%のクラスタリング:Rによる分析された資産』において、Weber氏はアメリカ連邦準備制度が作成・公表したデータにもとづいて、アメリカ資産上位1%以上の富裕層が所有する資産の内訳を分析した。分析した結果、資産が大きくなるほど企業株式からの配当金といった「ビジネス上の利益(business interest)」の比率が高くなる傾向を発見した(下の画像参照)。

資産上位1%以上のアメリカ富裕層が所有する資産の内訳
画像出典:Clustering the Top 1%: Asset Analysis in R

以上のアメリカ富裕層の関する仕事は興味深いプロジェクトであった。というのもファーストパーティのデータの精度を測定するのにサードファーティのデータを使ったからだ。わたしがおすすめするふたつのことは、データ分析や変形よりさらに進んで実際にデータセットを構築することだ。データセットの構築にはウェブサイトを検索して、(steamspyのような)完成されたデータセットからデータをサンプリングしたり、様々なデータソースからデータを集めてひとつの新しいデータセットにまとめるといった作業が含まれる。例えば、わたしは大学の卒業研究に取り組んでいる時にStarCraftのリプレイデータからカスタム・データセットを作った。この取り組みは新規のデータを作ることでわたしのデータマンジングを実行する能力を証明した。

(※訳注6)以上のMedium記事『再現可能な研究:StarCraftのマイニング』において、Weber氏はかつての卒業研究で構築したRTSゲーム「StarCraft」のリプレイデータを今日のデータサイエンス研究の環境で利用しやすいように再構築している。
(※訳注3)探索的データ解析(exploratory data analysis)とは、データ分析を行う前にデータの特徴を理解するために実行する分析作業のこと。この作業には、データ分布のグラフ化によってデータの特徴を視覚的に理解するといったことも含まれる。解析手段としてはPythonライブラリの「Pandas」、グラフ作成ライブラリー「Matplotlib」、線形代数処理が得意なPythonライブラリ「NumPy」といったものが活用される。
(※訳注4)データマンジングとは、データ分析前に行うデータの整形処理を意味する。具体的には、データ取得時のデータ型を整えたり、欠損値の補填等といった作業が該当する。

(ツールやシステムといった)物事を接合する

データサイエンティストが実演するスキルのなかでわたしが好んで見るものは、業務を遂行するために様々なコンポーネントやシステムをいっしょに動かす能力である。データサイエンス職を担うにあたってはモデルを製品化する明確な道筋などないであろうから、システムを組み上げ稼働させるのに独自なものを構築する必要があるかも知れない。理想的にはシステムを組み上げ稼働させるのにデータサイエンスチームに技術的サポートがあるとよいのだが、データサイエンティストが迅速に業務遂行するには彼ら自身によるプロトタイミングが重要なスキルとなる。

そこでわたしがおすすめするのは、ひとつのデータサイエンスのワークフローに統合するために様々なシステムとコンポーネントを試してみることだ。この試みには、データ・パイプラインを試作するためにAirflowのようなツールを使ってみることも含まれる。わたしがStarCraftのBrood War APIライブラリーとJavaをつなげるインタフェースとしてJNI-BWAPIプロジェクトを使い始めたように、異なるシステムを架橋するブリッジを作ることも含まれよう。あるいはBigQueryからデータを引っ張ってきて、予測モデルに適用したり、Cloud Datastoreに結果を保存したりするためにGCPデータフローを使うように、ひとつのプラットフォームで様々なコンポーネントを相互につなげることも含まれよう。

(※訳注7)以上のMedium記事『スタートアップのためのデータサイエンス:モデル制作』において、Weber氏はGoogle DataflowとPMMLを組み合わせて出生時体重を予測するモデルを構築する事例を解説している。

サービスを立ち上げる

データサイエンティストとして、あなたはしばしば自分が所属している企業でほかのチームが使えるサービスを立ち上げる必要があるだろう。例えば、ディープラーニング・モデルが出力した結果を提供するFlaskアプリみたいなものが考えられるだろう。また何らかのサービスを試作できることは、ほかのチームがあなたの作ったデータ製品をより迅速に利用できることを意味する。

(※訳注8)以上のMedium記事『Flaskを用いたKerasのディープラーニングモデルの実装』において、Weber氏はKerasで構築したディープラーニングモデルをFlaskで作成したウェブアプリで操作できるようにする手順を解説している。

そこでわたしがおすすめするのは、エンドユーザ向けのウェブアプリを立ち上げるためにFlaskGunicornのようなツールを使う経験をしてみたり、Pythonでインタラクティブなウェブアプリを作るためにDashを使ってみることだ。以上のようなサービスのひとつをDockerインスタンスのなかにセッティングしてみることも有益な実践だ。

目をみはるビジュアライゼーションを作る

優れた仕事はそれ自体だけで成り立つものである一方で、なぜ分析やモデルが重要なのか説明する前にまずは聴衆の注意をひくことがしばしば不可欠となる。そこでわたしがおすすめするのは、説得力のある際立ったビジュアライゼーションを作るために様々なビジュアライゼーション・ツールの使い方を学ぶことだ。

(※訳注9)以上のMedium記事『Rを用いたプロフェッショナルなStarCraftのビジュアライゼーション』において、Weber氏は前出のStarCraftのリプレイデータに関する卒業研究をアニメーション化したことを解説している。
StarCraftとは、ユニットと呼ばれるオブジェクトを使って資源採集や戦闘を行う対戦型戦略ゲームである。同氏の研究は敵陣営の戦略を予測するモデルを構築するという内容だったので、学習データには対戦のリプレイデータが使われた。このリプレイデータ自体は数値情報なのだが、このデータを実際のゲームプレイにおけるユニットの挙動のようにアニメーションで視覚化することが試みられた。そうして完成したアニメーションは、以下のような動画である。動画の赤で描かれた点と線はプロトスと呼ばれる種族のユニットの挙動であり、緑はテランのそれである。

美しいビジュアライゼーションを作ることは、職歴に関するポートフォリオを構築する際にも役立つ。以下に示すブログは、わたしがデータサイエンティストとして10年間探求してきた様々なツールとデータセットに関する事例を披露している。

(※訳注10)以上のMedium記事『10年間におけるデータサイエンスのビジュアライゼーション』において、Weber氏は自身の10年間にわたるデータサイエンティストとしてのキャリアのなかで制作したデータ分析結果のビジュアライゼーションの事例を紹介している。そんな事例のなかには、前述のStarCraftの研究に加えてアメリカの国勢調査データから生成した同国の人口分布に関するヒートマップ(下の画像参照)等が含まれている。

国勢調査10 Years of Data Science Visualizationsデータから生成したアメリカの人口分布に関するヒートマップ
画像出典:10 Years of Data Science Visualizations

ホワイトペーパーを書く

わたしが最近推奨しているデータサイエンスのスキルは、ホワイトペーパーの形式でプロジェクトを説明する能力である。ホワイトペーパーには企業経営者向けの要約、説明する業務はどのように活用することができるのかに関する議論、方法論に関する詳細、そして業務がもたらす結果が含まれている。ホワイトペーパーのゴールはあなたのリサーチを幅広い読者にわかるようにしたり、その文書だけで理解できるようにすることだ。こうすることでほかのデータサイエンティストが文書の説明するリサーチ結果のうえに何かを築くことができるようになる。

データサイエンスに関してブログ記事を書いたりそのほかの形式で何かを書くことは、書いてコミュニケーションを図るスキルを改善する経験を積むのに素晴らしい方法だ。そこでわたしがおすすめするのは、データサイエンスに関する理解が異なったレベルごとにアイデアを伝える経験を積むために、幅広い読者に対してデータサイエンスの記事を書いてみることだ。

(※訳注11)以上のMedium記事『スタートアップのためのデータサイエンス:ブログ->書籍』において、Weber氏は自身が執筆したMedium記事シリーズ『スタートアップのためのデータサイエンス』をKindle対応電子書籍として出版するまでのプロセスを解説している。

結論

データサイエンスは、多くのツールを使ったことのある実践的経験を要求する。幸運なことにデータサイエンスに関連した多くのツールがますますアクセスしやすくなり、データサイエンスに関するポートフォリオを構築するのがより簡単になってきているのだ。

・・・

Ben WeberはZyngaにおける主席データサイエンティストであり、Mischiefでアドバイザーを務めている。


原文
『Six Recommendations for Aspiring Data Scientists』

著者
Ben Weber

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する