PythonでEDAを自動化!ydata-profiling・Sweetviz・AutoViz徹底比較

logo_Python

この記事では、代表的な3つのライブラリydata-profiling・Sweetviz・AutoVizについて紹介します

目次

はじめに

データ分析や機械学習の前に欠かせない工程といえば EDA(探索的データ分析:Exploratory Data Analysis) です。しかし、毎回ヒストグラムや相関行列を手作業で描くのは大変ですよね。

そこで登場するのが、自動でデータの特徴を可視化・要約してくれるEDA支援ライブラリです。

この記事では、代表的な3つのライブラリydata-profiling・Sweetviz・AutoVizについて紹介します

各ライブラリの説明

ydata-profiling

最も歴史が長く、有名なEDA自動化ツール。

データセットを渡すだけで、統計量・欠損値・相関・分布・型の推定などを網羅したHTMLレポートを生成します。

レポートは見やすく整理されており、データ品質のチェックや前処理方針の検討に最適です。

また、Pandasとの親和性が高く、1行で簡単にEDAを完結できる点が魅力です。

Sweetviz

デザイン性が高く、比較に特化したEDAライブラリ

トレーニングデータとテストデータ、あるいは異なるグループのデータを簡単に比較できます。

グラフィカルで直感的なレポートをHTMLとして出力し、データの偏りやバランスを視覚的に把握可能です。

特に分類モデル開発前のデータ検証ステップにおいて非常に有用です。

AutoViz

最小限のコードで豊富な可視化を自動生成するEDAツール。

ターゲット変数を指定すれば、特徴量ごとの分布・関係性・重要度などを自動で描画します。

グラフ生成に重点を置いており、Notebook環境でのデータ理解を視覚的に支援します。

大規模データにも対応しており、短時間で全体像を掴みたい分析初期段階に適しています。

各ライブラリの比較

ydata-profiling

 メリット

  • 統計量や欠損値、相関などを自動で詳細に分析。
  • 1行でHTMLレポートを生成でき、手間が少ない。
  • データ品質チェックや初期探索に最適。

 デメリット

  • 大規模データでは処理が重くなることがある。
  • ビジュアルよりも統計的レポート寄り。
  • カスタマイズ性が限定的。
Sweetviz

 メリット

  • トレーニングデータとテストデータの比較分析に特化
  • デザイン性が高く、グラフが見やすい。
  • レポートの共有が簡単(HTML形式)。

 デメリット

  • 統計分析の深さはydata-profilingに劣る。
  • NumPyなどとの互換性問題が出る場合がある。
  • カスタム集計や数値調整が難しい。
AutoViz

 メリット

  • コード1〜2行で豊富な可視化グラフを自動生成
  • 目的変数を指定するだけで関連性を可視化。
  • Notebook環境で軽快に動作。

 デメリット

  • HTMLレポート形式ではなくNotebook上での出力中心。
  • 細かい調整(フォント、色など)が難しい。
  • 他ツールに比べて統計情報の出力は控えめ。

ハンズオン

実装環境:今回はGoogle Colabratoryを使用します。

使用するデータ:今回はタイタニック号のデータを使用します。

import seaborn as sns
df = sns.load_dataset("titanic")
ydata-profiling
!pip install ydata-profiling

from ydata_profiling import ProfileReport

profile = ProfileReport(
 df,
 title="Data Profile Report",
 explorative=True, # 追加の可視化・相関などを有効化
 minimal=False # 大規模なら True にして軽量化
)
profile.to_file("ydata_profile.html")

こちらのコードを実行して、画面右の「ファイル」をクリックしてください。

中身を確認するとhtmlファイルが作成されているので。こちらをダウンロードして、ローカルで開いてみてください。

以下のようにレポートが作成されていたら成功です。

Sweetviz

こちらのコードを実行したら、一度セッションを再起動してください。

※これを実行しないとSweetviz と NumPy のバージョン不整合によってエラーが発生します。

!pip install numpy==1.26.4 sweetviz --upgrade --quiet
import sweetviz as sv

report = sv.analyze(df)
# レポートを生成(HTMLファイル)
report.show_html('sweetviz_report.html')

こちらのコードを実行して、画面右の「ファイル」をクリックしてください。

中身を確認するとhtmlファイルが作成されているので。こちらをダウンロードして、ローカルで開いてみてください。

以下のようにレポートが作成されていたら成功です。

AutoViz
!pip install -U autoviz --quiet


from autoviz.AutoViz_Class import AutoViz_Class

AV = AutoViz_Class()
 viz_df = AV.AutoViz(
 filename="", # 直接 df を渡すので空文字
 dfte=df, # ← DataFrame を渡す
 depVar="alive", # 目的変数が無ければ空文字
 header=0,
 verbose=0,
 lowess=False,
 chart_format="svg", # "svg" または "png"
 max_rows_analyzed=300000,
 max_cols_analyzed=200
)

実行結果として以下のような表が生成されれば成功です。

おわりに

本記事では、代表的なEDA自動化ライブラリであるydata-profiling・Sweetviz・AutoViz の特徴を比較して紹介しました。

どのツールも「数行のコードでEDAを自動化できる」という共通点を持ちながら、それぞれ得意分野が異なります。

これらのツールを使い分けることで、分析の効率を大幅に高め、より良い洞察を得ることができるでしょう。

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次