ど~も。データサイエンティストのえいせいです。
ChatGptやAIの発展で更に認知度の上がったデータサイエンティスト。
そんなデータサイエンティストに興味がある学生の方や、転職を考えている社会人。
興味はあるけどデータサイエンティストっていったい何をする人達なの?っと疑問を持っている人も多いでしょう。
そんな人の為に、この記事ではデータサイエンティストとはどんな仕事なのか?実態はどんな感じなのか?をわかりやすく解説していきます。
はじめに:データサイエンティストって何?

データサイエンティストとは、ビジネスや科学分野で、大量のデータから価値ある情報を取り出し、問題解決に役立てるためのスキルを持った専門家のことです。
データサイエンスに関する知識や技術、プログラミングスキル、ビジネスの理解力などを必要とし、現代のデータ重視のビジネスや科学分野においては、欠かせない存在となっています。
要はデータをキーに企業の抱える問題を解決する人たちの事です。
具体的な業務内容
では具体的にどのような事をするのか見ていきましょう。
主に下記の様なタスクを行います。
- データの収集や前処理
- データ分析に必要な変数の選択や特徴量の作成
- 機械学習モデルの構築や評価
- モデルの改善やチューニング
- データの可視化やレポート作成
- データマイニングやビッグデータの解析
- データの予測やクラスタリング、異常検知などの分析
- ビジネス上の問題を解決するためのデータ分析支援
ただ、しっかりと定義されているかと言われるとそういうわけでは無く、企業や業界によってはブレがあるのが現実です。
例えば小売業界では今あるデータを基に、将来の売上予測を行ったり、WEBの施策結果を統計的に判断したりといった、直接ビジネスに関わる事を行います。
スコープとしても、データの可視化がメインの所もあれば、機械学習モデルの運用がメインの所あります。
また医療業界だと、画像を基に陰性・陽性を判断するモデル構築をおこなったり、普段の生活習慣から将来かかる病気を予測したりと、データサイエンティストと言っても、細かい部分の違いはあります。
ただ全てに共通するのが、データから問題解決の糸口を見つける事です。
では更に一歩踏み込んで、より鮮明にタスク内容を見ていきましょう。
データの前処理とは何をするの?
下記の様な事を行います。
- 欠損値の処理:欠損値がある場合は、埋めるか、欠損値を持つ行や列を削除
- データのクレンジング:異常値や誤ったデータの修正
- データの変換:データの形式を変換する必要がある場合があります。例えば、テキストデータを数値データに変換するなど
- スケーリング:データの範囲が異なる場合、正しく分析できないことがありますので、データのスケールを調整する必要があります。例えば、平均を0、標準偏差を1にする「標準化」や、最小値を0、最大値を1にする「正規化」などです
- 特徴量エンジニアリング:機械学習モデルの性能を向上させるために、データセットの特徴量を工夫する必要があります。例えば、複数の特徴量を組み合わせたり、新しい特徴量を生成するなどがあります。
意外とやる事は多いです。
そもそもまともなデータを集計出来ていなかったり、欠損値ばかりで何のためのテーブルデータか分からない事も多く苦労します。
結局データ収集基盤の構築からやる事になって、データエンジニアになってしまう事も現実としてあります、、
機械学習モデルの構築と評価
そして、キレイなデータセットが出来たらいよいよ分析に取り掛かります。
機械学習モデルの構築を行う場合ですと、必要な特長量を選択して、それを基に機械学習モデルの構築を行います。
出来上がったモデルはそれで完成というわけでは無く、必ず評価します。
簡単に説明すると、今あるデータを分割して、テストデータを作ります。
このテストデータのイメージとしては、特長量だけ残し、答えを隠したデータです。
それを構築したモデルで答えを予測し、実際の答えと合っているかの確認が評価です。
これを繰り返し、改善を行い、予測精度の高いモデル構築を目指します。
データの可視化
データの可視化も重要な作業です。
扱うデータを、自分自身がより理解する為にも必要ですし、他者に説明する際に非常に重要になってきます。
ツールとしては、pythonライブラリのseabornやmatplotlib、tableauなど企業によって分かれる部分です。
ぶっちゃけデータサイエンティストの出した結果は専門性が高いために、他部署の人には理解してもらえない事も多いです。
そんな時に、データの可視化を行う事で理解を促進することができます。
データサイエンティストに必要なスキルとは?
では続いてデータサイエンティストに必要なスキルを見ていきましょう。
良く言われるのが以下の3つですね。
- データサイエンススキル
- データエンジニアスキル
- ビジネススキル
具体的に見ていきましょう。
データサイエンススキル
データサイエンティストがデータに対して洞察を得るために、データ分析や統計的手法を使用するためには、データサイエンススキルが必要です。
深堀りすると以下の様になります。
- 統計
- 機械学習
- 線形代数
- 微分・積分
- データマイニング
まずは統計がデータサイエンスの土台になる部分ですので、しっかりとした知識が必要になってきます。
また、線形代数や微分積分なども、機械学習や深層学習までやるとなると非常に重要になってきます。
例えば、小売業者が施策やイベントを打って、それに効果があったのか?それを判断するのに「効果があったと思います!」と個人の感想を述べても説得力が薄いですよね?
数値を基に統計的に有意であったと立証する事で説得力が産まれます。
また、データマイニングとはデータから隠れた規則や関係性を発見するための手法のことで、データサイエンティストに必須なスキルです。
データエンジニアスキル
データエンジニアスキルとしては、主にpythonやRのプログラミンスキルの事を指して使われる事が多いです。
ちなみにデータ分析と言うと、プログラミング言語としてpythonかRが出てくると思います。どっちを勉強したら良いのか悩みますよね?
結論としてはpythonをおススメします。
- 機械学習までやるならpythonの方がライブラリが多い
- 利用者が多いので文献が豊富
- 転職の必要要件でもpythonの方が多い
この様な理由からpython一択ですね。
Chat Gptの登場によりハードルは下がっている
プログラミング力も大事ですが、Chat Gptの出現により確実にハードルは下がっています。
例えば「XGBoost」のサンプルコードを教えて!とリクエストすれば、ものの数秒で下記のコードが生成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import xgboost as xgb from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # データセットをロード boston = load_boston() X, y = boston.data, boston.target # データセットをトレーニング用とテスト用に分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # XGBoost用のデータセットを作成 dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) # ハイパーパラメータを設定 params = { 'max_depth': 3, 'eta': 0.1, 'objective': 'reg:squarederror' } # モデルをトレーニング num_rounds = 100 model = xgb.train(params, dtrain, num_rounds) # テストデータで予測 y_pred = model.predict(dtest) # 平均二乗誤差を計算 mse = mean_squared_error(y_test, y_pred) print("Mean Squared Error:", mse) |
あとはデータフレームの指定と、ハイパーパラメータなどの調節が出来れば実務でも使えます。もしエラーが出たとしても、それもChat Gptに投げる事で、エラーの詳しい対処法や修正したコードを教えてくれます。
ですので、完全に覚える必要は無くなってきており、それぞれのコマンドが何をしているのか?引数を変えるとどうなるのか?などの挙動の理解の方が重要になってきています。
まずはpythonの基礎を学びたい方は下記の記事からどうぞ!
「Pythonで始めるデータ分析:初心者のための完全ガイド」
ビジネススキル
関わるビジネスに対してのスキルや知識も重要になってきます。
データサイエンティストは、企業のビジネス戦略に沿ったデータ解析を行うために、ビジネス理解のスキルが必要です。ビジネス理解によって、データサイエンティストは、ビジネスの問題やチャンスを発見することができます。
その企業が戦略的に今後どうしていきたいのか?といった理解も大事ですし、事業のドメイン知識も重要になってきます。
例えば、アパレル店の購買実績のトランザクションテーブルを見て、売れている商品・売れていない商品はデータからも読み取れますが、それが本当に商品の力だけなのか?という点まではデータからは分かりません。
小売で大事なのはどの様に店舗で展開し、お客様に見せているのか?といったVMD(ヴィジュアルマーチャンダイジング)が重要になってきます。
同じ商品を店頭の一番目立つ位置に飾っているのと、店の一番奥の目立たない場所に飾ったのでは売れ方が全く変わってくるのは容易に想像できると思います。
こういった知見から重要な特長量が作成されたりします。
このように、データサイエンティストにはビジネススキルも重要になってきます。
データサイエンティストの学習のステップ

