【非エンジニア採用担当向け】データサイエンティストの理解を深める

### [データサイエンティストの種類]
##### ・データサイエンティストとは
→ビジネス・データサイエンス・ITの領域において知見のある人だが全て高水準で備わっている人は基本いない
　→チームとしてそれぞれの分野の要件を満たす形が一般的

◆例えば
・統計学の修士号を持つデータサイエンティスト（数学）
・Hadoop、Spark（データ基盤）に詳しいデータサイエンティスト（IT）
・BIツール、データ可視化に強いデータサイエンティスト
・コンサルティング出身のデータサイエンティスト

### [データ活用を促進するために必要な役割]
・AIや統計学を活用するビジネスリーダー
→ビジネスの中でデータサイエンスの適用領域の特定
→事業部側で分析結果をビジネスに活用する役割

__ビジネストランスレーター（翻訳家）__ 
→事業課題から分析課題への翻訳
→データサイエンスプロジェクトのマネジメント
→データ分析の品質管理

__データエンジニア__ 
→大規模データを扱うインフラの整備を行うエンジニア

__データサイエンティスト__ 
→高度な統計解析や機械学習を使った分析作業を行う専門家

### [機械学習・統計学習によってわかること]
__データサイエンス活用の具体例__ 
 `<<モバイルアプリ/インターネット/EC分野>>` 
→ユーザの属性や購買履歴からユーザをセグメンテーションする
→ある機能やデザインを追加・変更した時にビジネスインパクトがあるかを定量的に検証する

`<<FinTech>>` 
→過去の支払い履歴や属性情報だけでなくSNSでの投稿から支払い不能になるかどうかを予測する

`<<HR Tech>>` 
→アンケートから従業員のモチベーションの構造を理解する
→適性検査や面接のデータから、早期離職してしまう候補者の特徴を理解する

`<<マーケティング>>` 
→キャンペーンに反応したユーザの特徴を理解する
→複数の媒体に広告を出稿した際に、どの広告やチャネルが売り上げに貢献していたかを推定する

 __[統計学の範囲]__ ※どちらかというと解釈性重視
→特徴を理解する
→因果関係を推論する
→定量的に検証する
`<<サブ分野>>` 
・記述統計（平均・分散など）
・推測統計（推定・仮説検証・回帰分析）
・時系列分析（時間に伴い変化するパターンの理解・予測）

 __[統計学とは]__ 
・母集団からランダムにサンプルを調査し、平均や分散などの統計量から母集団の傾向や性質を理解するための学問
（割と少ないデータで推論推定していくものが多い）

`<<回帰分析>>` 
・原因となる変数と結果路となる変数の関係性（傾向）を定量的にに分析する手法
（全体の傾向と逸脱しているものをあぶり出す）
一番スタンダードな手法で実務でもよくつかう

 __[機械学習の範囲]__ ※どちらかというと予測精度重視
→予測する
→グルーピング（セグメンテーション）する
`<<サブ分野>>` 
・予測モデル（教師あり学習）
（過去データからパターン抽出し再現）
・クラスタリング（教師なし学習）
（類似したデータをグルーピング）

 __[機械学習とは]__ 
`<<予測モデルの構築プロセス>>` 
データ理解、特徴量の作成・選択、モデル作成、性能評価に分かれるが決してストレートなプロセスではなく、各ステップを行ったり来たりする試行錯誤の連続。
（90%は [データ理解]⇆[特徴量作成・選択] の繰り返し）
　→参考とするデータにきちんと規則性や法則（説明できるだけの情報）が入っていないと、どんなに優秀なアルゴリズムを作っても予測データは当たらない
　→そのためデータサイエンティストだけで業務が完結することはほとんどなく、その分野に詳しい人たち（現場の人たち）とコミュニケーションをしっかりとって核となる情報を正しく認識することが重要
（少なくとも現場で起きている事象について仮説立てできるぐらいの最低限の知識は必要）

 __[ディープラーニングとは]__ 
