データサイエンティストや機械学習エンジニアなどの社会的需要が高まっています。社会的な需要にこたえる人財となると、最低でも実務経験を積みながら2、3年は必要でしょう。その後、センスの有無や適性の有無が明らかになってきます。とは言え、そんなに待っていられない! ということもあろうかと思います。実務経験を一旦は脇に置いておいて、人財育成するなら、どのくらいの期間が必要だろうかと考えてしまいます。考えてみると、恐らく6か月は必要ではなかろうかと感じるわけです。今回は「6ヶ月間で初心者がデータサイエンティストになるためのロードマップ例」というお話しをします。
1. 最低限必要な基礎スキル
実務経験を一旦は脇に置いておいて、人財育成するなら、どのような知識やスキルが必要だろうかと考えてみました。例えば、以下です。
- 1カ月目:数理統計学および線形代数の基礎固め
- 2カ月目:プログラミング(Python、R、SQLなど)の基礎体力作り
- 3カ月目:ツールを使用したデータ抽出や探索的データ分析
- 4カ月目:機械学習(伝統的な多変量解析手法などを含む)の最低限の知識獲得と実践
- 5カ月目:深層学習(主にニューラルネットワーク部分)の最低限の知識獲得と実践
- 6カ月目:ビジネス問題への適応練習
2. 【1カ月目】数理統計学および線形代数の基礎固め
数理統計学(記述統計や推測統計、多変量解析など)の知識は、データサイエンスや機械学習などにとって必要不可欠です。例えば、平均や標準偏差、確率分布、仮説検定、回帰分析、因子分析などです。線形代数のベクトルや行列、固有値などの知識も非常に重要です。数理統計学と線形代数の最低限の知識がないと、探索的データ分析も機械学習も深層学習も非常に困難なものになります。
3. 【2カ月目】プログラミング(Python、R、SQLなど)の基礎体力作り
データサイエンスや機械学習などを実施するには、少なくとも 1つのプログラミング言語に慣れている必要があります。RかPythonのどちらか1つで十分かと思います。もちろん、両方使いこなせるのがベストです。どちらも、データサイエンスや機械学習などで利用するライブラリーが豊富だからです。忘れていけないのが1つあります。SQLです。データ操作でSQLを使うことが多々ありますので、SQLも習得した方がいいでしょう。
RやPython上でSQLを記述し利用することもありますし、DBeaverなどのデータベース操作ツール(SQL クライアントソフト)上でSQLを記述し利用することもあります。探索的データ分析や機械学習などで利用するデータセットを準備する上で必要となります。
4. 【3カ月目】ツールを使用したデータ抽出や探索的データ分析
プログラミングスキルと数理統計学および線形代数の知識が身に着けたら、次にすべきはデータ抽出や探索的データ分析です。Pythonであれば、例えばデータ操作用のNumPy、pandas、Vaex、データ可視化用のMatplotlib、seaborn、Bokeh、さらに統計解析を実施できるstatsmodelsやScikit-learnなどのライブラリーを駆使すれば十分でしょう。データ分析用のNumPy、pandas、Vaexで、データ操作や集計などを実施していきます。平均値などの統計量を求めたりもします。
集計結果や統計量などの数値を見るのもいいですが、それをMatplotlib、seaborn、Bokehなどで視覚化するとより探索的データ分析がより進みます。さらに、仮説検定や回帰分析、因子分析などを実施するとき、atsmodelsやScikit-learnなどのライブラリーを使うと簡単に実施できます。そもそもデータベースから必要なデータを抽出したり、複数のデータテーブルがあるときにデータテーブル同士をつなげ操作したりするときに、SQLを使います。
PythonやRからデータベースに接続しSQLで操作するのもいいですし、データベース操作ツール(SQL クライアントソフト)上でSQLを記述し利用するのもいいでしょう。実務的には、データベース操作ツール(SQL クライアントソフト)上でSQLを駆使しPythonやRなどで扱いやすいようにある程度加工しておいて、それをPythonやRなどから接続し、実施する分析内容に応じてPythonやR上でSQLを記述し使うことが多いのではないかと思います。
5. 【4カ月目】機械学習の最低限の知識獲得と実践
探索的データ分析ができるようになったら、機械学習の世界に飛び込みましょう。多変量解析などの伝統的な数理モデルを含みます。2種類の機械学習を取り急ぎ学ぶといいでしょう。
- 教師あり学習
- 教師なし学習
教師あり学習とは、あるラベル付けられた変数(教師データ)を予測する数理モデルを学習することです。売上や顧客離反の予測することができるモデルを構築します。多変量解析で言うところの回帰分析やロジスティック回帰分析などが該当します。実務で最も利用頻度の多い、機械学習でしょう。
教師なし学習とは、ラベル付けされた変数(教師データ)がなく、データのパターンや変数間の関係を発見しようとするタイプの機械学習です。似たような顧客をグルーピングしたり、似たような変動をする変数を1つにまとめたりします。多変量解析で言うところのクラスター分析や因子分析などが該当します。機械学習の諸手法は、より高度な探索的データ分析でも利用されます。
例えば、顧客の売上データをもとに、クラスター分析(教師なし学習)を実施することで顧客をグルーピングし、各グループの特徴を洗い出すためにプロファイリング(教師あり学習)を実施する、といった探索的データ分析を実施することがあります。さらに、ここでベイズモデリングも簡単に扱えるぐらいのスキルを習得することをお勧めします。
6. 【5カ月目】深層学習の最低限の知識獲得と実践
機械学習の1つに深層学習(ディープラーニング)というものがあります。深層学習は、数値データだけでなく画像や音声認識、自然言語などの多様なデータに対し対応可能な機械学習です。近年、シングルモーダルなAI(深層学習)からマルチモーダルなAI(深層学習)に進化を遂げようとしています。シングルモーダルなAI(深層学習)とは、データの種類が数値データのみ、画像データのみといった形で、1種類しか対応しないAIです。
一方、マルチモーダルなAI(深層学習)とは、数値データ・画像データ・自然言語データ・音声データなどすべてをチャンポンしてもOKという感じのAIです。とは言え、基本はシングルモーダルなAI(深層学習)ですし、巨大なAIを創造するのではなく、身近な実務で活用するだけであれば、シングルモーダルで十分でしょう。要は、このシングルモーダルAIを実現する深層学習を習得することから始めましょう。
取り急ぎ、Tensorflowなどの深層学習を実施できるツールを使用してそれらを構築およびトレーニングする方法について学べば十分です。多くの場合、RやPythonからTensorflowなどの深層学習を実施できるツールを使用することができます。
7. 【6カ月目】ビジネス問題への適応練習
深層学習を含んだ機械学習を学んだら、身の回りの課題に対しに身に着けたスキルを適用してみましょう。幾つかやり方があります。
- 1つ目:すでに誰かがすでに機械学習で構築したモデルと同じようなものを作ったり、より高度なものを作ったりすることです。
- 2つ目:予測や異常検知などを実施した方がいいが、まだ誰もそのためのモデルを構築していないビジネス課題などを探し出し、一...
1つ目が最も簡単で、3つ目が最も難しいでしょう。
身近に1つ目に相当する題材がない場合には、Kaggleなどで公開されているデータに対しチャレンジするのがいいでしょう。
3つ目は、データをいかに現場課題の解決につなげるかというデータ活用ストーリーを描くところから始めた方がいいでしょう。
ちなみに、1つ目も2つ目のやり方も、データ活用ストーリーを描いてみてください。そうすると、どのようにデータが現場の課題解決に役立つのか見えてきます。