34
13

More than 1 year has passed since last update.

個人的に最もおすすめなEDAツール Sweetvizの使い方

Last updated at Posted at 2022-12-01

EDAって何?

EDAとは探索的データ分析(Exploratory Data Analysis)の略です。

データの中身をざっと理解したり、データの特徴を捉えたりすることを指します。

具体的には、

  • 特徴量ごとに平均・分散・ヒストグラムなどを作成して、データ全体の傾向を理解する
  • データの量や欠損値の数を計算し、データの品質を確認する
  • 特徴量間の相関係数を計算し、特徴量の関係を捉える

といったことが挙げられます。

このように、データの全体像や傾向などを確認することで、データ分析上の有益な気付きを得ることができます。

しかし、pandasやmatplotlibでいちいちこれらのコードを書くのは面倒です。

そこで、基本的なEDAがたった数行でできてしまうEDAツールを使うと便利です。

EDAツールの紹介

有名なEDAツールとしては

  • Pandas-profiling
  • Sweetviz
  • Autoviz

が挙げられます。

個人的にはSweetvizがお気に入りです。

Sweetvizの強みは、学習データとテストデータの比較ができるところです。

これはPandas-profilingやAutovizにはない機能です。

Sweetvizを使ってみる

  1. インストール

    pip install sweetviz
    
  2. インポート

    import sweetviz as sv
    
  3. EDA実行

    データを1つ扱う場合はsv.analyze()を、データを2つ扱う場合はsv.compare()を使います。

    # 1データの場合
    report = sv.analyze(df)
    
    # 2データの場合
    report = sv.compare(df_train, df_test)
    

    目的変数がある場合は、オプション引数target_featにカラム名を指定すると、目的変数を考慮したEDAを行なってくれます。

    # 1データで目的変数を指定する場合
    report = sv.analyze(df, target_feat="hogehoge")
    
    # 2データで目的変数を指定する場合
    report = sv.compare(df_train, df_test, target_feat="hogehoge")
    

    データフレームに別名をつけて出力することもできます。

    # 1データの場合
    report = sv.analyze([df, "Data"])
    
    # 2データの場合
    report = sv.compare([df_train, "Train"], [df_test, "Test"])
    
  4. 出力

    3でreportを作成したら、EDAの結果を出力します。

    • HTMLファイルに出力する場合

      ファイルパスを指定しない場合は、SWEETVIZ_REPORT.htmlで出力されます。

      report.show_html("eda.html")
      
    • ノートブックのセル内で出力する場合

      report.show_notebook()
      

使用例

ここでは、カリフォルニアの住宅価格データを使います。

# 2データを比較
report = sv.compare([df_train, 'Train'], [df_test, 'Test'], target_feat="median_house_value")

# HTMLファイルに出力
report.show_html()

すると、下のようにHTMLファイルが作成されます。

  • 特徴量ごとの基礎統計量
  • ヒストグラム
  • 学習データとテストデータの比較

などが表示されました。

SS.jpg

おわりに

Sweetvizを用いることで簡単に基礎的なEDAをたった数行で終わらせることができました。

しかも結果が1ページにまとまっているので見やすいです。

ぜひみなさんもお試しください!

34
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
13