データサイエンティストの概要

個人で色々学んできましたが、改めて内容をまとめていこうかと思います。


# 1,データサイエンティストの業務内容

## データサイエンティストの概要

一般的には「データを活用して事業の利益に貢献する人」全般をデータサイエンティストと
認識されています。

一口に行っても様々で

* データ活用にかかわる業務内容を幅広く担当されている
* 分析に特化したスペシャリスト

などなど詳細は異なります。

名称も下記のように色々あります。

* データサイエンティスト
* グロースハッカー
* データアナリスト
* データマイニングエンジニア

## 分析基盤環境構築・運用
システムのログやソーシャルデータを収集・保管する環境を整備なども行います。

### [収集]
分析の元となるデータを業務システムやSNSから収集する環境を構築・運用します。
具体的には、業務システムのログやSNSのAPIから取得したデータを収集するバッチを構築・運用します。
収集されたデータはフォーマットが統一されていないため、ただ収集しただけでは非常に扱いづらいデータとなります。
そのため、データを収集するだけでなく、JSONなどの扱い易い形式に変換、統一しておくことが求められます。

### [蓄積]
収集したデータを蓄積するための環境を構築・運用します。
具体的には、HadoopやMySQL、もしくはNoSQLといったいわゆるデータベース環境を構築・運用します。
各データベースで特徴が大きく異なるため
各データベースの特徴や構造を深く理解しておく必要があります。
その上で、セキュリティ要件やスケーラビリティを考慮し、適切なデータベースを選択することが求められます。

### [操作]
データ蓄積環境からデータを取り出す環境を構築・運用します。
具体的には、BI(Business Intelligence)ツールの整備や、Hive、pigのようなデータ操作環境を構築・運用します。
WEB業界のように分析のスピードが企業競争力に直結する場合も多いため
データ操作環境の構築では、負荷対策が非常に重要です。
環境を使用するデータサイエンティストの人数や分析クエリの負荷をあらかじめ想定し
適切なツールの選定や高負荷を避ける運用方法を策定することが求められます。


## 分析・レポーティング

### [仮説検証型]
継続率が下がった原因をいくつか考え、仮説として採用するアプローチです。

例えば、「優良顧客が多い販売チャンネルからの販売が減ったことが原因」といった仮説を採用したとしましょう。
その上で、仮説と実際のデータが矛盾していないかを検証します。

今回の例では、下記の2つの条件が成立していれば仮説が正しいと考えられます。

ジムの場所によって新規入会者の継続率が異なる
継続率が高いジムの場所からの新規入会者の数の増減によって、全体の継続率低下が説明できる
この条件が成立しているかどうかを、データ操作環境からデータを抽出することによって検証していきます。

### [知識発見型]
仮説検証型では、仮説を考えた後にデータに当たりました。

一方、知識発見型では、まずデータに当たり、その結果を解釈するというアプローチをとります。

例えば、「継続者と解約者の属性の違いを決定木分析にかける」ということを行います。
ユーザー属性とは、性別、年齢、居住都道府県、販売チャンネル、決済手段、使用頻度…などの利用者に関するデータを指します。

決定木分析を用いると、継続者と解約者で最も異なる属性をあぶり出すことができます。

今回の例では、「販売チャンネル」が継続社と解約者で最も異なる属性だという結果になるでしょう。
このような知識発見型の分析には、データ操作環境としてIBM社のSPSSや
オープンソースのRなどが用いられることが多いです。

また、今回紹介した例とは少し毛色が異なりますが
レコメンデーションエンジン開発などで用いられる機械学習も、知識発見型アプローチの1つです。


## レポーティング
データが増えてくるに従い重要となるのがレポーティングです。

データが大量になるほど、ビジネス上で重要な指標(KPI: Key Performance Indicator)を
整理、見える化しておくなどします。

[KPI報告]
KPIを設計、見える化、必要に応じて意思決定者に共有する仕事です。

多くの場合、BIツールのダッシュボードが成果物になります。
一見簡単そうな仕事に聞こえますが、非常に責任がある高度な仕事です。

というのは、設計したKPI群に漏れがあった場合、ビジネス上の重要な変化を見逃してしまうからです。

例えば、オンラインゲームで「売上」と「課金ユーザー数」の2指標をKPIに設定し、毎日記録していたとします。
一見この2指標でビジネスの善し悪しが測れそうですが、実は不十分です。
というのは、この2指標だけではユーザーの課金額のばらつきがわからないからです。

廃課金者だけで売上の大半を担っているケースがあるからです。

# 2,データサイエンティストに必要なスキル

データサイエンティストに必要なスキル領域は大きく分けて下記の3つです。

* ビジネススキル
* ITスキル
* 統計解析スキル

## ビジネススキル


### ビジネスに対する深い理解
データサイエンティストのミッションは、データを活用して事業に貢献することです。

そのため、分析対象のビジネスについて深く理解していることが求められます。
動画を扱うビジネスでも、レンタルビデオ店とサブスクリプションで行う動画サービスでは
集金の方法がまるで違います。

### ロジカルシンキング
データ分析の目的の多くは、ビジネス上の問題解決やビジネスの継続的な改善です。
それらを円滑に進める技術として、ロジカルシンキングは非常に大切です。

書店の売上が落ちたという事象に対し、単純に読書する人が少なくなったからと結論を出しても
人気コミックが出てないことや、他のサービスができたからなどの検証ができてません

