問題タブ [mahalanobis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scikit-learn - Sklearn KNN + mahalanobis on python
Sklearn で関数 NearestNeighbors を使用しようとしています。これらの関数で何が起こっているかを理解するための例を書きます。
上記のコードはうまく機能し、2 番目の最近点を正しく計算できます。しかし、データセットを使用しようとすると、いくつかの間違いが発生します。データセット マトリックスは 9959 * 384 マトリックスです。以下の行列を出力し、行列 training_data を宣言します
そして、サンプルをtraining_dataに変更するだけの上記のコードにtraining_dataを使用すると、間違いがあります。
これらの質問を解決するのを手伝ってください。
r - 観測値の各ペアのマハラノビス距離
データセットの各観測間のマハラノビス距離を計算しようとしてdat
います。各行は観測であり、各列は変数です。このような距離は次のように定義されます。
それを行う関数を書きましたが、遅いように感じます。R でこれを計算するより良い方法はありますか?
関数をテストするためのデータを生成するには:
これまで書いてきた機能です。どちらも機能し、私のデータ (800 個の obs と 90 個の変数) の場合、method = "forLoop"
とmethod = "apply"
でそれぞれ約 30 秒と 33 秒かかります。
NB: 使ってみouter()
ましたが、さらに遅くなりました (60 秒)
python - 不確かなポイントを持つ最近傍
2 つの 2D ポイント セットA
とがありB
ます。A
の各点について、最初の最近傍を見つけたいと思いますB
。しかし、私は不確実な点を扱っています (つまり、点には平均 (2D ベクトル) と 2*2 共分散行列があります)。
したがって、マハラノビス距離を使用したいと思いますが、scikit-learn
(たとえば) では、単一の共分散行列が必要なため、各点の共分散行列を渡すことができません。
現在、平均的な位置 (つまり、2D 正規分布の平均) のみを考慮すると、次のようになります。
L2 ノルムを距離として使用する代わりに、私の不確かな点を使用して、( B 内の点と Ba
内の点の間、それらのマハラノビス距離:A
b
どこC = inv(cov_a + cov_b)
ここでmu_a
(それぞれmu_b
) とcov_a
(それぞれ ) は不確定点(cov_b
それぞれ ) の 2D 平均と 2*2 共分散行列です。a
b
python - numpyでのベクトル化(二乗)マハラノビス距離
X (nxd)、Y (mxd)、正定値 L (dxd) があります。D_ij が (X_i - Y_i) * L * (X_i - Y_i).T である D を計算したい。n と m は約 250 です。d は約 10^4 です。
を使用できますscipy.spatial.distance.cdist
が、これは非常に遅いです。
この質問に対する Dougal の回答を見て、試してみました
これも非常に遅いです。
この計算をベクトル化するより効率的な方法はありますか?