機械学習の中の　[ニューラルネットワーク]という手法群の中の　[多層ニューラルネットワーク]を指す
※[広義の人工知能]の中に[機械学習]が含まれており、さらにその中に[ニュートラルネットワーク]が存在し、その一部に[多層ニュートラルネットワーク]がある（つまり変換器の一つというニュアンス）

 __[解釈可能性と予測精度のバランスの取り方]__ 
→だれが使うか、目的、頻度を考えて用いるモデルを検討する
Ex.)
（方針決定）のために（マネジメント層）が（四半期ごと）に使うデータ：解釈可能性重視（=因果関係や影響力の解釈か）
（見込み客を自動判別）するために（データ分析者）が（毎日）使うデータ：予測精度重視

 __※機械学習まとめ※__ 
・解釈可能性と予測性能はトレードオフの関係にあるので、目的や使用者に応じてあるアルゴリズムを検討する必要がある
・その結果、予測モデルを作るには試行錯誤が必要
→データを分析し、仮説を立てることは可能だが、そのデータがいきなり課題を解決したり大きく改善する何かになるとは限らない（即効性があるとは限らないのが特徴）
→また思ったような結果がすぐに出ないことも多く、データ分析の難しいところ


##### [関連ワードチートシート]
`<<プログラミング言語>>` 
 __Python__ 
→機械学習、統計のどちらでも使用。先のどの職種でも通用する

 __R,SPSS,SAS__ 
→主に統計解析で使用。ソフトウェアの実装にはあまり使われない。
（※Rはオープンソースで無料で使えるが、SPS,SASはバカ高いライセンス料がかかる）
　→ちゃんとしたデータ分析機関にいた可能性があると判断できるかも

 __C,Java,Scala__ 
→機械学習を用いたソフトウェアの開発時に使われる場合がある。Pythonより処理が早い。

 __SQL__ 
→データベース操作言語。データ分析に関わるあらゆる職種が使用。これが書けないデータサイエンティストは話にならない。（これができないとデータ分析を始めることができない）

`<<ライブラリ・フレームワーク>>` 
 __Scikit-learn,pandas,numpy,matplotlib__ 
→Pythonで分析や予測モデル構築をする場合に使用するライブラリ。
初心者から上級者まで使用するので、上級者になるとあえてレジュメに書かないことも多い。
（≒社会人にとってのExcel,word）

 __Pytorch,Chainer,Tensorflow,Keras__
 →ディープラーニングフレームワーク。基本的にどれか一つ使えれば他のものもすぐに習得できる。機械学習エンジニアを名乗る場合はほぼ必須。

 __Tableau,PowerBI,DOMO__ 
→Excelでは処理しきれないような大きなデータを可視化する場合や、Excelでは表現できない可視化方法を使いたい場合に使用する。

`<<DB>>` 
 __MySQL,PostgreSQL__ 
→最もオーソドックスなデータベース。SQL言語を用いてここからデータの保存・編集など行う。

`<<規模の大きいデータを処理する仕組み>>` 
 __Spark,Hadoop,Redshift,Presto,Hive__ 
→データを保存するためのインフラ。複数のデータベースに分散してデータを保存することで効率的に処理をする仕組み。データを取り出す場合はSQLを用いる。規模が大きい場合、設計構築はエンジニアが行う。基本的に大きな規模のデータを扱う場合によく使うので、少ないデータ分析がメインの場合はあまり使っていないことが多い。（≒扱ってきたデータ量を判断する指標）

` <<規模の大きいデータを保管する仕組み>>`
__DWH(データウェアハウス),Data Lake,Data Mart__ 
→データの種類や量が多くなってくると、どのデータがどんな役割なのかがわかりにくくなるため、扱いやすくするために整理する仕組みのこと。
構築はエンジニアが行うことが多いが、「どのように整理すべきか」についてはデータサイエンティストや翻訳家も含めて意思決定が行われることが多い。
（何かしらの「データをとる」という作業は、付随してその裏で動いてるものの処理が遅くなったりする弊害もあるため、それぞれが必要最低限のデータ取得で済むようにするためのもの）