Python

Python pandas seabornでペアプロット分析

selective focus photography purple petaled flower on field Python
Photo by Aaron Burden on Pexels.com

Python のライブラリであるpandasとseabornを使って、ペアプロット分析を解説します。ペアプロット分析は、データ分析の初手で用いる分析手法の一つです。今回は、あやめデータを使って、ペアプロット分析の具体的な使い方を見ていきましょう。

月見
月見
  • 筆者は、大手企業でデータ分析の仕事をしています
  • 実務でもペアプロット分析はよく使います
  • 筆者は、交互作用のある因子選定によく使いますね
  • 特に相関係数では検出できない非線形的の関係性を直感的に捉えるのに重宝します

ペアプロット分析とは?

ペアプロット分析とは、2因子を縦軸と横軸に割り付けてプロットする分析手法です。以下のように複数の因子を二つずつピックアップして、グラフにプロットすることで、2因子間の関係把握するのに用います。

ペアプロットの例:あやめデータ

例えば、上司から「ターゲットと関係のある因子はどれか分析して」という指示がきたとします。
これはあやめデータというデータセットです。あやめの種類3種類(ターゲットの番号ごとに種類が違う)に対して、以下四種類のパラメータが入ったデータセットです。

  • sepal length (cm)’
  • ‘sepal width (cm)’
  • ‘petal length (cm)’
  • ‘petal width (cm)’
あやめデータ

この四種類のパラメータがTragetとどのような関係があるのか把握してみましょう。

ペアプロット分析の方法

Pythonのライブラリであるpandasとseabornを用います。まずはこちらをインポートしましょう。
あやめデータを今回は例に用いるのであやめデータをインポートするためにsklearn.datasetsも呼び出しましょう。

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris

あやめデータ前処理

load_iris()であやめデータを読み出します。

iris = load_iris()

データの形を確認しましょう。するとiris.dataには150,4のデータ配列が、iris.targetには、150のデータ列があることがわかります。iris.dataには、4つのパラメータがiris.targetには、あやめの種類の情報が格納されています。

そこでまずはこの二つのデータを連結しましょう。データの前処置には、pandasが便利なので、pandasを用います。df_datairis.dataを、df_targetiris.targetをpandasのDataFrame形式で格納します。そして、df_data['target'] = df_targetdf_data['target']df_targetを格納します。

df_data = pd.DataFrame(iris.data,columns=iris.feature_names)
df_target = pd.DataFrame(iris.target)
df_data['target'] = df_target

出力結果が以下のようになります。一番右にtarget列が追加されました。

さて次にこの5列をペアプロット分析していきます。このデータの場合Tragetの数値別に、ペアプロットを表示したいので、hue='target'と記述します。これにより、Targetの数値によりプロットする色を変更することができます。palette="husl"で見栄えがかっこよくなります。

import seaborn as sns
sns.pairplot(df_data, hue='target', palette="husl")

この結果がこちらになります。

画像に alt 属性が指定されていません。ファイル名: image-237.png

このグラフを眺めると、あやめデータは、以下パラメータのみである程度関係性を説明できるなと気づけますよね。縦軸と横軸は逆のデータでもOKです。

  • 縦軸:’petal length (cm)’
  • 横軸:’petal width (cm)’
縦軸;’petal length (cm)’、横軸:’petal width (cm)’

このようにペアプロットは、ある目的特性(Targetの値)を説明するのに必要な因子(説明因子)をせ選定する場合に用いたりします。人間は、なるべく物事をシンプルに考えたい性質を持っているからですね。これは、ただ単に人間が把握しやすくしている可能性があることに常に注意して、説明因子の選定を行わなくてはなりません。

まぁ、上司には、’petal length (cm)’と’petal width (cm)’でTragetの値は、ほぼ推定できますね。と報告すれば問題ないかと思います。(笑)

ただこれだけはデータ分析のすべてではないです。当然課題が変われば、分析方針も変わります。常に分析目的がぶれないように分析を進めるように心がけましょう。

まとめ

Python のpandasやseabornによるペアプロット分析を解説しました。ペアプロット分析は、データ分析の初手で用いる分析手法の一つです。今回は、あやめデータを使って、ペアプロット分析の具体的に分析をし、以下二種類のパラメータであやめの種類は推定できるとことがわかりました。

  • ‘petal length (cm)’
  • ‘petal width (cm)’

もし、より深くPythonやデータ分析を学びたい方は以下の記事も参考にしてみてください。

コメント

タイトルとURLをコピーしました