Python 「Sweetviz」探索的データ解析EDAを数行で行う

 本記事では、EDA(Explanatory Data Analysis)を簡単に行うライブラリ「Sweetviz」を使った雛形コードを載せました。
 例えば、csvデータから機械学習で使うために訓練データとテストデータを分けた後、その出来栄えを可視化します(下図例)。この例では、訓練データ(train)とテストデータ(test)の各説明変数が均等に割り振れてる様子が視覚的にわかります。

f:id:HK29:20210907231738p:plain

 

■インストールはpipで次のようにします。

pip install sweetviz

■本プログラム

可視化のためのコードはライブラリのインポートを除いて、わずか2行です。

#!/usr/bin/env python
# coding: utf-8

# In[1]:

import pandas as pd
from sklearn.model_selection import train_test_split
import sweetviz as sv

# csvファイル読み込み
df = pd.read_csv("boston_XYdata.csv")
df


# In[2]:


target_Y = 'PRICE'

# 説明変数 xデータの抽出
df_X = df.drop(target_Y, axis=1)
df_X


# In[3]:


# 目的変数 yデータの抽出
df_y = df[target_Y]
df_y


# In[4]:


# 訓練データx, yとテストデータx, yに分ける
X_train, X_test, y_train, y_test = train_test_split(df_X, df_y, test_size = 0.3, random_state = 1)


# In[5]:


# sweetvizで可視化するために再結合
df_train = pd.concat([X_train, y_train], axis=1)
df_test = pd.concat([X_test, y_test], axis=1)
print('df_train', df_train)
print('df_test', df_test)


# In[6]:


# sweetvizでグラフで可視化
# 訓練データとテストデータを比較したい場合。3つ目の引数は目的変数
my_report = sv.compare([df_train, 'train'], [df_test, 'test'], 'PRICE')
# 比較せず、ひとつのデータフレームで実行したい場合
#my_report = sv.analyze(df_train)

# htmlで表示

my_report.show_html("Report.html") # In[ ]:

以上

<広告>