Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

Observed Contour

Observed Contour は、実際に試行された点(観測トライアル)だけから、2 つの軸に対する値の分布を等高線とカラーマップで描くチャートです。

モデルによる予測ではなく「実測値をなめらかにつないだもの」を見るためのツールで、データの無い領域は塗らずに空白にします。

このチャートでわかること

  • 2 つの軸(X と Y)に対して、ある値(色)がどこで高くなりどこで低くなるかを一目で把握できます。
  • 軸にも色にもパラメータと目的関数のどちらでも選べるため、たとえば「2 つの目的関数の組み合わせに対して 3 つ目の目的がどうなるか」といった、実測に基づくトレードオフも描けます。
  • 空白部分は「まだ試していない領域」を表します。 モデルで埋めた推定値ではないので、そのまま「データが無い」と読めます。

見方

  • :右側のカラーバーが示す値の大小を表します。 カラーバーには最大、中央、最小の数値目盛と、色が表す値の名前(凡例タイトル)が付いています。
  • 空白:そこには観測点が無い(または下記 Coverage で切り捨てられた)ことを意味します。
  • :重ねて表示される丸は実際のトライアルです。色は同じカラーマップに従います。
  • 図の下のサブタイトル「Interpolated from observed trials; blank = no data」は、この図が観測点の補間であり外挿していないことの注意書きです。

操作

項目 説明
X / Y / Value 横軸、縦軸、色に割り当てる列を選びます(数値パラメータと目的関数から選択)。
Coverage 離れた点どうしを無理につないだ広い面をどこまで残すかを調整します。小さくするとデータの薄い領域を厳しく空白にし(外挿を抑える)、大きくすると広く塗ります。
Show points 観測トライアル点の重ね描きの ON / OFF。
Contours(2D) 等高線を重ねて値の段階を見やすくします。
Log color(2D) 色のスケールを対数にします(値がすべて正のときのみ有効)。
3D 値を高さにとった立体サーフェスで表示します。マスク(空白)は穴として残り、ここでも外挿は見せません。
Density shade(3D) 近傍の観測が薄いセルを半透明にフェードさせます。
Feasible only 制約付き Study で、実行可能な(制約を満たす)トライアルだけを使います。

トライアル詳細

2D と 3D のどちらの表示でも、重ねて表示された観測点にマウスを載せると、そのトライアルの座標と値のツールチップが表示されます。 クリックすると詳細モーダル(パラメータ、目的値、アーティファクトなど)が開きます。 3D では Show points が ON のときに有効です(カメラの回転やパン中はツールチップを表示しません)。

解釈上の注意

  • 空白の領域は「データが無い」ことを意味します。モデルの予測値ではありません。
  • 観測点の密度が低い場所ほど補間の信頼性は下がります(3D では Density shade で可視化)。
  • 同じ列を X と Y の両方に選ぶと縮退するため、警告が表示されます。

他チャートとの違い(PDP との比較)

  • PDP:サロゲートモデルを学習し、他の変数を平均化(周辺化)した「平均的な効果」を描きます。 モデルを前提とし、データの無い領域も外挿して埋めます。
  • Observed Contour:モデルを使わず、観測点の補間だけを描き、外挿しません。 「実際に観測された事実はどうだったか」を確認したいときに使います。

計算方法

Observed Contour は、サロゲートモデルを学習せず、観測点そのものから 2D/3D の面を作ります。考え方としては「観測点を三角形でつなぎ、その内側だけを線形補間する」方式です。したがって、データのある場所はなめらかに見えますが、データの無い場所を推定で埋めることはありません。

1. 前処理

まず観測点 (x,y,v)(x, y, v) のうち、X、Y、値 vv のいずれかが欠損または非有限な点は除外します。ほぼ同じ位置に重なっている点は 1 点にまとめ、値は平均します。これは、ほとんど同じ点が多数あると三角形分割が不安定になりやすいためです。

その後、X と Y は観測範囲に基づいて [0,1][0,1] に正規化します。

x=xxminxmaxxmin,y=yyminymaxyminx' = \frac{x - x_{\min}}{x_{\max} - x_{\min}}, \qquad y' = \frac{y - y_{\min}}{y_{\max} - y_{\min}}

こうすることで、X 軸と Y 軸の単位やスケールが大きく違っていても、片方の軸だけに極端に細長い三角形ができにくくなります。

2. Delaunay 三角形分割による補間

正規化後の点集合に対して Delaunay 三角形分割を作ります。Delaunay 分割は、できるだけ細長い三角形を避ける性質があり、観測点どうしを素直につなぐのに向いています。

各三角形の内部では、頂点 a,b,ca, b, c の値 va,vb,vcv_a, v_b, v_c を重心座標で線形補間します。点 pp がその三角形の内部にあるとき、

v(p)=λava+λbvb+λcvc,λa+λb+λc=1v(p) = \lambda_a v_a + \lambda_b v_b + \lambda_c v_c, \qquad \lambda_a + \lambda_b + \lambda_c = 1

となるように値を計算します。つまり、各地点の値は「その点を囲む三角形の頂点値の重み付き平均」です。

Observed Contour は外挿を行わないため、観測点で囲まれていない領域は空白のまま残ります。また、あまりに疎な点どうしを無理につないでしまう三角形は使わず、そこも空白として扱います。

3. 等高線の抽出

補間した値を格子状に並べたあと、各セルの 4 隅の値から等高線を取り出します。Observed Contour の 2D 表示に出る等高線は、マーチングスクエア法で作られます。

各辺の両端の値を a,ba, b、等高線レベルを LL とすると、辺上の交点は線形補間で求めます。

t=Labat = \frac{L - a}{b - a} tt00 から 11 の間にあるとき、その位置に等高線が辺を横切ります。セル内で得られた交点どうしを結んで、等高線の線分を作ります。

ただし、4 隅のどこかにマスクされた値があるセルでは等高線を引きません。そのため、等高線がデータの無い領域へ延びてしまうことはありません。

4. Density shade(密度シェーディング)

3D 表示では、補間面そのものに加えて「その面がどれくらい観測点に支えられているか」も示します。そのために、観測点を格子に数え上げて密度マップを作り、近傍平均でなめらかにしたあと、最大値で割って 00 から 11 に正規化します。

ρnorm(x,y)=ρ(x,y)maxρ\rho_{\mathrm{norm}}(x, y) = \frac{\rho(x, y)}{\max \rho}

この正規化密度を不透明度に反映し、観測が密な場所ははっきり、疎な場所は半透明にします。したがって、3D の面が見えていても、半透明な領域は「形は描けているが、観測点による裏付けは弱い」と読めます。