2 つの 2D ポイント セットA
とがありB
ます。A
の各点について、最初の最近傍を見つけたいと思いますB
。しかし、私は不確実な点を扱っています (つまり、点には平均 (2D ベクトル) と 2*2 共分散行列があります)。
したがって、マハラノビス距離を使用したいと思いますが、scikit-learn
(たとえば) では、単一の共分散行列が必要なため、各点の共分散行列を渡すことができません。
現在、平均的な位置 (つまり、2D 正規分布の平均) のみを考慮すると、次のようになります。
nearest_neighbors = NearestNeighbors(n_neighbors=1, metric='l2').fit(A)
distance, indices = nearest_neighbors.kneighbors(B)
L2 ノルムを距離として使用する代わりに、私の不確かな点を使用して、( B 内の点と Ba
内の点の間、それらのマハラノビス距離:A
b
d(a, b) = sqrt( transpose(mu_a-mu_b) * C * (mu_a-mu_b))
どこC = inv(cov_a + cov_b)
ここでmu_a
(それぞれmu_b
) とcov_a
(それぞれ ) は不確定点(cov_b
それぞれ ) の 2D 平均と 2*2 共分散行列です。a
b