KNN Search

ライブラリ:
Statistics and Machine Learning Toolbox /
Neighborhood Searcher
説明
KNN Search ブロックは、最近傍探索モデル オブジェクト (ExhaustiveSearcher または KDTreeSearcher) を使用して、クエリ点に対する最近傍をデータ内で探索します。
オブジェクトを含むワークスペース変数の名前を指定することにより、観測データを含む学習済みの探索モデル オブジェクトをブロックにインポートします。入力端子 x でクエリ点を受け取り、出力端子 Idx でデータ内の k 最近傍点のインデックスを返します。オプションの出力端子 D は、クエリ点と最近傍点の間の距離を返します。
例
端子
入力
クエリ点。行ベクトルとして指定します。x の列数は、[最近傍探索モデルの選択] で指定される searcher オブジェクト内の予測子変数の数と同じでなければなりません。x の列の順序は searcher オブジェクトと同じでなければなりません。
データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
出力
データ内の最近傍のインデックス。数値行ベクトルまたは 1 行 1 列の cell 配列として返されます。
[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [同順位を含める] を選択していない場合、ブロックは 1 行 k 列の数値行ベクトルを返します。ここで、k は探索対象の最近傍の数です。行ベクトルの各列に、データ内の最近傍点のインデックスが格納されます。インデックスはクエリ点 x までの距離の昇順になります。
[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [同順位を含める] を選択している場合、ブロックは 1 行 1 列の cell 配列を可変サイズの信号として返します。この配列に、クエリ点 x に最も近いデータ内の観測値のインデックスを少なくとも k 個含む数値行ベクトルが格納されます。ベクトルの列はクエリ点までの距離の昇順になります。
データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
クエリ点に対する最近傍の距離。数値行ベクトルまたは 1 行 1 列の cell 配列として返されます。
[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [同順位を含める] を選択していない場合、ブロックは 1 行 k 列の数値行ベクトルを返します。ここで、k は探索対象の最近傍の数です。行ベクトルの各列に、データ内の最近傍点からクエリ点 x までの距離計量による距離が格納されます。行ベクトルの列はクエリ点までの距離の昇順になります。
[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [同順位を含める] を選択している場合、ブロックは 1 行 1 列の cell 配列を可変サイズの信号として返します。この配列に、クエリ点 x に最も近いデータ内の観測値の距離を少なくとも k 個含む数値行ベクトルが格納されます。ベクトルの列はクエリ点までの距離の昇順になります。
依存関係
この端子を有効にするには、KNN Search ブロックで [最近傍距離の出力端子を追加する] を選択します。
データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
パラメーター
メイン
ExhaustiveSearcher オブジェクトまたは KDTreeSearcher オブジェクトを含むワークスペース変数の名前を指定します。
メモ
[ブロック パラメーター] ダイアログ ボックスで指定できるすべてのパラメーターに既定の設定が使用されます。ダイアログ ボックスのパラメーターは探索モデル オブジェクトの内容をオーバーライドします。
プログラムでの使用
ブロック パラメーター: NeighborhoodSearcher |
| 型: ワークスペース変数 |
値: ExhaustiveSearcher オブジェクト | KDTreeSearcher オブジェクト |
既定の設定: "searcher" |
チェック ボックスをオンにすると、KNN Search ブロックに 2 番目の出力端子 D が追加されます。
プログラムでの使用
ブロック パラメーター: ShowOutputDistances |
| 型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
クエリ点についてデータ内で探索する最近傍の数を指定します。
プログラムでの使用
ブロック パラメーター: NumNeighbors |
| 型: 正の整数 |
値: single | double |
既定の設定: 1 |
[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [同順位を含める] を選択しない場合、ブロックはクエリ点から同じ距離にある観測値の中でインデックスが最も小さいものを選択します。
[同順位を含める] を選択すると次のようになります。
ブロックは、k 番目に短い距離と等しい距離をもつすべての最近傍を出力引数に含めます。k 番目に短い距離と等しい距離をもつ最近傍が 5 つを超える場合は、インデックスが最も小さいものから最初の 5 つの最近傍のみがブロック出力に含まれます。
ブロック出力の Idx と D は 1 行 1 列の cell 配列になり、それぞれ少なくとも k 個のインデックスと距離のベクトルが各 cell に格納されます。ベクトルの列はクエリ点までの距離の昇順になります。
プログラムでの使用
ブロック パラメーター: IncludeTies |
| 型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
クエリ点に対するデータ内での最近傍の探索に使用する距離計量を指定します。
ExhaustiveSearcher オブジェクトと KDTreeSearcher オブジェクトの両方について、ブロックは次の距離計量をサポートします。
| 値 | 説明 |
|---|---|
"chebychev" | チェビシェフ距離 (最大座標差) |
"cityblock" | 市街地距離 |
"euclidean" | ユークリッド距離 |
"minkowski" | ミンコフスキー距離。既定の指数は 2 です。別の指数を [ブロック パラメーター] ダイアログ ボックスで指定できます。 |
ExhaustiveSearcher オブジェクトについては、ブロックは次の距離計量もサポートします。
| 値 | 説明 |
|---|---|
"correlation" | 1 から、観測値間の標本線形相関を減算 (値の系列として処理) |
"cosine" | (行ベクトルとして扱われる) 観測値間の夾角の余弦を 1 から減算 |
"hamming" | ハミング距離 (異なる座標の比率) |
"jaccard" | 1 からジャカード係数 (異なる非ゼロ座標の比率) を減算 |
"mahalanobis" | 正定値共分散行列を使用して計算されるマハラノビス距離。既定では、ブロックは searcher オブジェクトのデータから共分散行列を計算します。カスタマイズした共分散行列を [ブロック パラメーター] ダイアログ ボックスで指定できます。 |
"seuclidean" | 標準化されたユークリッド距離。クエリ点 x とデータの間の各座標差は、データから算出される標準偏差の対応する要素で除算することによりスケーリングされます。別のスケーリング方法を [ブロック パラメーター] ダイアログ ボックスで指定できます。 |
"spearman" | 1 から観測値間の標本スピアマン順位相関係数を減算 (値の系列として処理) |
メモ
距離計量の設定は、指定された
searcherオブジェクトのDistanceプロパティをオーバーライドします。KNN Search ブロックは、
"fasteuclidean"または"fastseuclidean"の距離計量はサポートしていません (距離計量を参照)。
プログラムでの使用
ブロック パラメーター: DistanceMetric |
| 型: 文字ベクトル |
値: "euclidean" | "chebychev" | "cityblock" | "minkowski" | "correlation" | "cosine" | "hamming" | "jaccard" | "mahalanobis" | "seuclidean" | "spearman" |
既定の設定: "euclidean" |
既定では、ブロックは searcher オブジェクトのデータから共分散行列を計算します。[Customized] を選択して [カスタマイズされた行列] ボックスに正定値行列を入力することで、カスタマイズした共分散行列を指定できます。
メモ
この設定は、指定された searcher オブジェクトの DistParameter プロパティをオーバーライドします。
プログラムでの使用
ブロック パラメーター: CovarianceMatrix |
| 型: 正定値行列 |
値: "Computed using data in searcher" | "Customized" |
既定の設定: "Computed using data in searcher" |
依存関係
このパラメーターを有効にするには、[距離計量] を "mahalanobis" に設定します。
既定では、ブロックは searcher オブジェクトのデータからスケール パラメーター値を計算します。[Customized] を選択して [カスタマイズされたスケール] テキスト ボックスに非負の数値行ベクトルを入力することで、カスタマイズしたスケール パラメーター値を指定できます。行ベクトルの列数は、searcher オブジェクト内の予測子変数の数と同じでなければなりません。標準化されたユークリッド距離をブロックで計算するときに、データの各座標とクエリ点が Scale の対応する要素によってスケーリングされます。
メモ
この設定は、指定された searcher オブジェクトの DistParameter プロパティをオーバーライドします。
プログラムでの使用
ブロック パラメーター: Scale |
| 型: 非負の数値行ベクトル |
値: "Standard deviation of data in searcher" | "Customized" |
既定の設定: "Standard deviation of data in searcher" |
依存関係
このパラメーターを有効にするには、[距離計量] を "seuclidean" に設定します。
ミンコフスキー距離計量の指数を指定します。P = 2 という既定のケースでは、ミンコフスキー距離はユークリッド距離を与えます。P = 1 という特殊なケースでは、ミンコフスキー距離は市街地距離を与えます。P = ∞ という特殊なケースでは、ミンコフスキー距離はチェビシェフ距離を与えます。
メモ
この設定は、指定された searcher オブジェクトの DistParameter プロパティをオーバーライドします。
プログラムでの使用
ブロック パラメーター: MinkExp |
| 型: 正の整数 |
値: positive integer |
既定の設定: 2 |
依存関係
このパラメーターを有効にするには、[距離計量] を "minkowski" に設定します。
データ型
固定小数点が使用可能なパラメーター
固定小数点演算の丸めモードを指定します。詳細は、丸めモード (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に、最も近い表現可能な値に丸められます。ブロック パラメーターの丸めを制御するには、マスク フィールドに MATLAB® の丸め関数を使用して式を入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
| 型: 文字ベクトル |
値: "Ceiling" | "Convergent" | "Floor" | "Nearest" | "Round" | "Simplest" | "Zero" |
既定の設定: "Floor" |
オーバーフローの際に飽和するか折り返すかを指定します。
| アクション | 理由 | オーバーフローの際の影響 | 例 |
|---|---|---|---|
このチェック ボックスをオンにする ( | モデルにオーバーフローの可能性があり、生成されたコードで明示的な飽和保護が必要である。 | オーバーフローの際は、データ型が表現できる最小値または最大値に飽和します。 | データ型 |
このチェック ボックスをオフにする ( | 生成されたコードの効率を最適化したい。 ブロックが範囲外の信号を処理する方法を過剰指定したくない。詳細は、信号範囲のエラーのトラブルシューティング (Simulink)を参照してください。 | オーバーフローの際は、データ型が表現できる適切な値で折り返します。 | データ型 |
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
| 型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
このパラメーターを選択して、ブロックに指定したデータ型を固定小数点ツールがオーバーライドしないようにします。詳細は、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
| 型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
データ型
Idx 出力のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。
[データ型アシスタントを表示] ボタン
をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
プログラムでの使用
ブロック パラメーター: IndicesDataTypeStr |
| 型: 文字ベクトル |
値: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>" |
既定の設定: "Inherit: auto" |
Simulink® がチェックする Idx 出力範囲の最小値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[インデックスのデータ型、最小値] パラメーターが、Idx の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: IndicesOutMin |
| 型: スカラー |
値: "[]" | スカラー |
既定の設定: "[]" |
Simulink がチェックする Idx 出力範囲の最大値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[インデックスのデータ型、最大値] パラメーターが、Idx の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: IndicesOutMax |
| 型: スカラー |
値: "[]" | スカラー |
既定の設定: "[]" |
距離 (D) 出力のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。
[データ型アシスタントを表示] ボタン
をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
プログラムでの使用
ブロック パラメーター: DistanceDataTypeStr |
| 型: 文字ベクトル |
値: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>" |
既定の設定: "Inherit: auto" |
メモ
スピアマン距離計量に対しては、固定小数点データ型はサポートされません。
依存関係
このパラメーターを有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [最近傍距離の出力端子を追加する] を選択します。
Simulink がチェックする距離 (D) 出力範囲の最小値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[距離のデータ型、最小値] パラメーターが、D の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: DistanceOutMin |
| 型: スカラー |
値: "[]" | スカラー |
既定の設定: "[]" |
依存関係
このパラメーターを有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [最近傍距離の出力端子を追加する] を選択します。
Simulink がチェックする距離 (D) 出力範囲の最大値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[距離のデータ型、最大値] パラメーターが、D の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: DistanceOutMax |
| 型: スカラー |
値: "[]" | スカラー |
既定の設定: "[]" |
依存関係
このパラメーターを有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [最近傍距離の出力端子を追加する] を選択します。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
代替機能
MATLAB Function ブロックを最近傍探索モデル オブジェクト (ExhaustiveSearcher または KDTreeSearcher) の knnsearch オブジェクト関数と共に使用できます。たとえば、MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。
Statistics and Machine Learning Toolbox™ ライブラリ内の KNN Search ブロックを使用するかどうか、または MATLAB Function ブロックを関数 knnsearch と共に使用するかどうかを判断する際には、以下を考慮してください。
Statistics and Machine Learning Toolbox ライブラリ ブロックを使用する場合、固定小数点ツール (Fixed-Point Designer)を使用して浮動小数点モデルを固定小数点に変換できます。
MATLAB Function ブロックを関数
knnsearchと共に使用する場合は、可変サイズの配列に対するサポートを有効にしなければなりません。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2023b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
