knnsearch
入力データを使用して k 最近傍を探索
説明
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して Idx = knnsearch(X,Y,Name,Value)Idx を返します。たとえば、探索する最近傍の個数や、探索で使用する距離計量を指定できます。
例
入力引数
名前と値の引数
出力引数
ヒント
knnsearchは、一定の正の整数 k について、Y内の各点に最も近い k 個の点をX内で探索します。Y内の各点から一定距離以内にあるすべての点をX内で探索するには、rangesearchを使用します。knnsearchは、探索オブジェクトを保存しません。探索オブジェクトを作成するには、creatensを使用します。
アルゴリズム
代替機能
関数 knnsearch の名前と値のペアの引数 'NSMethod' を適切な値 (網羅的探索アルゴリズムの場合は 'exhaustive'、Kd 木アルゴリズムの場合は 'kdtree') に設定した場合、オブジェクト関数 knnsearch を使用して距離探索を実行することにより得られる結果と同じ探索結果になります。関数 knnsearch とは異なり、オブジェクト関数 knnsearch では ExhaustiveSearcher または KDTreeSearcher モデル オブジェクトが必要です。
Simulink ブロック
Simulink® に k 最近傍探索を統合するには、Statistics and Machine Learning Toolbox™ ライブラリにある KNN Search ブロックを使用するか、MATLAB Function ブロックを関数 knnsearch と共に使用します。たとえば、MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。
使用するアプローチを判断する際は、以下を考慮してください。
Statistics and Machine Learning Toolbox ライブラリ ブロックを使用する場合、固定小数点ツール (Fixed-Point Designer)を使用して浮動小数点モデルを固定小数点に変換できます。
MATLAB Function ブロックを関数
knnsearchと共に使用する場合は、可変サイズの配列に対するサポートを有効にしなければなりません。
参照
[1] Albanie, Samuel. Euclidean Distance Matrix Trick. June, 2019. Available at https://samuelalbanie.com/files/Euclidean_distance_trick.pdf.
[2] Friedman, J. H., J. Bentley, and R. A. Finkel. “An Algorithm for Finding Best Matches in Logarithmic Expected Time.” ACM Transactions on Mathematical Software 3, no. 3 (1977): 209–226.
