sagantaf

IT関連の技術記事を書くブログ。

データサイエンスの基本的なプロセス

 

データサイエンスといっても、幅広く、統計解析やデータマイニング機械学習など違いがよく分からない言葉がたくさんある。

 

ただ、どんなことでもデータを分析するのであれば、プロセスは似たようなものになるはずと思っている。

 

そこで、以下の「データサイエンティスト養成読本」を読んで"データサイエンスの基本"と"データ分析業務のプロセス"についてまとめた。

改訂2版 データサイエンティスト養成読本 [プロになるためのデータ分析力が身につく! ] (Software Design plus)

改訂2版 データサイエンティスト養成読本 [プロになるためのデータ分析力が身につく! ] (Software Design plus)

 

 

目次

  • データサイエンスの基本要素
  • データ分析業務のプロセス
  • データ分析プロセスのフレームワーク

 

 

データサイエンスの基本要素

まずは、データサイエンスの超基本的な構成要素について。

 

図にするとこんな感じ。

f:id:sagantaf:20180430174954p:plain

 

Input

センサー技術の発展によりInputとなるデータが多様化した

→データは多様であるほど様々な分析ができるため、分析対象が高品質になった、といえる

 

分析するアプリ・ツールが稼働するハードウェア

クラウドサービスが普及し、一気に低コスト化した

→分析するための土台が安く手に入るようになった

 

分析アプリ・ツール

データ操作技術の発達により、PythonのPandasといった様々な分析ツールが生まれ簡単にデータ分析をできるようになった

→自分で統計量や分析手法をコーディングする必要がなくなった

 

Output

従来のシンプルなCSV形式による出力だけではなく、Parquet形式といった軽量に扱える形で結果を保存できるようになった

→結果の表示や再利用がしやすくなった

 

 

データ分析業務のプロセス

①目的設定

 まずは何においても「何が知りたいのか、なぜデータ分析をしたいのか」を明確にすることから始まる。ここが曖昧だと、データ分析をしても、分析すること自体が目的になってしまい、価値の無い分析結果が生まれてしまう。

 

②データ把握
 目的を明確にしたら、まずは基本統計量を算出する。基本統計量とは、Inputとなるデータの平均 mean や標準偏差 std のことを指す。
 データの傾向、欠損値の有無、外れ値の有無を把握することで、どう分析していけば良いか、どうデータを整形すれば良いか、といった分析の見通しが立つ。逆にこういったデータの特性を把握しておかないと、どういう分析が適しているか判断できない。
 データの特性を表示するには、例えばPythonのライブラリであるpandasの.describe()関数を使う。平均や標準偏差を一気に出力してくれる。
 
Sample
     import pandas as pd
     data = pd.read_csv("random.csv")
     data.describe()
 

f:id:sagantaf:20180526141304p:plain

 
→kaggleのLearnのMachineLearningの”Staring Your ML project”にて具体的な使い方が紹介されている:https://www.kaggle.com/dansbecker/starting-your-ml-project
 
 
③データの視覚化
 統計量を算出した後は、その数値を視覚化する。視覚化には、ヒストグラム・箱ひげ図・散布図などが使われる。相関係数を算出したり、回帰直線を引いたりして視覚化することで、より直感的な理解ができるようになる。
 視覚化するには、例えばPythonのmatplotlibやseabornを使う。簡単に様々な形式のグラフを描くことができるため、データ理解の力強い武器となる。
 
 
④多変量解析
いよいよアルゴリズムを当てはめて、解析を実行する。多変量解析には、予測と分類がある
 
予測:どんな要因・要素が結果に影響するか、という因果関係を明確にするもの
 → 代表的なアルゴリズムとして、線形回帰モデル、ロジスティック回帰モデル、決定木モデルなどが挙げられる
 
分類:多数の変数で記述されたデータの類似関係を明確にするもの
 → 代表的なアルゴリズムとして、次元縮約、クラスタリングなどが挙げられる

 

 

解析した後は、その結果の精度などを確認し、モデルの良し悪しを判断する。

また、適用するモデル(アルゴリズム)を変えてみる等、試行錯誤して検証を繰り返す。

 
試行錯誤する際は、最初はなるべく分かりやすい部分から進めていくことが大切。最初はシンプルなモデルを構築し、その後に徐々に複雑なモデルを構築していくことで、解析をスムーズに実施できる。

 

 

データ分析プロセスのフレームワーク

ここからはプロセスのフレームワークについてのまとめ。

データ解析プロセスのフレームワークとして、CRISP-DMというものがある。

先ほどまとめた ①目的設定、②データ把握、③データの視覚化、④多変量解析 を体系的にまとめたものになっている。

 

要素としては、以下の6つ。

 1:Business Understanding

 2:Data Understanding

 3:Data Preparation

 4:Modeling

 5:Evaluation

 6:Deployment

 

1:Business Understanding(ビジネス理解)

 データ分析の対象となる業務・ビジネスを理解するフェーズ。①目的設定に該当する。

 レコメンデーション実装なのか業務支援なのか、といった最終的なアウトプットを意識して理解を進めることが必要になる。

 アウトプットが明確になり、何をする必要があるかが分かったら、各ポイントでの目標を設定し、スケジュールに落とし込んでいく。

 

2:Data Understanding(データ理解)

 対象の業務に関連して収集しているデータを理解するフェーズ。②データ把握に該当する。

 データベースの種類や規模(テーブル数)、データ型や用意されているカラムの調査に加え、システム全体の構成からデータのインプットとアウトプットを把握することが必要。

 

3:Data Preparation(データ準備)

 データを抽出し、加工するフェーズ。③データの視覚化を含んだ部分となる。

 いわゆる前処理と呼ばれる部分。ここがデータ解析プロセスの中で一番重要であり、一番時間を必要とする。

 抽出・集約・統合や、データ形式の統一、欠損値の処理など。

 

4:Modeling(モデル化)

 対象データに効果のあるモデルを適用するフェーズ。④多変量解析に該当する。

 一般的には教師ありモデル(決定木、線形回帰)や教師なしモデル(k-means、主成分分析)に分割される。

 この後のEvaluationによって効果的なモデルが見つかるまで、いくつかのモデルの適用を繰り返すことになる。

 

5:Evaluation(検証・評価)

 データ分析の結果から最初に設定した目標を達成するかを検証し評価するフェーズ。④多変量解析に該当する。

 

6:Deployment(サービス実装)

 作成したデータ分析モデルを、今後のデータに適用し、サービスとして実装するフェーズ。

 既存のシステムに適用したり、新規ソフトウェアとして開発する方法がある。

 また、環境・時間の変化によって作成したモデルは最適ではなくなる可能性があるため、常にモニターする必要もある。作成したモデルの予測値と結果のズレが小さいままかどうかをチェックし、アラートを発生させるなど、自動的な監視を導入するなどが考えられる。

 

  

 

以上、すごく触りの部分だけまとめた。

 

この後は、「データ解析の実務プロセス(森北出版)」を読んで理解を深めていく。

データ解析の実務プロセス入門

データ解析の実務プロセス入門