第327話|6ヶ月間で初心者がデータサイエンティストになるためのロードマップ例

第327話|6ヶ月間で初心者がデータサイエンティストになるためのロードマップ例

データサイエンティスト機械学習エンジニアなどの社会的需要が高まっています。

とは言え、急にタケノコのようにニョキニョキ増えることはありません。

通常は、最低でも実務経験を積みながら2,3年は必要でしょう。

その後、センスの有無や適性の有無が明らかになってきます。

とは言え、そんなに待っていられない! ということもあろうかと思います。

実務経験を一旦は脇に置いておいて、急造するなら、どのくらいの期間が必要だろうかと考えてしまいます。

考えてみると、恐らく6か月は必要ではなかろうかと感じるわけです。

今回は、「6ヶ月間で初心者がデータサイエンティストになるためのロードマップ例」というお話しをします。

最低限必要な基礎スキル

実務経験を一旦は脇に置いておいて、急造するなら、どのような知識やスキルが必要だろうかと考えてみました。

例えば、以下です。

  • 1カ月目:数理統計学および線形代数の基礎固め
  • 2カ月目:プログラミング(Python、R、SQLなど)の基礎体力作り
  • 3カ月目:ツールを使用したデータ抽出や探索的データ分析
  • 4カ月目:機械学習(伝統的な多変量解析手法などを含む)の最低限の知識獲得と実践
  • 5カ月目:深層学習(主にニューラルネットワーク部分)の最低限の知識獲得と実践
  • 6カ月目:ビジネス問題への適応練習

1カ月目:数理統計学および線形代数の基礎固め

数理統計学(記述統計や推測統計、多変量解析など)の知識は、データサイエンスや機械学習などにとって必要不可欠です。

例えば、平均や標準偏差、確率分布、仮説検定、回帰分析、因子分析などです。

線形代数のベクトルや行列、固有値などの知識も非常に重要です。

数理統計学線形代数の最低限の知識がないと、探索的データ分析も機械学習も深層学習も非常に困難なものになります。

2カ月目:プログラミング(Python、R、SQLなど)の基礎体力作り

データサイエンスや機械学習などを実施するには、少なくとも 1つのプログラミング言語に慣れている必要があります。

RPythonのどちらか1つで十分かと思います。もちろん、両方使いこなせるのがベストです。

どちらも、データサイエンスや機械学習などで利用するライブラリーが豊富だからです。

忘れていけないのが1つあります。SQLです。

データ操作でSQLを使うことが多々ありますので、SQLも習得した方がいいでしょう。

RPython上でSQLを記述し利用することもありますし、DBeaverなどのデータベース操作ツール(SQL クライアントソフト)上でSQLを記述し利用することもあります。

探索的データ分析や機械学習などで利用するデータセットを準備する上で必要となります。

3カ月目:ツールを使用したデータ抽出や探索的データ分析

プログラミングスキル数理統計学および線形代数の知識が身に着けたら、次にすべきはデータ抽出探索的データ分析です。

Pythonであれば、例えばデータ操作用のNumPypandasVaex、データ可視化用のMatplotlibseabornBokeh、さらに統計解析を実施できるstatsmodelsScikit-learnなどのライブラリーを駆使すれば十分でしょう。

データ分析用のNumPypandasVaexで、データ操作や集計などを実施していきます。平均値などの統計量を求めたりもします。

集計結果や統計量などの数値を見るのもいいですが、それをMatplotlibseabornBokehなどで視覚化するとより探索的データ分析がより進みます。

さらに、仮説検定や回帰分析、因子分析などを実施するとき、statsmodelsScikit-learnなどのライブラリーを使うと簡単に実施できます。

そもそもデータベースから必要なデータを抽出したり、複数のデータテーブルがあるときにデータテーブル同士をつなげ操作したりするときに、SQLを使います。

PythonRからデータベースに接続しSQLで操作するのもいいですし、データベース操作ツール(SQL クライアントソフト)上でSQLを記述し利用するのもいいでしょう。

実務的には、データベース操作ツール(SQL クライアントソフト)上でSQLを駆使しPythonRなどで扱いやすいようにある程度加工しておいて、それをPythonRなどから接続し、実施する分析内容に応じてPython上でSQLを記述し使うことが多いのではないかと思います。

4カ月目:機械学習の最低限の知識獲得と実践

探索的データ分析ができるようになったら、機械学習の世界に飛び込みましょう。多変量解析などの伝統的な数理モデルを含みます。

2種類の機械学習を取り急ぎ学ぶといいでしょう。

  • 教師あり学習
  • 教師なし学習

教師あり学習とは、あるラベル付けられた変数(教師データ)を予測する数理モデルを学習することです。

売上や顧客離反の予測することができるモデルを構築します。

多変量解析で言うところの回帰分析やロジスティック回帰分析などが該当します。

実務で最も利用頻度の多い、機械学習でしょう。

