データサイエンティストとは?仕事内容・スキルを解説

Data Scientist(データサイエンティスト)という職業を知っていますか?

言葉が独り歩きしている感が否めませんが、世界で最も注目されている職業といっても過言ではないでしょう。

 

この記事では、

  • データサイエンティストに興味がある
  • 名前だけは聞いたことあるけどよく分からない
  • データサイエンティストになるにはどんなスキルが必要なの?

という質問に対して、

アメリカの大学院でPh.D.(博士号)を取得してから現地企業でデータサイエンティストとして働いている僕が、

  • データサイエンスとは何か
  • データサイエンティストは普段どんな仕事をしているのか
  • データサイエンティストにはどんなスキルが必要なのか

解説していきます。

 

 

データサイエンスとは?

 

データサイエンス(科学)する、と聞いても正直あまりピンと来ませんよね。

 

噛み砕いていうと、データに基づいて意思決定を行ったり、データからビジネスに役立つ知見を得ることを、データサイエンスと言います。

新たな分析手法を提案したり、今まで解けなかった問題を解決していくことから、サイエンス(科学)の名がつけられました。

 

近年インターネットやコンピュータの処理能力の向上により、大量のデータから学習することでデータの潜在的なパターンを見つけ出すこと(=機械学習)が可能になりました。

これにより、世の中に蓄積した様々なデータを用いることで、より素早く正確に意思決定ができるようになりました。その結果として、データサイエンティストの需要が増え、人気の高い職業となっているのです。

 

  • SiriやAlexa
    • 音声から文字を認識する(音声認識)
    • 文字から意図を理解する(自然言語処理・NLP)
  • FaceIDなどの生体認証
    • 画像を認識して、登録されているものと一致している判別する
  • Web広告の最適化
    • クリック率・コンバージョン率を最大化するような広告を自動で選択
  • 詐欺検出
    • Ecommerceやクレジットカードの不正取引・詐欺を自動で検出

 

 

データサイエンティストは、大まかに3つのスキルが必要だと言われています。

Drew Conwayが2010年に提唱したベン図が、3つのスキルを分かりやすく説明しています。

具体的には、

  • ドメイン知識:ターゲットとなるビジネス分野の知識・経験
  • プログラミング:データの処理や、機械学習モデルを作るためのコーディング能力
  • 統計学:機械学習モデルを正しく作り、評価し、効率よく精度を向上させるための統計学・数学・機械学習の知識

が必要になります。

 

 

データサイエンティストの仕事とは

 

ビジネスの問題を理解する

データサイエンスの目的は、データを用いて実験を繰り返すことで、ビジネスにおける問題を解決することです。

 

そのために、データサイエンティストは

  • 対象となるビジネスのドメイン知識・事業内容
  • 解決したいビジネスの課題評価指標

などについて、深く理解する必要があります。

 

これを疎かにすると、せっかくデータを使って問題解決や意思決定をしたところで、実際には何もビジネス上において役に立たないものを作ってしまう可能性があります。

 

これを防ぐために、実際にデータ分析を始める前に、

  • ドメイン知識のあるチームとミーティングを重ねたり、
  • 先行研究や社内外での過去の事例を調べることで

これから進めていくプロジェクトについてより具体的な理解を深めることが重要です。

 

  • コミュニケーション能力
  • 論理的思考能力
  • ビジネスのドメイン知識

 

データの収集、可視化

次に、実際に手を動かしてデータを収集します。

 

具体的には、データベース言語(SQL等)を使って、社内外のデータから使えそうなものをピックアップしていきます。

まだデータを活用していない企業の場合、データを集めるところから始める必要があるかもしれません。

前のステップで十分なドメイン知識をつけておくことで、どんなデータが必要になるか検討をつけることができます。

 

データを収集したら、Python等のプログラミング言語を使って、集めたデータを加工したり、グラフにして簡単な分析を行います。(=探索的データ分析 EDA)

データの加工はデータサイエンスにおいて非常に重要なステップです。

 

データの加工の例

  • IPアドレスをそのまま扱うのは難しいので、IPアドレスがどこの国・住所に属しているのかに変換する
  • 小売店の日付のデータを曜日に変換することで、曜日による売上の変化を読み取れるようにする

 

また近年、自然言語(文章)・画像・音声などの非構造化データを扱うことも多くなっています。

 

ビジネスの分野に応じて全く異なる種類のデータを扱うので、過去の経験に頼るだけでなく知識をアップデートすることが必要になります。

 

  • データベースの知識・スキル
    • SQL、NoSQL、Hadoop、Sparkなど
  • Python
    • 集めたデータの加工・可視化

 

データの前処理、パイプラインを作る

分析によって使用するデータを決めたら、実際のプロダクト(製品)を作っていきます。

 

ビジネス分野にもよりますが、プロダクトには、

  • データのパイプライン
  • 統計・機械学習のモデル
  • モデルによるアウトプット機能

が必要になります。

 

データのパイプラインとは、データの収集・加工を自動化したものです。

 

データのパイプラインの例

  • オンライン取引の詐欺検知のために、決済ボタンを押した瞬間にユーザーのデータを詐欺検知モデルに送るパイプラインを作る
  • 音声認識システムのために、マイクに入力した音をモデルに送るパイプラインを作る
  • 小売サイトの価格決定のために、毎日競合サイトを巡回して価格情報を抽出するパイプラインを作る(スクレイピング)

 

