※ 本記事にはアフィリエイトリンクが含まれています。
デジタル時代の到来に伴い、データは私たちの日常生活やビジネスにおいてますます不可欠な存在となっています。
この大量に溢れたデータで企業や組織は情報を有益な知識に変え、意思決定をより賢明にするためにデータサイエンティストやデータアナリストの専門知識を求めています。
データサイエンティストやデータアナリストになることは、単純にデータを理解するだけでなく、データを軸に企業が抱える問題を解決し、ビジネス価値を最大化もしくは新しいビジネスを創造するスキルを磨くことを意味します。
この記事では、開発職(Web開発、データパイプライン作成)、分析職(データ集計、機械学習、ディープラーニング)、コンサルティング職(顧客への週次報告とニーズヒアリングなど)を経験してきた私が、自分のキャリアを振り返りつつどのようなスキルを身に付けたら効率よく分析キャリアを歩むことが出来るのか考えてみました。
これから学生、新卒、第二新卒、異業種、新人リーダーの方でこれからデータ分析者を目指す人や教育を考えている人の助けになればいいなと思いながら書いてみます。
まず、私の中でそれぞれのデータ関連職業を言語化すると下記になりました。
データに関わる仕事としてはデータエンジニアやデータコンサルタントという仕事も存在するかと思います。
データサイエンティストになるには3つのスキルを高いレベルで身につけないといけない(と言われていた)と思うので、通常データエンジニア、データコンサルタント、データアナリストいずれかの能力を持つ人たちでチームとして業務に当たることが多いのではないでしょうか。(異論はあるかと思います。)
もちろん、データアナリストをやりながら作成した機械学習モデルをシステムに組み込んだり、顧客に分析結果を説明したりとハイブリッドな人材も少なくないと思います。
書きながら考えてみると、データコンサルタントになるにはデータエンジニアとデータアナリストの知識を浅く広く身につけていないと無理かも知れないですね 笑
けっこう基準は曖昧で自分がどのスキルに秀でているかで名乗っても良いのかも知れないですね。
また最近ではディープラーニングを使った技術を業務に取り入れるAIエンジニアという言葉も盛んになってきましたので、図の中に含めています。
ウェブやアプリエンジニアの方がそのままAIエンジニアになったり、データ分析を生業としていた方がAIモデルを作成する業務にシフトしていくといったことが考えられます。
1. 基礎的な知識としてまずはSQLを覚える
思い返してみるとデータ分析の人生で利用する機会が多かったのはSQLでした。
企業によって使っているデータベースは異なるにしろ、Oracle・MySQL・Postgresql・Hive・BigQuery・Redshiftなどいずれかをマスタすることで少なくともデータ抽出業務を遂行することは可能になると思います。
意外とSQLだけでデータ加工は複雑なものも含めて出来てしまうので、Pythonなどのプログラミングの勉強は後からでもいいかも知れません。
ただ、ここはそれぞれの会社の文化というかデータ分析の下地を作ってきた方々の「思い」が反映されることが多いので、うちはSQLはselect文によるデータ抽出しかせず、加工は基本Pythonなどでやるという場合もあるのかなと思います。
画像や動画分析がメイン業務になる場合はもしかしたら必要ない知識になるのかも知れませんが、画像や動画の保管場所のパスだけデータベースに格納されていて、必要な条件のデータソースだけ抽出するみたいなことはあると考えます。
SQLのおすすめの勉強法
必要な知識としては、今で言うとOracle Database SQL(1Z0-071-JPN)の試験が合格できるレベルでしょうか。
SQLを使用する開発者/データアナリスト向けと分かりやすく書いてくれていますね 笑
ちなみに私は配信終了になってしまっている11g SQL基礎I (1Z0-051-JPN) の試験を当時勉強しました。
他にも似たような試験(配信終了済み)としては下記があります。
- Bronze SQL基礎I (1Z0-017-JPN)
- 12c SQL基礎 (1Z0-061-JPN)
勉強方法として、参考書と過去問題集を買って勉強するという王道でも良いのですが、個人的には時間がかかるなという印象を持ちました。
おすすめはORACLE MASTER Bronze SQL基礎I 講座のようなウェブサイトでSQLの概要を掴んだ後に、問題をウェブでランダムで出題してくれるようなサイトでひたすら答えを暗記できるほど解くことで私は何とか1週間で試験を合格することができました。
ウェブ上で試験問題を解けるサイトとして昔は「めざせオラクルマスター」というサイトが存在していたのですが、いまは閉鎖してしまったようです。そのため、Ping-tというサイトが今はいいのではないでしょうか。(ユーザー登録は必要ですが、無料で使えると思います。
「Pint-t」も「めざせオラクルマスター」と併用して使っていた記憶がありますし、試験合格の体験談も豊富に載っているので勉強の仕方など参考になるかも知れません。
2. SQLの次はMicrosfot Excelの使い方を身につける
SQLでデータ抽出や加工をした後はエクセルでデータの集計や可視化を出来るようになるといいかと思います。
今の学生だったらエクセルを使えるのは当たり前なのでしょうか?
必要最低限、下記はエクセルで使えるようになっておけば最低限のデータ集計業務にはあまり困らないのではないでしょうか。
- ピボットテーブル機能
- SUM()、AVERAGE()、MEDIAN()関数
- COUNTIF()関数
- グラフの描画
- VLOOKUP()関数
- IFERROR()関数
VBAまでは私は仕事で使ったことはないです。(使っている人はもちろん周りでいました。)
3. パワーポイントで報告資料を作成できるようになる
学生時代にプレゼン資料の作成が得意だと自信があった方は、社会人になったら直属の先輩や上司に指摘や訂正をされる経験はありませんでしたか?
会社によって報告はワードやエクセルでという場合もあるかと思いますが、私はパワーポイントで毎週お客さま向けに分析結果の説明資料を書いていました。
文字の大きさや利用するフォント、図形の位置など細かく計算し「わかりやすい資料」を作成するため日々精進していた記憶があります。
そんな私の救世主が下記スライドシェアの資料です。
「一生使える 見やすい資料のデザイン入門」というタイトルで書籍化もされているのでぜひ一度読んでみてください。Amazon unlimitedでも読めるようです (23年11月18日現在)。
その他にも「人はZの動きで資料を読む」であったり、「1スライド1メッセージ」、「オーディエンスに合わせたフォントサイズ」、「なるべく絵で説明する」など色々気にしながら資料を作成していました。
正直資料作成に関しては終わりはないと思うぐらい探求できる分野だと思います。
どれくらいまで習熟すればいいのかと考えてみると、目安としては説明する相手にとって見た目に違和感がないような資料を作成できるくらいにはなっておいた方がいいと思います。
(そうでないと分析結果の内容が頭に入る前に、資料の体裁で注意をそらされてしまうので)
4. 勤め先に合わせて分析ツールやBIツールを使えるようになる
会社によってはSPSS Modeler・SAS・RapidMinerといった分析に特化したツールやTableau・PowerBI・Looker・Qlik SenseといったBIツールを使える環境が整っているので、実はSQLやエクセルが使えなくても分析や集計業務に困ることはないのかも知れません。
むしろその会社で共通言語として使われているツールを使えるようにならないと即戦力になることは難しいでしょう。
実は私はSPSS Modelerというツールを一番初めに覚えました。
分析ツールでもBIツールでもSQLを直接書いてデータ抽出するような機能はあるはずなので、やっぱりSQLは覚えておいて損はないのではないかと個人的には思います。
私の後輩たちはTableauやQlik Senseの学習を中心にデータ分析キャリアを始めました。
周りでもBIツールでのダッシュボード構築によるインサイトの作成が主業務な方は多々いらっしゃいます。
集計や報告もBIツールで出来ますし、実はいまはBIツールを学ぶことの方が重要なのかも知れません。
ただし、すべての会社に各種ツールがインストールされ自由に使える環境が整備されているわけでもないので、Tableauなどのスペシャリストになってこの先ずっとこれで食っていくという人でもない限りは、最初のうちは広く汎用的な知識(SQLとPython)を身につけた方が選択肢が広がる気がします。
自身のキャリアプランや戦略をよく考えて行動する必要がありますね。
5. データの解釈の方法
SQLなどで集計することは可能になっても、集計したデータを解釈することが出来ないとデータアナリストとしての業務をこなすことは難しいかも知れません。
「分析者のためのデータ解釈学入門 データの本質をとらえる技術」という本は私が10年かけて現場で学んだことがすべて凝縮されていました 笑
さすが良書だけあって、Amazonでベストセラー1位になっていますね。下記本の説明文から抜粋です。
本書では,各種分析手法をただ網羅するだけでなく,データのばらつきやバイアスに関する基礎知識,データにさまざまな偏りを生じさせる行動心理学,サンプリングの方法と理論,データハンドリングのノウハウ,各種分析の考え方,データの解釈における認知バイアスや数理モデリングのポイント,システム運用時に発生する問題など,非常に幅広い視点でデータ分析者が知っておかなければならない知識を整理し,平易に解説することを目指しました。引用: https://www.amazon.co.jp/dp/4802612907
データを扱う職業に携わろうと思っている人は全員マストで読んでおくべき本だと思います。
6. Pythonの知識
なんだかんだ言ってデータ関連業務に携わる方はPythonの知識があったほうがいいのではないでしょうか?
SPSS Modelerなどの分析ツールなどでもPythonのコードを拡張ノードを使って記載することがありますし、機械学習やAIアルゴリズムの実行もクラウドの機能そのまま使わない限りほぼPythonコードをいじることになるのではないかと思います。
色々書籍を見ましたが、下記2冊がおすすめです。
1.「独習Python」
ある程度プログラミングの知識がある方は独習Pythonがおすすめです。けっこう分厚く重いので電子書籍に抵抗がない方はKindleやKoboを使って勉強するのがいいと思います。
意外と使うことがあるPythonでファイル操作をする内容まで載っているので幅広い知識が学べるなという感想を持ちました。
独習シリーズの強みである、手を動かしておぼえる(書いて実行して結果を確認する)
特長を生かし、Pythonの基本的な言語仕様から、標準ライブラリ、ユーザー定義関数、
オブジェクト指向構文、モジュールまで、サンプルプログラムを例示しながら
詳細かつ丁寧に解説します。
引用: https://www.amazon.co.jp/dp/4798163643
あまりプログラミングをやったことない方はこちらの本を併用するのがおすすめです。
分かりやすいように必要最低限のことを図と共に説明してくれています。
Yolov8を使った物体検知の方法も紹介されているのでAIもやってみたい方にはおすすめです。
本ブログでもYolov8を紹介してますので気になる方はぜひ見てみてください。
7. 自分が高めたい専門分野を学んでいく
ここまでの知識を身につけていれば少なくともデータ分析を仕事にしていく土台は出来つつあるのではないでしょうか。
ここから先は自分の得意分野や興味のある分野の知識を伸ばしていくフェーズになっていくのかと思います。
データエンジニアになるには
例えば、データエンジニアになるにはインフラやシステム設計の知識の学習を進めた方が効率が良さそうです。
・データエンジニアの業務例:
- 効率的なデータの収集、整理、加工、管理
- データ分析や機械学習に必要なデータの作成、データアナリストが作成したモデルのシステムへ組み込み
- データ分析基盤や情報インフラを設計、構築、運用
- データベースやインフラ、クラウドサービス、分散処理フレームワークなどの技術
- Pythonなどのプログラミング言語
Linuxやシェルスクリプトなどを学ぶ必要があります。
こちらは本を読んで学ぶより、実際にサーバーを建ててlsコマンドやcdコマンドなどを使ってみたり、シェルファイルを書いて例えばコマンドでフォルダ内のファイルを一括リネームするスクリプトを書くなど遊びながら覚えた方が習熟が早いかも知れません。
手っ取り早くプログラミングスクールに通うという方法もあります。
データエンジニア向けのおすすめの本のご紹介:
オブジェクト指向についてはこの本を読めばマスタ出来るかと思います。
今までどうやっても理解できなかったのが、この本ではRPG風に見立てて丁寧に説明してくれているのでとても分かりやすかったです。
学生のときに出会いたかった、そんな名著です。
・リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」
プログラミングを学んでいくうちにとりあえず書くことによって動くものを作ることは出来るようになると思います。
ただ保守性を考えたコーディングや現場で通用する変数の命名方法などは、(少なくとも私は)学生時代の授業では学ぶことはありませんでした。
そんな私が社会人になってウェブ開発の業務にあたるようになってから先輩に読んだ方がいいと勧められたのがリーダブルコードでした。
この本を読んでからコーディングするときに色々考えてシステムを作るようになりました。(今までも考えてないわけではなかったが、単純にどうしたらいいのか分からなかったというのが正しいかも)
また最近読んだ中では「良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方」や「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」もおすすめです。
データコンサルタントになるには
データコンサルタントであれば、名前の通りコンサルティングや分析対象の業界に関する勉強でしょうか。
顧客や自社のニーズを汲み取り最適なデータソリューションを提供を目指します。
・データコンサルタントの業務例:
- クライアントの課題やニーズを把握し、最適なデータ活用の方策を提案する
- データ分析に必要なシステムやツールの選定や導入、データレイク作成のためのアーキテクチャの検討など
- データ分析の結果をもとに、クライアントに対して分かりやすくレポートやプレゼンテーションを行い、課題解決や改善策の実行支援を行う
- データ分析に関する最新の技術やトレンドを常にキャッチアップし、自身のスキルや知識を向上させる
- マーケティング、統計学、時系列分析、機械学習、行動心理学などの幅広い知識
データコンサルタント向けのおすすめの本のご紹介:
・コンサル一年目が学ぶこと 新人・就活生からベテラン社員まで一生役立つ究極のベーシックスキル30選
・図解 コンサル一年目が学ぶこと
文章で学びたいか、図解で学びたいかで選ぶと良いと思います。たまたま本屋で見つけたのですが、コンサルのノウハウが分かりやすく書かれているのでおすすめです。
Amazonのプライム会員だったら電子書籍版が23/11/18現在無料で読めるようです。これもなんとベストセラー1位になっているようでした 笑
データアナリストになるには
データアナリストはデータコンサルタントと近いが、より分析の実業務寄りの知識が必要になります。
(データアナリストを経験した人が実務を離れデータコンサルタントになるのかも知れませんが)
中にはデータコンサルタントを兼務しているデータアナリストの方も多くいらっしゃると思います。
・データアナリストの業務例:
- ビジネス上の課題の把握、データの収集・前処理・分析・モデル構築、分析結果のレポートや提案など
- マーケティング、統計学、時系列分析、機械学習、行動心理学などの実用レベルの知識
- 分析ツールをメインで使うのであれば必要ないが、Pythonの知識はあった方がいい (pandasでデータ加工、scikit-learnで機械学習など)
学習範囲が幅広いので、まずはどのドメインの知識が必要になるのか優先度をつけていく必要があると思います。
例えば、マーケティングだったら統計学や市場分析の分析方法を最優先で勉強をし、予測モデル作成が主業務になるようだったら時系列分析、リコメンドなどの推薦システムだったら機械学習といった感じでしょうか。
モデルを作成するだけではなく、モデルの良し悪しをどう判断するかという知識も重要だと思うので、各種統計検定やABテスト手法なども勉強しておいた方がいいかも知れません。
データアナリスト向けのおすすめの本のご紹介:
正直たくさん紹介したい本はあるのですが、
・データ分析のための数理モデル入門 本質をとらえた分析のために
「分析者のためのデータ解釈学入門 データの本質をとらえる技術」と同じ著者である江崎貴裕さんの本です。
検定・回帰モデルなどの統計モデル、ARIMAモデルなどの時系列モデル、ランダムフォーレストなどの機械学習モデル、深層学習や強化学習まで分かりやすく紹介されています。
また、モデリングの時に考慮すべきことなど会社の先輩に聞きづらいこともこの本には載っていると思います 笑 著者は異なりますが、他のシリーズの「データ分析に必須の知識・考え方 統計学入門 仮説検定から統計モデリングまで重要トピックを完全網羅」や「本質を捉えたデータ分析のための分析モデル入門 統計モデル、深層学習、強化学習等 用途・特徴から原理まで一気通貫!」も内容が分かりやすく説明されていますので、本著書の追加情報としておすすめです。
・機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック
ある程度機械学習モデル作成の経験を積んだ後に読むといいかも知れませんが、Explainable AIいわゆる「説明可能なAI」をテーマに勉強していたときに出会った本です。
本の概要を参照すると下記になります。
Deep Learning, Gradient Boosting Decision Tree, Random Forestなどの機械学習モデルは高い予測精度を誇りますが、モデルの解釈性が低いという欠点があります。これらの複雑なブラックボックスモデルにおいて、モデルがなぜそのような予測を行っているのかを知ることは困難ですが、データ分析者自身がモデルの振る舞いを把握し、説明責任を果たすことを実務においては頻繁に求められます。
引用: https://www.amazon.co.jp/dp/429712226X
内容としてはモデルの振る舞いを解釈するための方法を章立てして分かりやすく説明してくれていました。(個人的主観)
・1章:機械学習の解釈性とは
・2章:線形回帰モデルを通して「解釈性」を理解する
・3章:特徴量の重要度を知る〜Permutation Feature Importance〜
・4章:特徴量と予測値の関係を知る〜Partial Dependence〜
・5章:インスタンスごとの異質性を捉える〜Individual Conditional Expectation〜
・6章:予測の理由を考える〜SHapley Additive exPlanations〜
ちょっと仕事に慣れてきたかもという時に読み始めるのがちょうどいいタイミングかなと思います。
AIエンジニアになるには
AIエンジニアは、AI技術の進化や普及に伴って需要が高まっている職種であり、今後もさまざまな分野で活躍することが期待されます。
今で言うと物体検知、動体検知、生成AI、音声合成など様々なキラーワードが存在しますが、主にディープラーニングの知識を活用しシステムなどにAIモデルを組み込み新たな価値を創造していきます。
AIエンジニアと言っても「システム開発が得意なタイプ」と「AIモデル作成が得意なタイプ」の2パターンの人材が存在するかと思います。
データサイエンティストと同様、エンジニア型のメンバーとアナリスト型のメンバーがチームとして協力することが望ましいのではないでしょうか。
・AIエンジニアの業務例:
- AIモデルの開発・運用、システムの開発・運用、アルゴリズムの実験や検証、モデル精度検証、AI分野の研究や論文のリサーチ
- システム開発のためのプログラミング言語(特にPython)や機械学習、ニューラルネットワーク、ディープラーニングなどの知識を保持
- 学習素材の収集、素材選定、アノテーション作業、AIモデル作成、パラメータチューニング
数年後にはホログラムやロボットが当たり前の世界になるんですかね。看板や広告はすべてホログラム化され、コミュニケーション相手はロボットのような未来がやってくるのでしょうか。
勉強法ですが、Pythonやディープラーニングに関しては本ブログでも色々書いてきましたので参考にしていただければと思います 笑
AIエンジニア向けのおすすめの本のご紹介:
AI界隈は急激に進化している背景もあって、PytorchやTensorflowなどの使い方などの内容はすぐに陳腐化してしまいがちです。
去年読んでいた内容が古かったということもありがちなので日々情報をアップデートしていきたいですね。
ただニューラルネットワークやディープラーニングの概念や歴史というものは根底にあるべきものなので、1冊じっくり読み込んで理解しておきたいところです。
・ディープラーニングAIはどのように学習し、推論しているのか
難しい内容をなるべく分かりやすいように図と一緒に説明してくれている良書です。
本書だけでもニューラルネットワーク、ディープニューラルネットワーク、畳み込みニューラルネットワークなどの概要が掴めると思います。
・つくりながら学ぶ! PyTorchによる発展ディープラーニング
実際に手を動かしてディープラーニングを学びたい人向けです。オライリー本にしては内容がすごく分かりやすい「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」も大変おすすめです。
画像生成や明治時代の写真の着色など生成AI系で重要なGANs(敵対的生成ネットワーク)に関して実践的な内容が書かれています。
敵対的生成ネットワークに関しては本の説明文に少し記載があります。
GAN(Generative Adversarial Networks):敵対的生成ネットワークは機械学習技術の一種で、2つの分離したニューラルネットワークを使い実物と区別が付かないほどリアルな画像を生成することを可能とします。
引用: https://www.amazon.co.jp/dp/4839967717
まとめ
データサイエンティスト、データアナリスト、AIエンジニアになるための参考になればと思い書きました。
自分としてはこの先はどこを目指そうか考え中です。
勤め先で経営層を目指す、独立・起業する、副業する、別職種・業界への転職など選択肢は色々あります。
定期的に自分のキャリアパスを見直しながらその時ベストだと思われる選択が出来たらなと思います。
とりあえず自分が好きなデータ分析というキャリアが今のところそれほど廃れずに必要とされ続けていて嬉しい限りです。
よく周りの同僚たちは将来的には自分たちの仕事が無くなると昔言ってましたが、あれからもう10年くらい経つんだなと自分のキャリアを振り返っていて思い出しました。