ロジックツリーやMECEといったロジカルシンキングのアプローチを利用しながら、論理的に結論を導くことが重要です。

### ドキュメンテーション/プレゼンテーション
データサイエンティストの最終成果物は、レポートやプレゼンテーションであることが大半です。

このレポートやプレゼンテーションが事業に貢献しなければ、どれだけよい分析でも価値がありません。
そのため、ドキュメンテーションやプレゼンテーションのスキルを身につけておくことは重要です。

プレゼンテーションといっても、営業マンのように口達者で相手を引き込むスキルではなく
分析の結論を簡潔にわかりやすく相手に伝えるスキルが重要です。

## ITスキル

## 幅広いIT知識
分析基盤環境の構築・運用には幅広いIT知識が求められます。
分析基盤環境の構築はITシステム導入と同じ手順で進められますし、分析基盤環境の運用はITシステムの運用と
同じ方法論が使用できます。
そのため、ウォーターフォール、アジャイルといった開発手法や、ITILなどのシステム運用の方法論についての
知識があると、よりスムーズに業務を進めることができます。

### 大規模データ処理に関する知識
データサイエンティストはいわゆるビッグデータを扱うことも多いです。
ビッグデータは容量が多いため、データの蓄積や操作に特別な技術が必要となります。
具体的に言うと、Hadoopを中心とした、HBase、Hive、pigなどのオープンソース群の知識が必要となる場合が
多いです。

また、ビッグデータを高速に処理できる技術として、列指向のデータベースを使用することもあります。
このように、ビッグデータ処理は今後発展が見込まれる技術領域ですので
業界の動向を常に追いかけておくことも重要です。

### データベースに関する深い知識
データサイエンティストが扱うデータは基本的にデータベースに格納されています。
そのため、分析基盤環境を構築する際だけでなく、利用する際にもデータベースに関する深い知識が求められます。簡単なSQLでデータを抽出することができるのは当然のレベルとして
頻繁にWHERE条件で指定されるカラムにはINDEXを貼る、負荷が高い場合にはレプリケーションを利用するなど
主にパフォーマンスに関する知識が必要です。

分析基盤環境は複数のデータサイエンティストで共有されている場合がほとんどですので
誰か1人が実行した効率の悪いクエリが原因で、社内すべての分析が遅延する可能性もあります。

### プログラミング
データサイエンティストの仕事では、ログ収集のバッチ作成やBIツールへのデータ挿入など
プログラムを書く機会が頻繁にあります。

といっても複雑な処理を書くことは少なく、基本的にはデータ整形の処理を書くことが多いため
RubyやPythonといったスクリプト系の言語を1つ習得しておけばよいでしょう。


## 統計解析スキル

### 数学
データ分析の共通語は数学です。データ分析の書籍にもほぼ必ず数学が登場します。
そのため、最低でも高校卒業程度の数学を身につけておく必要があります。

特に必要とされる分野は、確率・統計、微分積分、行列ですので
これらの分野に不安があれば復習をしておいた方がよいでしょう。
また、専門書をより深く理解するためには、大学初級程度の解析学、線形代数学も習得していることが望ましいです。

### データ分析手法の理解
データ分析では、データの統計処理や数理モデルを作成することで、分析を進めています。
そのため、統計処理手法やデータマイニング手法について理解しておく必要があります。

例えば、売上に関係するユーザー属性を特定するためには重回帰分析、課金ユーザーと無課金ユーザーの
行動の違いを分析するためには決定木分析
ユーザーをセグメントに分割するためにはクラスタリング分析を用います。
このように、自らが必要とする結論を出すためにどのような分析手法を用いればよいか知っておく必要があります。

### データ分析ソフトウェアのスキル

多くのデータ分析手法は途中計算が非常に煩雑なため、基本的にはデータ分析ツールを用いて分析を行います。
そのため、データ分析ツールを使いこなせる必要があります。

回帰分析など、Excelでも使用できる分析手法もありますが、より専門的なデータ分析手法には
オープンソフトウェアであるRや、IBM社のSPSSが必要です。

規模の大きな会社であればSPSSなどの分析環境が整備されている場合もありますが
ほとんどの場合ExcelやRを用いて分析することが多いでしょう。

# データ分析を自習する環境

## Hadoop
業務では複数台のマシンで構築するHadoopですが、1台構成にすることも出来ます。
自宅のPCにLinux環境を構築し、その上にHadoopを構築することは大変勉強になります。

## MySQL
MySQLは最も普及ししているデータベースの一つです。
Linux環境はもちろんWindows環境にもインストール可能ですので
データベース未経験の方は是非触っておくことをお勧めします。

## R
Rは統計解析のソフトウェアで、世の中にある解析手法のほぼすべてが実行できると言っても過言ではありません。
クラスタ分析や決定木分析、また回帰分析や統計検定など業務で使用する分析ももちろん実行できますので
データ分析の醍醐味を味わうことが出来ます。

## 分析データ
分析環境だけでなく、分析データも無償で手に入れることが出来ます。
[日本統計局](http://www.stat.go.jp/data/index.htm)のような公共機関が公開している統計データもあれば、[リクルートWEBサービス](http://webservice.recruit.co.jp)のようにAPI経由でマスターデータを公開している企業も多いです。

前者を使用すれば、様々な指標を用いて都市のクラスタ分析(図1)を実行できますし、後者を使用すれば自分の好みの飲食店の傾向を学習するプログラムを書くことが出来ます。