最終更新日:
データサイエンティストとしてヒトを雇う立場も経験している同氏によると「できるデータサイエンティスト」が実践すべき(あるいは実践している)6つの行動とは、以下のようなものです。
- クラウドコンピューティングを実際に試す
- 新規のデータセットを作る
- (ツールやシステムといった)物事を接合する
- サービスを立ち上げる
- 目をみはるビジュアライゼーションを作る
- ホワイトペーパーを書いてみる
以上の行動はPythonのプログラミングスキルや統計学の専門知識といったデータサイエンティストの必須スキルを活用して、顧客に仕事の成果を提供する際に「違いを見せる」能力を培うものです。こうした行動は現役のデータサイエンティストだけではなく、これからこの職種を目指すヒトのキャリア形成にも役立つものでしょう。
なお、以下の記事本文はBen Weber氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。
職に就く前に経験を築き上げる
データサイエンスは多くを要求される分野である。そう見られるのは、部分的にはデータサイエンティストとして雇われるには多くの経験が要求されるからだろう。しかし、わたしがいっしょに働いた最良のデータサイエンティストの多くは人文科学から神経科学までに広がる多様なバックグラウンドを持っていて、その才覚を示すために自らの経験を見せつけていた。新卒生あるいはプロのアナリストがデータサイエンスのキャリアを築こうとしてこの世界に飛び込む時、この分野における専門知識があることを証明するために職歴を作ることはチャレンジングなことだ。わたしはデータサイエンス職を雇う側と雇われる側の両方にいたことがあるので、以下にデータサイエンティストとして職を得るのを助けるかも知れないカギとなる経験を述べていきたい。
1.クラウドコンピューティングを実際に試す
2.新規のデータセットを作る
3.(ツールやシステムといった)物事を接合する
4.サービスを立ち上げる
5.目をみはるビジュアライゼーションを作る
6.ホワイトペーパー(※訳注1)を書いてみる
以上のトピックの詳細を展開して行きたいと思うが、データサイエンスにおいてカギとなるテーマは、顧客企業に対して価値を付加するデータ製品を構築することができるか、ということだ。こうしたend-to-endのデータ製品を構築できるデータサイエンティストは価値ある強みを持っていると言え、データサイエンス職のキャリアを追求するうえでそうした強みを実演することは非常に役に立つのだ。
クラウドコンピューティングを実際に試す
多くの企業が過去にクラウドコンピューティング環境で仕事をしたことがあるデータサイエンティストを探している。なぜなら、そうしたプラットフォームは大規模に拡張できるデータ・ワークフローと予測的モデルを使用可能とするツールを提供してくれるからだ。もちろん読者諸氏もAmazon Web Services(AWS)あるいはGoogle Cloud Platform(GCP)のようなクラウドプラットフォームを日々の業務で使っていることだろう。
幸いなことに以上のようなクラウドプラットフォームの多くはそれに慣れ親しめるように無料利用枠を提供している。例えば、AWSはEC2インスタンスの無料利用枠と小規模のリクエストのためにLambdaのようなサービスの使用を無料で提供している。GCPはプラットフォームの大部分を試してみるために300ドル相当のクレジットを無料で提供し、Databricksはプラットフォームを試してみるためにコミュニティ・エディションの利用を提供している。こうした無料のオプションを使うにあたっては大規模なデータセットを扱うことはできないものも、各プラットフォームを使う経験を積めるだろう。
以上をふまえて、ひとつめにわたしがおすすめするのは、前述したプラットフォームの様々な機能を試してみて、モデルを訓練し実装するためのツールのうちのいくつかを実際に使えるかどうか調べることだ。例えば、わたしが以前に投入したモデルサービスではすでに慣れ親しんでいたSKLearnをツールとして使って作ったのだが、このモデルをLambdaのひとつの機能としてラッピングする方法を調査したことがある。
新規のデータセットを作る
アカデミックな講座やデータサイエンスのコンペでは、しばしばクリーンなデータセットが提供される。そんな講座やコンペにおけるプロジェクトの焦点は探索的データ解析(※訳注3)あるいはモデリングにある。しかしながら、現実世界のプロジェクトにおいては、生のデータセットを分析やモデリングのタスクにより役立つように変形するためにデータマンジング(※訳注4)に取り組まなくてはならないのだ。データマンジングにおいては、しばしばデータを変形するために追加的なデータを収集することが求められる。例えば、わたしの以前の仕事ではアメリカの富裕層における資産の分布をより理解しようとして、連法制度準備制度のデータを使ったことがあった。
画像出典:Clustering the Top 1%: Asset Analysis in R[/caption]
以上のアメリカ富裕層の関する仕事は興味深いプロジェクトであった。というのもファーストパーティのデータの精度を測定するのにサードファーティのデータを使ったからだ。わたしがおすすめするふたつのことは、データ分析や変形よりさらに進んで実際にデータセットを構築することだ。データセットの構築にはウェブサイトを検索して、(steamspyのような)完成されたデータセットからデータをサンプリングしたり、様々なデータソースからデータを集めてひとつの新しいデータセットにまとめるといった作業が含まれる。例えば、わたしは大学の卒業研究に取り組んでいる時にStarCraftのリプレイデータからカスタム・データセットを作った。この取り組みは新規のデータを作ることでわたしのデータマンジングを実行する能力を証明した。
(ツールやシステムといった)物事を接合する
データサイエンティストが実演するスキルのなかでわたしが好んで見るものは、業務を遂行するために様々なコンポーネントやシステムをいっしょに動かす能力である。データサイエンス職を担うにあたってはモデルを製品化する明確な道筋などないであろうから、システムを組み上げ稼働させるのに独自なものを構築する必要があるかも知れない。理想的にはシステムを組み上げ稼働させるのにデータサイエンスチームに技術的サポートがあるとよいのだが、データサイエンティストが迅速に業務遂行するには彼ら自身によるプロトタイミングが重要なスキルとなる。
そこでわたしがおすすめするのは、ひとつのデータサイエンスのワークフローに統合するために様々なシステムとコンポーネントを試してみることだ。この試みには、データ・パイプラインを試作するためにAirflowのようなツールを使ってみることも含まれる。わたしがStarCraftのBrood War APIライブラリーとJavaをつなげるインタフェースとしてJNI-BWAPIプロジェクトを使い始めたように、異なるシステムを架橋するブリッジを作ることも含まれよう。あるいはBigQueryからデータを引っ張ってきて、予測モデルに適用したり、Cloud Datastoreに結果を保存したりするためにGCPデータフローを使うように、ひとつのプラットフォームで様々なコンポーネントを相互につなげることも含まれよう。
サービスを立ち上げる
データサイエンティストとして、あなたはしばしば自分が所属している企業でほかのチームが使えるサービスを立ち上げる必要があるだろう。例えば、ディープラーニング・モデルが出力した結果を提供するFlaskアプリみたいなものが考えられるだろう。また何らかのサービスを試作できることは、ほかのチームがあなたの作ったデータ製品をより迅速に利用できることを意味する。
そこでわたしがおすすめするのは、エンドユーザ向けのウェブアプリを立ち上げるためにFlaskやGunicornのようなツールを使う経験をしてみたり、Pythonでインタラクティブなウェブアプリを作るためにDashを使ってみることだ。以上のようなサービスのひとつをDockerインスタンスのなかにセッティングしてみることも有益な実践だ。
目をみはるビジュアライゼーションを作る
優れた仕事はそれ自体だけで成り立つものである一方で、なぜ分析やモデルが重要なのか説明する前にまずは聴衆の注意をひくことがしばしば不可欠となる。そこでわたしがおすすめするのは、説得力のある際立ったビジュアライゼーションを作るために様々なビジュアライゼーション・ツールの使い方を学ぶことだ。
StarCraftとは、ユニットと呼ばれるオブジェクトを使って資源採集や戦闘を行う対戦型戦略ゲームである。同氏の研究は敵陣営の戦略を予測するモデルを構築するという内容だったので、学習データには対戦のリプレイデータが使われた。このリプレイデータ自体は数値情報なのだが、このデータを実際のゲームプレイにおけるユニットの挙動のようにアニメーションで視覚化することが試みられた。そうして完成したアニメーションは、以下のような動画である。動画の赤で描かれた点と線はプロトスと呼ばれる種族のユニットの挙動であり、緑はテランのそれである。
美しいビジュアライゼーションを作ることは、職歴に関するポートフォリオを構築する際にも役立つ。以下に示すブログは、わたしがデータサイエンティストとして10年間探求してきた様々なツールとデータセットに関する事例を披露している。
画像出典:10 Years of Data Science Visualizations[/caption]
ホワイトペーパーを書く
わたしが最近推奨しているデータサイエンスのスキルは、ホワイトペーパーの形式でプロジェクトを説明する能力である。ホワイトペーパーには企業経営者向けの要約、説明する業務はどのように活用することができるのかに関する議論、方法論に関する詳細、そして業務がもたらす結果が含まれている。ホワイトペーパーのゴールはあなたのリサーチを幅広い読者にわかるようにしたり、その文書だけで理解できるようにすることだ。こうすることでほかのデータサイエンティストが文書の説明するリサーチ結果のうえに何かを築くことができるようになる。
データサイエンスに関してブログ記事を書いたりそのほかの形式で何かを書くことは、書いてコミュニケーションを図るスキルを改善する経験を積むのに素晴らしい方法だ。そこでわたしがおすすめするのは、データサイエンスに関する理解が異なったレベルごとにアイデアを伝える経験を積むために、幅広い読者に対してデータサイエンスの記事を書いてみることだ。
結論
データサイエンスは、多くのツールを使ったことのある実践的経験を要求する。幸運なことにデータサイエンスに関連した多くのツールがますますアクセスしやすくなり、データサイエンスに関するポートフォリオを構築するのがより簡単になってきているのだ。
・・・
Ben WeberはZyngaにおける主席データサイエンティストであり、Mischiefでアドバイザーを務めている。
原文
『Six Recommendations for Aspiring Data Scientists』
著者
Ben Weber
翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)
編集
おざけん