rohaniのブログ

ゆるっと自然言語処理奴。ときどき工作系バイト。

データの観察と前処理について読んだのでまとめる(2)

教材にするKernel

COMPREHENSIVE DATA EXPLORATION WITH PYTHON
Pedro Marcelino - February 2017

データからターゲットを取り出す前の段階、すなわち「データをよく見る」段階について解説している。

ノート

1.問題を理解する

データ分析チェックシートなるものがあるらしい。

It is time-consuming, but it will give us the flavour of our dataset.

データの風味ですって。この表現気に入った。

チェック項目 解説
Variable 変数名
Type それらはnumerical(量的変数)かcategorical(質的変数)か
Segment 変数を区分すると
Expectation 従属変数に対して強い影響力を持つ変数はどれか予測する。まず自分の持つ経験を参考にして当たりをつけ、従属変数と一緒に散布図を出してみて、ざっくり関係を見ると良い。その変数が他の変数と重複した意味を持っていないかなども確かめる。
Conclusion 変数の重要性について当たりをつける
Comments 備考欄

2.Univariable study

  • pandas.DataFrame.describe():基本的な統計量を取得
  • seaborn.distplot()pandas.DataFrame を渡してあげると、ヒストグラムが見られる。正規分布に従っているかどうか、非対称性(歪度)があるか、頂点があるかなどを見る。
  • pandas.DataFrame.skew():歪度
  • pandas.DataFrame.kurt():尖度
  • 前章で求めた重要な独立変数達との関係を散布図でみてみる。関連がありそうか?
  • seaborn.boxplot()を使うと、箱ひげ図が出せる。

3.Multivariable study

  • seaborn.heatmap():相関行列のヒートマップ。全ての変数の関係を概観するのに最適。
    • 独立変数同士で高い相関があるなら、同じ情報を表していると見ることができる。
  • seaborn.pairplot():散布図の羅列。複数の変数の関係を詳しく見るのに最適。各対応(2変数)の散布図を描画。

4.Basic cleaning

missing data の処理

欠損値(NULL)が含まれると処理に支障をきたす。何らかの処理が必要。

  • 欠損の頻度を調査
    • 全体の15%以上が欠損している変数は使わない
    • 欠損値がある変数のうち、他の変数で置き換えられる(強い相関がある)変数は削除
    • 低頻度(例えば欠損値1個)の変数は、欠損値を含む観測を消して変数は残す
  • 欠損のパターン
    • 同じ観測が欠損しているような複数の変数は、同じような情報を表している場合がある。

Python Tips

  • matplotlibのJupyter Notebookでのインポート方法。すぐ忘れる。
import matplotlib.pyplot as plt
%matplotlib inline
  • 初お目見えのパッケージ、seabornQiitaによると見目麗しく、簡単にかけるらしい。

用語

  • 質的変数:カテゴリー的。そのままでは演算不可。
    • 名義尺度:順番がない。 大阪、京都、東京
    • 順序尺度:順序づけられる。 1年生、2年生、3年生
  • 量的変数:数値。
    • 間隔尺度:和と差ができる。0に相対的な意味しかない。 (西暦1000年と西暦2000年の間には1000年の時が流れているが、西暦1000年を2倍しても西暦2000年にはならない。)
    • 比例尺度:和差積商できる。0に絶対的な意味がある。 長さ(100cm、150cm、200cm)

参考

メモ

時間オーバー。Outliersの処理以降は明日かな。今日もおつかーれさんです。
変数の4分類の名称は、何度も習ってるはずなのにすぐ忘れる。でも「このデータはnumericalです」とかってよく使われるので、彼らが分からないと「んん??」ってなる。だからメモ。