メインコンテンツへスキップ
折れ線プロットでポイント集約の方法を使用して、Data Visualization の精度とパフォーマンスを向上させます。ポイント集約モードには、フルフィデリティランダムサンプリング の 2 種類があります。W&B はデフォルトでフルフィデリティモードを使用します。

フルフィデリティ

フルフィデリティモードを使用すると、W&B はデータポイント数に基づいて x 軸を動的なバケットに分割します。各バケット内の最小値・最大値・平均値を計算し、その結果を折れ線グラフのポイント集約として描画します。 ポイント集約にフルフィデリティモードを使用する主な利点は 3 つあります。
  • 極端な値やスパイクを保持する: データ内の極端な値やスパイクをそのまま保持できます。
  • 最小値および最大値のポイントの描画方法を設定する: W&B App を使用して、極端な値 (最小/最大) をシェーディングされた領域として表示するかどうかをインタラクティブに設定できます。
  • データの忠実度を落とさずにデータを探索する: 特定のデータポイントにズームインすると、W&B は x 軸のバケットサイズを再計算します。これにより、精度を損なうことなくデータを探索できます。キャッシュを使用して以前に計算された集約結果を保存し、読み込み時間を短縮するため、特に大規模なデータセットをナビゲートする場合に有用です。

フルフィデリティを有効にする

W&B ではデフォルトでフルフィデリティモードが有効になっています。手動で設定するには、次の手順に従ってください。
  1. ワークスペースに移動します。
  2. 画面右上の Add panels ボタンの左隣にある歯車アイコンをクリックします。
  3. 表示される UI スライダーで Line plots を選択します。
  4. Point aggregation セクションから Full fidelity を選択します。
  5. Smoothing アルゴリズムと設定を行います。
  6. AggregationMeanMin、または Max に設定します。
  7. Apply をクリックします。

シェーディングを設定する

フルフィデリティの折れ線プロットの陰影部分では、次のいずれかを表示できます。
  • Min/Max: 各 X 軸の点について、最小値と最大値の間の領域に陰影を付けます。陰影部分は、それぞれのバケットにおける最小値から最大値までのすべての点を表します。 Min/Max Range=[min(x1,x2,,xn), max(x1,x2,,xn)]\text{Min/Max Range} = [\min(x_1, x_2, \ldots, x_n),\ \max(x_1, x_2, \ldots, x_n)] ここで、x_1, x_2, \ldots, x_n は特定のバケット内の値です。
  • Standard deviation: 各 X 軸の点について、標準偏差を用いて値のばらつきを計算し、その範囲に陰影を付けます。 SD=1ni=1n(xix)2SD = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \overline{x})^2}
  • Standard error: 各 X 軸の点について、値をサンプルサイズの平方根で割ることでサンプリング誤差の大きさを計算し、その範囲に陰影を付けます。 SE=SDnSE = \frac{SD}{\sqrt{n}}
  • None: 陰影なし(デフォルト)。
次の画像は青い折れ線プロットを示しています。水色の陰影は、各バケットの最小値と最大値を表しています。
Shaded confidence areas
シェーディングを設定するには、次の手順を実行します。
  1. ワークスペースに移動します。
  2. 折れ線プロットにカーソルを合わせ、歯車アイコンをクリックします。
  3. Data タブで、必要に応じて Point aggregationFull fidelity に設定し、スムージングアルゴリズムを設定します。
  4. Grouping タブで Group runs をオンにします。必要に応じて、Group by に run 属性を設定します。
  5. AggMean(デフォルト)、Min、または Max に設定します。
  6. RangeMin/MaxStd DevStd Err、または None に設定します。
  7. Apply をクリックします。

データの忠実度を損なうことなくデータを探索する

外れ値やスパイクのような重要なポイントを見落とさずに、データセット内の特定の領域を分析できます。折れ線グラフをズームインすると、W&B は各バケット内の最小値、最大値、平均値を計算するために使用するバケットサイズを自動的に調整します。
プロットのズーム機能
W&B はデフォルトで x 軸を動的に 1000 個のバケットに分割します。各バケットについて、W&B は次の値を計算します:
  • Minimum: そのバケット内の最小値。
  • Maximum: そのバケット内の最大値。
  • Average: そのバケット内のすべてのポイントの平均値。
W&B は、バケット内の値をプロットする際に、完全なデータ表現が維持され、すべてのプロットに外れ値が含まれるようにします。1,000 ポイント以下までズームインすると、フル・フィデリティ・モードで追加の集約なしにすべてのデータポイントが描画されます。 折れ線グラフをズームインするには、次の手順に従います:
  1. 自分の W&B プロジェクトに移動します。
  2. 左側のタブで Workspace アイコンを選択します。
  3. 必要に応じて、折れ線グラフパネルをワークスペースに追加するか、既存の折れ線グラフパネルに移動します。
  4. ズームインしたい特定の領域をクリックしてドラッグし、範囲を選択します。
折れ線グラフのグルーピングと式Line Plot Grouping を使用する場合、選択したモードに応じて W&B は次のように動作します:
  • Non-windowed sampling (grouping): run 間で x 軸上のポイントを揃えます。同じ x 値を共有する複数のポイントがある場合は平均値を取り、それ以外は離散的なポイントとして表示されます。
  • Windowed sampling (grouping and expressions): x 軸を 250 個のバケット、または最長の線のポイント数(小さい方)に分割します。各バケット内のポイントの平均値を W&B が計算します。
  • Full fidelity (grouping and expressions): Non-windowed sampling に類似していますが、パフォーマンスと詳細のバランスをとるため、run ごとに最大 500 ポイントを取得します。

ランダムサンプリング

ランダムサンプリングでは、ランダムにサンプリングした 1500 個のポイントを使って折れ線グラフをレンダリングします。大量のデータポイントがある場合のパフォーマンス向上のために有効です。
ランダムサンプリングでは、サンプリング結果が決定的ではありません。そのため、重要な外れ値やスパイクがサンプリングから外れてしまい、結果としてデータの精度が低下する場合があります。

ランダムサンプリングを有効にする

デフォルトでは、W&B はフルフィデリティモードを使用します。ランダムサンプリングを有効にするには、次の手順に従います。
  1. 対象の W&B プロジェクトに移動します
  2. 左側のタブで Workspace アイコンを選択します
  3. 画面右上の Add panels ボタンの左にある歯車アイコンを選択します
  4. 表示される UI のスライダーから Line plots を選択します
  5. Point aggregation セクションで Random sampling を選択します

サンプリングされていないデータへのアクセス

W&B Run API を使用すると、run 中に記録されたメトリクスの全履歴にアクセスできます。次の例では、特定の run から損失値(loss)を取得して処理する方法を示します。
# W&B APIを初期化する
run = api.run("l2k2/examples-numpy-boston/i0wt6xua")

# 'Loss'メトリクスの履歴を取得する
history = run.scan_history(keys=["Loss"])

# 履歴からloss値を抽出する
losses = [row["Loss"] for row in history]