本稿では、これからデータサイエンティストに就職/転職する人に求められるスキルについて、様々な視点から扱いたいと思います。
これからのデータサイエンティストに求められるスキルとは?
企業の求人要項を見ると、データサイエンス職には非常に多様なスキルが求められることが分かります。また、主としてAIアルゴリズムの開発などに携わる「エンジニアよりのデータサイエンティスト」、主として意思決定を支援するダッシュボード設計やレポーティングなどに携わる「データアナリストよりのデータサイエンティスト」、統計解析や実験データ解析などに主として携わる「統計家よりのデータサイエンティスト」など、主業務に応じても求められるスキルにかなりバラツキがあります。
そこではここでは、主業務がどうあれ「データサイエンティスト」の名称での求人におおよそ共通して求められるスキルを「数学・統計学・機械学習の理論知識」「プログラミングなどITスキル」「ソフトスキル」という3つのカテゴリに分けて紹介します。
数学・統計学・機械学習の理論知識
数学
機械学習モデルや統計モデルを使う必要のあるデータサイエンティストにとって、そのようなモデルを理解/記述するための最低限の数理知識は必須となります。エントリーレベルでも最低限の高校数学の知識は求められるでしょう。大学院以上の数学が求められるケースは稀ですが、学部1、2年の線形代数と微積分については「やれば思い出せる」程度に把握しておく必要があります。
統計学
統計学については、エントリーレベルでも統計検定3級(多くは2級)程度の基礎知識は求められる場合が多いです。具体的には代表値(平均値・中央値・最頻値)や散布度(分散・標準偏差)などの基礎的な統計用語を用いてデータを語る準備ができていることが望まれます。そのほか、基本的な可視化手法の使い分けや注意点なども押さえている必要があります。後ほど述べますが、非データサイエンス職とのコミュニケーションや意思決定に貢献するような分かりやすいアウトプットの方法はビジネスの現場では技術的知識の何倍も重視されること場合があります。
参考 統計検定(https://www.toukei-kentei.jp/)
機械学習
機械学習の領域は広大ですが、オーソドックスな手法については一通り概念的に理解しておくことが求められます(数学的に厳密に理解する必要は多くの場合ありません。)手法名を聞いた時に、それが予測モデルなのか分類モデルなのか、他のモデルと比べた特徴は何か、一言で説明するとどんなロジックなのか、などを答えられるくらいには押さえておく必要があるでしょう。また、各手法についてのアウトプット・レポートの読み方・伝え方が大切になるのは、統計学と同様です。
プログラミングなどITスキル
Python
データサイエンス領域で仕事をするにはプログラミング言語Pythonは欠かすことができません。Pythonが未経験だとしたら、少なくともオンライン・コンテンツなどで良いので経験を積んでおくことが望まれます。実務経験がなかったとしても例えばkaggleなどのデータ分析コンペをPythonで参加し、優秀なスコアをおさめるなど実務を補完するやり方は色々あるでしょう。
kaggleなどのコンペに参加することによって、予測モデル作成の流れを把握することは非常に大切ですが、実務におけるデータ解析ではモデリングの前の前処理に膨大な作業時間と負担を強いられることを覚えておきましょう( kaggleでももちろん前処理は必要ですが、実務上のデータはkaggleで使われるデータの何倍も「汚い」ケースが多々あります。) 機械学習ライブラリの使い方を覚えるよりは、まずはデータ(前)処理・データ整形の作業をマスターすることがエントリーレベルです。後者を出来ずに前者だけできてもあまり評価はされないでしょう。
SQL
データベース言語のSQLも基本文法を理解しておくことが求められます。また、SQLの使用経験は(デフォルトのExcelでは扱いきれない)大量データ処理の経験を担保するでしょう。ただし、効率的なSQLを書くテクニックが求められることは少なく、大抵の場合、ごく基本的な文法を覚えていれば良いでしょう。
R
統計解析用のプログラミング言語RもPythonほどではありませんが、使用経験が求められる場合が多いです。Rの使用経験は仮説検定や多変量解析など統計学分野の解析手法の経験を担保するものとしても見られています。よくPythonとRでどちらが必要かという質問がなされますが(Rが求められている職場では)どちらか1つがきちんとできていれば十分でしょう。一般に同じような用途で使われる言語であれば、一方の言語スキルが十分高ければ別の言語も(必要であれば)習得できるだろうと考えられます。薄く広く、よりは使える言語を1つ作りましょう。
Excel
Microsoft Excelの使用経験は、スキル以前の常識としてあえて記載されないことも多いですが、ピボットテーブルによるクロス集計などExcelを用いたベーシックな解析ができると、現場では非常に喜ばれます。PythonやRを用いた解析は、そのプログラミング言語のユーザーしか確認できない一方、Excelベースの解析はほぼ全員に確認可能だからです。
ソフトスキル(コミュニケーション能力やドメイン知識)
ここでソフトスキルと呼んでいるのは、コミュニケーション能力やリーダーシップ、ファシリテーションスキルなどの非定型スキルと、固有の業界・業種についてのドメイン知識などのことを指します。理論知識や技術知識に比べると測り難く、また時には捉え所のないスキルですが、実際には非常に重要なスキルです。技術偏重でソフトスキルを蔑ろにした人はまずどのような現場でも扱いづらく見られます。また、抽象的な理論知識ばかりを固め、いかなるドメイン知識も持たない人は(どれだけ学問的知識があっても)現場に立てない可能性が高いです。
コミュニケーション能力
データサイエンスの領域は非常に新しい分野なので、そこで使われる専門用語や考え方はデータサイエンティストやエンジニア以外の職種には(経理の用語や人事の用語が普通の社会人に根付いている程度と比べると圧倒的に)根付いていません。そのため、非データサイエンティスト職とのディスコミニュケーションの発生は多くの現場で日常茶飯事であり、膨大なコミュニケーションコストも生まれています。実際のところ、非専門家に分かりやすく専門知識の伝達ができ、スムーズなコミュニケーションを取れることは、多くの現場で理論知識やエンジニアスキル以上に価値があるスキルとみなされます。
ドメイン知識
金融・物流・小売…、あるいは営業・人事・マーケティング…など、特定業界・業種のドメイン知識があることは非常に評価されます。理由の1つは、ドメイン知識が(前の項でも非常に重要だと指摘した)非データサイエンティストとの円滑なコミュニケーションを支えるものだからです。2つ目の理由は、近年データサイエンスの適用領域は絶え間なく拡張していて(データサイエンス内での)専門分化が激しく進んでいるからです(ドメインごとにデータサイエンスがある、とも言えます。)したがって、データサイエンティストとして最低限の技術知識があれば、あとはドメイン知識の大小が評価の差を大きく分けるというような業界も多いです。逆に言えば、非エンジニア職や非分析職からのデータサイエンティスト転職が必ずしも不利にならないということです。身につけたドメイン知識を有利に生かしましょう。
マネジメント・スキル
マネジメントスキルは、前項で述べたコミュニケーション能力とドメイン知識を併せ高度化したスキルとして評価されます。特に、機械学習関連のプロダクトやAIプロダクトのマネジメント経験は、そもそも希少性が高い(経験した人ことがある人の絶対数が少ない)ため非常に重宝されるでしょう。
終わりに
少し前まで、データサイエンスはどのような現場でも有用な汎用的なスキルとして、マスコミを大きく賑やかせていました。ところが今、データサイエンスの適用領域が拡大し、データサイエンティストの働くフィールドが実際に多様化して起こったことは、データサイエンスそれ自体が多様化・専門分化して、とても汎用的なスキルとは言えないくらい統一的な定義が難しくなったということです。本稿は、そのような流れの中でも「これだけは必要だろう」と言える共通項を紹介しました。専門化が進めば進むほど、専門知識だけではなくドメイン知識やソフトスキルの重要性も増してくるという事実も押さえておきましょう。