例えば、私はベクトルx
とa
が最も近いneigbourです。それで、b
はその次に近い隣りです。 PytonやRには、[a, b]
のようなものを出力するパッケージがあります。これは、最も近い隣人(おそらく多数決による)であり、bは2番目に近い隣人です。2つ以上の最近傍を返すKNNアルゴリズム
0
A
答えて
2
これは、これらのメトリックツリーが構築されているものです。うち
import numpy as np
from sklearn.neighbors import KDTree
X = np.array([[1,1],[2,2], [3,3]]) # 3 points in 2 dimensions
tree = KDTree(X)
dist, ind = tree.query([[1.25, 1.35]], k=2)
print(ind) # indices of 2 closest neighbors
print(dist) # distances to 2 closest neighbors
:
[[0 1]]
[[ 0.43011626 0.99247166]]
そして、ちょうどにあなたがsklearnのKDTreeを(劇中のあなたのメトリックに応じて、BallTreeを考慮)を使用して、そのような単純なものを求めているとしてあなたの質問は読み込み
明確である:KNN 通常は、分類作業のためのメトリクスツリー(KDTree、BallTree)に基づくいくつかの事前構築アルゴリズムを指す。多くの場合、これらのデータ構造は、1が興味を持っている唯一のものです。
編集
私が正しくあなたのコメントを解釈する場合は、manhattan/taxicab/l1 metricを使用します。
これらの空間ツリーの互換性リストについては、hereを参照してください。
あなたはちょうどそのようにそれを使用します。
X = np.array([[1,1],[2,2], [3,3]]) # 3 points in 2 dimensions
tree = KDTree(X, metric='l1') # !!!
dist, ind = tree.query([[1.25, 1.35]], k=2)
print(ind) # indices of 2 closest neighbors
print(dist) # distances to 2 closest neighbors
アウト:
[[0 1]]
[[ 0.6 1.4]]
関連する問題
- 1. 最速の最近傍アルゴリズム
- 2. K最近傍アルゴリズム疑問
- 3. MATLABの最近傍補間アルゴリズム
- 4. Pythonのインクリメンタルな最近傍アルゴリズム
- 5. K最近傍
- 6. はIndexError:K最近傍のPythonのK最近傍
- 7. Scikit-learn KNN(K最近傍)Apache Sparkを使用して並列化
- 8. モートンコードで最近傍を見つける
- 9. K最近傍を見つける
- 10. 処理中に最も近い近傍アルゴリズムを実行する方法
- 11. 近傍を見つけるための地雷探査アルゴリズム?
- 12. kNN - 計算された距離に基づいてトレーニング行列の最近傍点を見つける方法
- 13. UWPの最近傍レンダリング
- 14. PostGis最近傍問合せ
- 15. PCAとKNNアルゴリズム
- 16. 緯度と経度に基づいて最近傍点を計算するアルゴリズム
- 17. Visual Studio 2010で6つ以上の最近のプロジェクトを表示
- 18. CGAL:最近傍の情報を取得
- 19. リスト内のn個の最近傍点を見つける
- 20. 配列の3つ以上の最も近い数字
- 21. Sql Server spatial oracleのような最近傍を見つける
- 22. のKdツリー欠陥K最近傍
- 23. 移動ポイントの2D最近傍検索
- 24. Direct3Dスプライトの最近傍点補間?
- 25. 繰り返し(以上2)
- 26. Scipyラベルの近傍
- 27. SQL:2つ以上の一致を含むレコードを返す
- 28. 2つ以上のインデックスを返すためのバイナリ検索JAVA
- 29. 2つ以上のジェネリック型を返すJavaメソッド
- 30. 2つ以上のs式を返すClojureマクロ
感謝。あなたはベクトルの要素の距離行列である私自身の距離メトリックを挿入することで私を助けてくれるのですか?例えば、2つのベクトル[x1、x2]と[y2、y2]がある場合、ベクトル間の距離を距離行列から要素ごとに求める距離メトリックを挿入することが可能です。したがって、xとyとの間の距離は| x1-y1 | + | x2-y2 |となる。 – spartan
floatを返すdisting関数dist(x、y)を使って 'tree = KDTree(X、metric = dist)' 'を試してみるとエラーが出ます:ValueError:metric PyFuncDistanceはKDTreeに対して無効です – spartan
@spartan – sascha