Pandasで散布図行列(scatter_matrix)を描く

Pandasで散布図行列(scatter_matrix)を描く

概要

Pandasを使用して、散布図行列(scatter_matrix)を描く方法を示す。 これを使うことで、特徴量が多いデータに対して可視化が可能となる。

環境

  • Python ver : 3.6.9
  • Pandas ver : 0.25.3
  • scikit-learn ver : 0.21.3

散布図行列の描画

インポート
import pandas as pd
from sklearn import datasets
import matplotlib.pyplot as plt
データの準備
X,y = datasets.make_hastie_10_2(n_samples=100,random_state=None)
print(X.shape)
# (100, 10)
print(y.shape)
# (100,)
print(y)
#array([ 1., -1., -1., -1., -1., -1.,  1.,  1., -1., -1., -1.,  1., -1.,
       -1.,  1.,  1., -1., -1.,  1.,  1.,  1.,  1.,  1., -1.,  1.,  1.,
       -1.,  1.,  1.,  1.,  1.,  1., -1., -1., -1.,  1., -1., -1., -1.,
       -1., -1., -1., -1., -1., -1., -1.,  1., -1.,  1., -1., -1.,  1.,
       -1.,  1.,  1.,  1., -1., -1.,  1.,  1., -1., -1.,  1., -1.,  1.,
       -1., -1.,  1., -1.,  1., -1., -1.,  1.,  1.,  1.,  1., -1.,  1.,
        1.,  1.,  1., -1., -1., -1., -1.,  1., -1.,  1.,  1., -1.,  1.,
       -1.,  1.,  1.,  1.,  1., -1., -1.,  1.,  1.])
データからpandasのDataFrameを作成
dataframe = pd.DataFrame(data=X)

f:id:storikai:20191221143231p:plain

散布図行列(scatter_matrix)の描画
datalabel = pd.Series(data=y)
gr = pd.plotting.scatter_matrix(dataframe,c=datalabel,figsize=(12,12))
plt.show()

f:id:storikai:20191221143522p:plain