教師なし学習とは、ラベル付けされた変数(教師データ)がなく、データのパターンや変数間の関係を発見しようとするタイプの機械学習です。

似たような顧客をグルーピングしたり、似たような変動をする変数を1つにまとめたりします。

多変量解析で言うところのクラスター分析や因子分析などが該当します。

機械学習の諸手法は、より高度な探索的データ分析でも利用されます。

例えば、顧客の売上データをもとに、クラスター分析(教師なし学習)を実施することで顧客をグルーピングし、各グループの特徴を洗い出すためにプロファイリング(教師あり学習)を実施する、といった探索的データ分析を実施することがあります。

さらに、ここでベイズモデリングも簡単に扱えるぐらいのスキルを習得することをお勧めします。

5カ月目:深層学習の最低限の知識獲得と実践

機械学習の1つに深層学習(ディープラーニング)というものがあります。

深層学習は、数値データだけでなく画像や音声認識、自然言語などの多様なデータに対し対応可能な機械学習です。

近年、シングルモーダルなAI(深層学習)からマルチモーダルなAI(深層学習)に進化を遂げようとしています。

シングルモーダルなAI(深層学習)とは、データの種類が数値データのみ、画像データのみといった形で、1種類しか対応しないAIです。

一方、マルチモーダルなAI(深層学習)とは、数値データ・画像データ・自然言語データ・音声データなどすべてをチャンポンしてもOKという感じのAIです。

とは言え、基本はシングルモーダルなAI(深層学習)ですし、巨大なAIを創造するのではなく、身近な実務で活用するだけであれば、シングルモーダルで十分でしょう。

要は、このシングルモーダルAIを実現する深層学習を習得することから始めましょう。

取り急ぎ、Tensorflowなどの深層学習を実施できるツールを使用してそれらを構築およびトレーニングする方法について学べば十分です。

多くの場合、RPythonからTensorflowなどの深層学習を実施できるツールを使用することができます。

6カ月目:ビジネス問題への適応練習

深層学習を含んだ機械学習を学んだら、身の回りの課題に対しに身に着けたスキルを適用してみましょう。

幾つかやり方があります。

  • 1つ目:すでに誰かがすでに機械学習で構築したモデルと同じようなものを作ったり、より高度なものを作ったりすることです。
  • 2つ目:予測や異常検知などを実施した方がいいが、まだ誰もそのためのモデルを構築していないビジネス課題などを探し出し、一から機械学習でモデルを構築することです。
  • 3つ目:現場などの「お困りごと」(問題)をベースに、ビジネス課題をデータサイエンスで解ける課題に昇華し、データの準備から探索データ分析、機械学習系のモデルの構築などを一から実施することです。

1つ目が最も簡単で、3つ目が最も難しいでしょう。

身近に1つ目に相当する題材がない場合には、Kaggleなどで公開されているデータに対しチャレンジするのがいいでしょう。

3つ目は、データをいかに現場課題の解決につなげるかというデータ活用ストーリーを描くところから始めた方がいいでしょう。

ちなみに、1つ目も2つ目のやり方も、データ活用ストーリーを描いてみてください。そうすると、どのようにデータが現場の課題解決に役立つのか見えてきます。

今回のまとめ

今回は、「6ヶ月間で初心者がデータサイエンティストになるためのロードマップ例」というお話しをしました。

データサイエンティスト機械学習エンジニアなどの社会的需要が高まっています。

とは言え、急にタケノコのようにニョキニョキ増えることはありません。

通常は、最低でも実務経験を積みながら2,3年は必要でしょう。

その後、センスの有無や適性の有無が明らかになってきます。

とは言え、そんなに待っていられない! ということもあろうかと思います。

実務経験を一旦は脇に置いておいて、急造するなら、どのくらいの期間が必要だろうかと考えてしまいます。

考えてみると、恐らく6か月は必要ではなかろうかと感じるわけです。

以下は、6か月の流れです。

  • 1カ月目:数理統計学および線形代数の基礎固め
  • 2カ月目:プログラミング(Python、R、SQLなど)の基礎体力作り
  • 3カ月目:ツールを使用したデータ抽出や探索的データ分析
  • 4カ月目:機械学習(伝統的な多変量解析手法などを含む)の最低限の知識獲得と実践
  • 5カ月目:深層学習(主にニューラルネットワーク部分)の最低限の知識獲得と実践
  • 6カ月目:ビジネス問題への適応練習

もちろん、並行して進めてもいいでしょう。

例えば、1カ月目と2カ月目の内容は、どちらも基礎固めですので、並行して進めても問題なさそうです。

一部は飛ばして、一部を長めにとってもいいかもしれません。

例えば、4カ月目と5カ月目の内容は、機械学習によるモデル構築です。

5カ月目は高度になります。4カ月目も色々な手法が登場し混乱するかもしれません。5カ月目の深層学習をなくし、4カ月目の機械学習を2カ月間学ぶのもいいでしょう。