では最後にデータサイエンティストになりたい方へ、学習のステップを説明します。
一人一人素養が違うので万人向けというわけではありませんが、まずは以下の順がおススメです。
- pythonの基礎
- pythonの応用(pandas, numpy, seaborn, matplotlib等)
- 統計学(理論とpythonで実装)
- pythonで機械学習(sklearn等)
- 線形代数・微分積分
- 深層学習
- 強化学習
まずはpythonに触れてみて、サクッとデータにアクセスをしてみるのが良いと思います。
「なんとなくおもしろいっ!」っと思えたら最高です。
いきなり理論や数学から入ると難易度が高く挫折してしまう人も多いです、、
まずは楽しみながら学んで欲しいと思います。
学習に必要な時間はどれくらい?
これもフルで勉強に割ける人や、仕事の合間にしか勉強出来ない人などバラつきが大きいのではっきりした事はいえませんが、上記の事を全てやろうとすると余裕で1年以上は掛かります。
他にもチームで開発をするならgitやdockerなどの知識やデータベースに対する基礎的な知識も必要になってきます。
「最短3ヵ月でデータサイエンティスト!!」などの広告も見ますが、まず無理でしょう。
あせらずにひとつずつ勉強していきましょう。
データサイエンティスト協会のHPはコチラです。