web-dev-qa-db-ja.com

ペアワイズ距離が与えられた距離行列に近い点を見つける

問題。次のように、0と1の間のエントリを持つ対称距離行列があります。

D = ( 0.0 0.4 0.0 0.5 )
    ( 0.4 0.0 0.2 1.0 )
    ( 0.0 0.2 0.0 0.7 )
    ( 0.5 1.0 0.7 0.0 )

Dで与えられた(おおよその)ペアワイズ距離を持つ平面内のポイントを見つけたいと思います。これは厳密に正しい距離では通常不可能であることを理解しているため、「良い」近似で満足します。

私のマトリックスは小さめで、10x10以下なので、パフォーマンスは問題になりません。

質問。これを行うアルゴリズムを誰かが知っていますか?

背景。確率密度のセットがあり、その間に計算 Hellinger距離 があり、これを上記のように視覚化したいと思います。各セットには10​​個以下の密度(上記を参照)が含まれていますが、私は数百セット持っています。

これまでに行ったこと

  • 私は math.SE に投稿することを検討しましたが、何が得られるか 「geometry」としてタグ付け を見ると、この種の計算ジオメトリの質問はよりトピックに近いようですここに。コミュニティがこれを移行する必要があると考えている場合は、先に進んでください。
  • これは計算幾何学の単純な問題のように見え、クラスタリングに関係する誰もがそのような視覚化に興味があるかもしれないと思いますが、私は何もグーグルできませんでした。
  • 単純なアプローチの1つは、ポイントをランダムに下に縦断し、距離行列がDに近づくまでそれらを摂動させることです(たとえば、シミュレーテッドアニーリングを使用するか、遺伝的アルゴリズムを実行します)。もっと賢い方法を期待して、まだ試していないことを認めざるを得ません。
  • 上記の意味での「良い」近似の1つの特定の操作化は、未解決の問題セクションの問題4 ここ で、k = 2です。ここで、Dと結果の距離行列の間の最小のl1距離を見つけるために保証されているアルゴリズムを見つけることは未解決の質問である可能性がありますが、少なくともこの最適解のいくつかの近似。ここで答えが得られない場合は、 その問題を提起した紳士 にメールを送信し、近​​似アルゴリズムを知っているかどうかを尋ねます(ここで私が得た答えを投稿します)。
4
Stephan Kolassa

ここには非常に簡単な解決策があるようです。 (編集)

各点の座標を(x_i、y_i、z_i)に設定します。距離行列に従って2次方程式のシステムを形成します。方程式ごとにデルタ値が追加されるので、(x_a-x_b)^ 2 +(y_a-y_b)^ 2 +(z_a-z_b)^ 2 = D_ab + delta_abのようになります。 D_abを反対側に移動すると、両側にdelta_ab Squareしかないため、delta_abは常に負ではありません。

すべての二乗デルタを合計すると、多変数関数ができます。 (ほとんどこの部分を逃します)

現在の目標は、これらすべてのデルタの合計を最小化することです。これは、勾配降下法で簡単に実行できます。

このアプローチに問題がある場合はお知らせください。

1
InformedA