データパイプラインを作る専門の職業、Data Engineerと呼ばれるものもあります。しかし、企業によってはデータサイエンティストがやらなければならないこともあるので、相応の知識・スキルを持っておくことが好ましいです。

 

  • データベースの知識・スキル
    • SQL、NoSQL、Hadoop、Sparkなど
  • Python
    • データの読み込み・加工
    • パイプラインによる自動化

 

モデルを作る

データサイエンスの肝である、統計・機械学習モデルを作ります。

 

前のステップで集めたデータを使って、モデルの訓練をします。

モデルを訓練することで、未来の新しいデータに対して、何かを

  • 予測したり
  • 分類したり
  • 最適化したり

することができます。

 

モデルの例

  • 過去の売上から、将来の需要を予測する
  • オンライン取引で、ユーザーのデータを基に詐欺かどうか分類する
  • 競合相手の価格を基に、自社の価格を最適化する

 

モデルを構築する上で必要になるのが、統計・機械学習の 理論的な理解 実践的な経験・知識 です。

大抵、最初に作るモデルの精度は低いものです。そこからどのように精度を上げていくのかが、データサイエンティストの腕の見せどころです。

モデルに対する理解・経験が浅いと、効率よく精度を上げることができません

 

この作業が一番楽しくやりがいがあるのですが、実際には他のステップでやらなければならないことが大量にあるため、モデル作りに割ける時間は意外と少ないのが実態です。

 

  • モデルに関する機械学習の理論・実践的な経験・知識
    • 機械学習のパッケージを使えるだけだと、理論的な知識が不足していて、期限内に十分にモデルの精度を上げることができません。
    • 理論的な知識と実践的な経験に基づいて、効率よくモデルを向上させる必要があります。
  •  Python
    •  Scikit-learnやTensorflowを用いたモデル訓練
    • モデルの評価

 

モデルをビジネスの中で運用する

モデルが完成したら、実際にモデルを組み込んで運用します。

この作業も、ビジネスの分野によって大きく作業が異なります

 

既存のアプリケーションにモデルを組み込む際には、エンジニアとの協力・コミュニケーションが必要になります。

 

一から運用を始める場合も、エンジニアに力を借りることになります。他のチームとの連携もデータサイエンティストの重要なスキルです。スムーズに連携するためにも、相応のエンジニア知識を持っておく必要があります。

 

 

モデルの運用例

  • 既存のアプリケーションに組み込む場合
    • Siriの言語モデルをアップデートする
    • オンライン取引のシステムに、詐欺検知するモデルを付け加える
  • 一から運用を始める場合
    • 毎朝、昨日までの売上データを使ってその日の需要を予測するアプリを作る
    • 毎朝、競合相手の価格を使ってその日の最適価格を出力するアプリを作る

 

実際にモデルを実装したあとは、動作検証をして正常に動作しているか確認します。実装でミスが発生してしまうと、今までの努力が水の泡になります。

 

  • エンジニアとのコミュニケーション
  • 実装されるアプリで使われているプログラミング言語(Javaなど)
    • 訓練したモデルをアプリケーションに実装
    • 予想通り実装されているか、動作検証

 

モデルの評価、再構築

実装が終わったら、モデルの性能をモニタリングします。

機械学習モデルは、時間とともに性能が劣化していきます。過去のデータによって未来を完全に予測できることはありません

 

モデルの劣化の例

  • 新しく流行っている言葉は、その前のデータで訓練された言語モデルでは理解できない
  • オンライン取引上の新しい詐欺パターンは、その前のデータで訓練された詐欺検知モデルでは検出できない

 

モデルが劣化してきたら、新たなデータ・知見をもとに、モデルを再構築します。

最初のステップに戻り、再びデータを集め、加工・分析し、モデルを構築して評価していきます。

このサイクルを繰り返すことで、常に精度の良いモデルをキープし続けることができます。

 

モニタリング等のデータ分析業を専門にした職業、Data Analystも存在しますが、データサイエンティストにも必須のスキルです。

 

  • モデルの評価に関する機械学習・統計学の知識
  • 可視化するためのダッシュボード(Tableau、Kibana、Grafanaなど)
  • Python
    • モデルを評価するコード
    • モデルを再訓練するパイプライン

 

 

【データサイエンティストとは】まとめ

 

データサイエンティストは、データを用いて実験・検証をすることで、ビジネスにおける意思決定をする職業です。

 

データサイエンティストには、以下の3つのスキルが必要になります。

  • ビジネスのドメイン知識
  • プログラミング
  • 統計・機械学習の知識

 

これらのスキルは、満遍なく伸ばす必要はありません

エンジニアに強い人もいれば、人工知能の研究者のように機械学習の知識に強い人もいれば、コンサル系のようにビジネスに強い人もいます。

最低限のスキルを身に着けたあとは、働いていく中で自分のなりたい方向性を見つけてキャリアアップしていきます。

 

まだまだ新しい職業ですが、これから間違いなく世界的に需要が高まってくる職業です。今後、他にもデータサイエンティストに関する記事を書いていくので、ぜひチェックしてくださいね!