記述統計・可視化
記述統計の計算や可視化をする意義
データの分析を始める前に、データの特徴を知っておくことは非常に重要
データが得られたらいきなり機械学習モデルの構築をするのではなく、まずはデータの特徴を知る
記述統計
データの特徴を数値的に要約したりグラフ化したりして把握すること
基本統計量
データの特徴を数値的に要約するもの
データ数(レコード数)・・・データ(レコード)の個数(テーブルデータでいうと行の数)
代表値
データの(ある面での)特徴を1つの値に集約したもの
平均値・・・全データの和をデータ数で割った値
中央値・・・全データを昇順(小さい順)に並べたときに真ん中にある値(偶数個の場合は真ん中2つの平均値)
最大値・・・全データの中で最も大きい値
最小値・・・全データの中で最も小さい値
四分位数
第1四分位数・・・全データを昇順(小さい順)に並べたときに25%にあたる値
第2四分位数・・・全データを昇順(小さい順)に並べたときに50%にあたる値(=中央値)
第3四分位数・・・全データを昇順(小さい順)に並べたときに75%にあたる値
散布度
「全体として平均値からどれだけばらついているか」の指標
分散・・・「データと平均値の差の2乗」の平均値
標準偏差・・・分散の正の平方根
分布と相関
変数の散らばり方や変数間の関係をみる
分布(1つの変数の散らばり具合)
度数分布表、ヒストグラムなど
相関(2つの変数の関係)
相関係数、散布図など
データの可視化
グラフを描いて、データの様子を概観する
これはとくに非常に大事! データ分析をする前に必ず行う
分布の可視化
ヒストグラム
階級ごとのデータの個数を面積に比例させて描画することで、1変数の分布を可視化する
https://gyazo.com/db585fe2d0f83fc16e20846756ca2ec4
箱ひげ図(box plot)
四分位数をもとに
https://gyazo.com/0b8a5828253a211cb9727d2b2c08dc88
https://gyazo.com/474c6c5e887e0c773129a4ef4321a2ba
バイオリンプロット
https://gyazo.com/50b362c6c60afe483f63bf9bfcd448d5
相関の可視化
散布図
https://gyazo.com/1a311d963def57ed6bba304eb1187700
なぜ分布や相関を可視化するか
①データの全体的様相を直感的にとらえる
「度数の最も多い階級は?」「データがどの程度ちらばっているか?」「分布はどんな形?」などなど
②分析の手がかりを得る
たとえば特定の値や階級に過度に集中しているデータは、他の変数との関係を分析する必要がないだろう、など
③ありえない値、入力ミスによる値などを発見する
たとえば「こんな大きな値を取るわけがない」などがわかる
いちどExcelでやってみよう
IrisデータのCSVファイル:こちらからダウンロード Excelで、以下はできますか?
4つの説明変数(sepal length, sepal width, petal length, petal width)について、基本統計量として以下を求める
データ数
平均値
標準偏差
目的変数(class)について、以下を求める
データ数
値の種類
最も多く含まれる値(最頻値)とその数
4つの説明変数のヒストグラムを描く
さらに、classの値によって色分けして描く
説明変数同士の散布図を描く
さらに、classの値によって色分けして描く
Pythonでは?
基本統計量はPandasデータフレームのdescribe()で求めることができる
https://gyazo.com/512e53494df2ccc6524329bd9caf2b42
countはデータ数、meanは平均値、stdは標準偏差
min~maxはそれぞれ四分位数を表わす
min:最小値、25%:第1四分位数、50%:第2四分位数(中央値)、75%:第3四分位数、max:最大値
可視化はPandasデータフレームのplotメソッドが使える
その他、matplotlibやseabornなどの可視化ライブラリによっても、簡易に美しいグラフを作成できる
たとえば散布図行列はseabornのpairplotメソッドなどが有用
https://gyazo.com/8b39310c7a2b45aa88144a4387214f0a