メインコンテンツへスキップ
W&B のカスタムチャートは、wandb.plot 名前空間に用意された一連の関数を通じてプログラムから操作できます。これらの関数は W&B のプロジェクトダッシュボードにインタラクティブな可視化を表示し、混同行列、ROC 曲線、分布プロットなど、一般的な機械学習向けの可視化をサポートします。

利用可能なチャート関数

FunctionDescription
confusion_matrix()分類性能の可視化のために混同行列を生成します。
roc_curve()バイナリおよび多クラス分類器向けの ROC(Receiver Operating Characteristic)曲線を作成します。
pr_curve()分類器の評価用に Precision-Recall 曲線を作成します。
line()表形式データから折れ線グラフを作成します。
scatter()変数間の関係を可視化する散布図を作成します。
bar()カテゴリ型データ向けの棒グラフを生成します。
histogram()データ分布を分析するためのヒストグラムを作成します。
line_series()1つのチャート上に複数の折れ線系列をプロットします。
plot_table()Vega-Lite 仕様を用いてカスタムチャートを作成します。

代表的なユースケース

モデル評価

  • 分類: 分類モデルの評価には confusion_matrix(), roc_curve(), pr_curve() を使用
  • 回帰: 予測値と実測値のプロットには scatter()、残差分析には histogram() を使用
  • Vega-Lite チャート: ドメイン固有の可視化には plot_table() を使用

学習の監視

  • 学習曲線: line() または line_series() を使用して、エポックごとのメトリクスを追跡する
  • ハイパーパラメータ比較: bar() チャートを使用して設定を比較する

データ分析

  • 分布分析: 特徴量の分布は histogram() で可視化
  • 相関分析: 変数間の関係は scatter() で可視化

はじめに

混同行列をログに記録する

import wandb

y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 2, 0, 1, 1]
class_names = ["class_0", "class_1", "class_2"]

# runを初期化する
with wandb.init(project="custom-charts-demo") as run:
    run.log({
        "conf_mat": wandb.plot.confusion_matrix(
            y_true=y_true, 
            preds=y_pred,
            class_names=class_names
        )
    })

特徴量分析用の散布図を作成する

import numpy as np

# 合成データを生成する
data_table = wandb.Table(columns=["feature_1", "feature_2", "label"])

with wandb.init(project="custom-charts-demo") as run:

    for _ in range(100):
        data_table.add_data(
            np.random.randn(), 
            np.random.randn(), 
            np.random.choice(["A", "B"])
        )

    run.log({
        "feature_scatter": wandb.plot.scatter(
            data_table, x="feature_1", y="feature_2",
            title="Feature Distribution"
        )
    })