はじめに
近年、人工知能を始めとしたデータサイエンスの分野は、大きな注目を集めており、データサイエンティストを目指そうと考えている方も多いと思います。
そこで、データサイエンティストとして独り立ちするまでに、何が必要でどれくらいの期間が必要となるかを考えてみました。
データサイエンティストの独り立ちまでのステップ
データサイエンティストとはどういう人なのかを一言で言うのは難しいですが、データサイエンティスト協会では、「データサイエンティストとは、データサイエンス力、データエンジニアリング力をベースにデータから価値を創出し、ビジネス課題に答えを出すプロフェッショナル」と定義しています。
プロフェッショナルの領域に到達するのはかなり大変ですが、以下の4ステップを経ることで、データサイエンティストとして独り立ちはできるようになると思います。
Step1.Pythonの基本的な文法を覚える
Step2.先輩について前処理をお手伝い出来るようになる
Step3.アルゴリズム各種の特徴を理解して、目的別に使用出来るようになるStep4.アルゴリズム適用結果の解釈をして、次のアクションについて提案できるようになる
それでは各ステップを、個別に見ていきましょう!
Step1. Pythonの基本的な文法を覚える
Python以外のプログラミング言語でもデータ解析はできますが、Pythonはデータ解析に有効なライブラリが充実しており、汎用性も高く、ユーザーのコミュニティも活発なので、データサイエンスのプログラミング言語としてはPythonを選択するのが最善と言えます。
まずは、Pythonの基本的な文法を覚える必要があります。Pythonを使ってデータ解析を進める場合、まずはこのようなデータ操作をしたい、と思った時にイメージ通りの処理を出来るようになる必要があります。
その際、Pythonの基本的な文法を覚えるのはもちろんですが、データ解析に不可欠な3つの基本ライブラリであるNumpy、Pandas、Matplotlibの文法も覚えておく必要があります。
例えば、Pandasで横持ちのデータを縦持ちに変換したい、といった操作が必要なシーンで、すぐにコードをイメージできる必要があります。
ここで出てきたデータの横持ちと縦持ちとは、データの記録方式を表しています。データ解析する際は、縦持ちのデータの方が解析しやすいのですが、横持ちで記録されていることも多いので、縦持ちへの変換が求められる場面は多いと思います。
下記の表は、各工場のにおける月ごとの不良品の個数をまとめたものです。表1は横持ちのデータ、表2は縦持ちのデータです。
表1. 横持ちのデータの例
工場 | 2019/1 | 2019/2 | 2019/3 |
A工場 | 82 | 69 | 53 |
B工場 | 17 | 66 | 77 |
C工場 | 58 | 26 | 41 |
表2. 縦持ちのデータの例
工場 | 年月 | 不良品数 |
A工場 | 2019/1 | 82 |
A工場 | 2019/2 | 69 |
A工場 | 2019/3 | 53 |
B工場 | 2019/1 | 17 |
B工場 | 2019/2 | 66 |
B工場 | 2019/3 | 77 |
C工場 | 2019/1 | 58 |
C工場 | 2019/2 | 26 |
C工場 | 2019/3 | 41 |
縦持ちのデータは整然データ(tidy data)と呼ばれ、 ①個々の値が1つのセルをなす、②個々の変数が1つの列をなす、③個々の観測が1つの行をなす、④個々の観測ユニットの類型が1つの表をなす、の4条件を満たす表型のデータのことです。
この操作のように、データを解析しやすいように加工することも必要なので、プログラミングの効率を上げるためにも、基本的な文法を覚えておく必要があります。
みっちり取り組めば1か月程度で、基本文法と関連ライブラリを一通りマスターできると思います。
Step2. 先輩について前処理をお手伝い出来るようになる
データ分析業務の8割を占め、かつ必要不可欠なプロセスは「データの前処理」です。機械学習をやるにしても、データの前処理は必須のプロセスです。
データの前処理と言っても様々な処理があり、前に述べた縦持ちデータへの変換も前処理ですし、データの抽出のようなデータの構造を対象とした処理や、正規化のようなデータの内容を対象とした処理なども該当します。
分析したいデータは、そのままでは解析できない「汚いデータ」であるのが常なので、データサイエンティストはきれいなデータが溜まるのを待つのではなく、汚いデータを分析可能な状態に加工し、そこから成果を出すことが求められます。
データの前処理は、データ分析の専門知識はそれほど必要ではなく、STEP1で習得した基本的な文法を駆使すればよいので、何もわかっていない状態で、まず食らいつける仕事は前処理の作業と言えます。
また、前処理というのは、このデータをこの形にする、といった目的があり、細かい作業に分けることができるので、この作業を通して、先輩のデータ処理に関する考え方を盗んでいきます。
【前処理の例】
・データを横持ちから縦持ちに変換する方法
・データを抽出、集約、結合する方法
・カテゴリカルデータはこうやって処理するのか
・数値データは正規化する必要があるのか
・外れ値をどう扱うか
・欠損値の補完方法
前処理が解析結果を大きく左右するので、地味で地道な作業ですが、焦らずに前処理のテクニックを学んでください。
色々な処理をマスターする必要があるので、3か月はトレーニングしたいところです。
Step3. アルゴリズム各種の特徴を理解して、目的別に使用出来るようになる
さて、STEP2でデータの前処理をマスターしたら、いよいよデータの解析に入っていきます。
データを解析するにあたっては、当然、データ解析の目的があり、解析のアウトプットのイメージがあるはずです。
データを解析するにあたっては、当然、データ解析の目的があり、解析のアウトプットのイメージがあるはずです。
したがって、解析の目的に応じて、適切なアルゴリズム(解析手法)を選択できる必要があります。
もし、データ解析の目的が精度よく予測することであれば、ディープラーニングやニューラルネットワークと言った、ブラックボックス性が高いものの予測精度の高いアルゴリズムを用いるべきですし、なぜその予測をしたのかの説明が求められる解析が目的の場合は、正則化回帰のような、ホワイトボックス性の高いアルゴリズムを選択する必要があります。
ここで、ブラックボックス性が高いアルゴリズムとは、結果をどんなふうに考えて出してきたのかが、分からないアルゴリズムのことです。
どの特徴量が予測に重要で、どのように結果に効いているのかは分からないものの、とりあえず精度の高い結果を出してくれる、というイメージです。
画像認識は、ブラックボックス性が高くても問題ないことが多いので、予測精度の高いディープラーニングがよく使われることになります。
一方、なぜその結果を出したのかが、ある程度見えてほしいこともあります。
例えば、あなたが病院にかかった場合を想像してみてください。
医者にレントゲン写真を見せられながら、「レントゲンを見ると、大動脈に約8mmの塊があり、放置しておくと破裂する恐れがあるので、手術しましょう。」と言われたら、きっと納得して手術できるでしょう。
しかし、もし医者から「なぜかは分かりませんが、人工知能が手術が必要と言っているので、手術しましょう。」と言われたら、簡単には「はい、わかりました。」とは言えないと思います。きっと、「なぜ手術が必要なのですか?」と問いたくなるはずです。
このような場面では、どのようにその結果を導き出したのかが見える、ホワイトボックス性の高いアルゴリズムが求められるのです。
このように、どんな場面でもとにかく予測精度の高いアルゴリズムを採用するのではなく、目的に応じたアルゴリズムの選択が必要となるわけです。
データ解析に使えるアルゴリズムは非常にたくさんありますが、それぞれのアルゴリズムの特徴を理解し、適切に使い分けることが、データサイエンティストには求められます。
色々なアルゴリズムでデータを解析して自分のものにする必要があるので、3か月は取り組みたいところです。
Step4. アルゴリズム適用結果の解釈をして、次のアクションについて提案できるようになる
データサイエンティストは、データ解析だけできればよいというものではありません。ビジネスに貢献する成果を出すことが求められますので、解析結果を基に、成果につなげるにはどうすればよいか、という次のアクションの提案もできることが求められます。
例えば、クライアントの要望通り、広告最適化のアルゴリズムを作成したとして、精度75%のアルゴリズムができました。この精度は良い結果と言えるのでしょうか、悪い結果なのでしょうか。
悪い場合には、どうすれば改善することができるのでしょうか。
この場合、データ解析の目的は「意思決定の援助」です。したがって、データの解析結果を使って依頼者が意思決定できるよう、データサイエンティストの立場から何らかの提案をする必要があります。
先ほどの例でしたら、精度75%があまりよいとは言えない場合、精度が悪かったのはなぜか、精度を上げようとしたら、どんな特徴量やデータが必要か、などの見解も報告する必要があります。
ただ単にデータを解析して、「結果は〇〇でした、あとはよろしくお願いします。」では、データサイエンティストとして不十分です。
アルゴリズムを作成した後の、結果の解釈こそが最も重要なステップになります。データ解析の結果から、依頼者にどんな価値を与えるかを常に考えて取り組んでください。
解析結果を基に、依頼者に対して的確な提案をできるようになるには、最低でも半年は場数を踏みたいところです。
以上のように、データの前処理から、解析結果を基にした提案までできて、ようやくデータサイエンティストとして独り立ちできた、と言えるでしょう。
あとは、場数を踏んで様々なデータに触れながら、データサイエンティストとしての経験値を蓄積してください。
まとめ
データサイエンティストとして、独り立ちするためのプロセスを見てきました。しっかり取り組めば1年程度でスタートラインには立てると思いますが、独り立ちするには、知識やスキルだけでなく、様々なデータに触れて考える経験も不可欠です。
うわべだけの理解では、依頼者と対等に話すことは難しいので、色々なデータを解析して結果を解釈して、データサイエンティストしてのスキルアップに努めてください。