問題タブ [knn]
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.
c++ - openmpとセグメンテーション違反を使用した並列K最近傍
「dat」のデータポイントのk最近傍(KNN)を実行しようとしているので、最初のステップは、各ポイントと他のすべてのポイントの間の距離行列を作成し、各ポイントについてK最近傍を見つけます。次のコードは、openmpなしでシリアルで完全に機能します。ただし、openmpを使用すると、セグメンテーション違反が発生します。このエラーは、k個の最小要素のインデックスを含む最小値を更新する方法に関係していると思います。ベクトルが最小の「リダクション」を使用する必要があるのではないかと思いましたが、使用方法がわからないので、正しいか間違っているかわからないので、このセグメンテーション違反を克服するための助けをいただければ幸いです。
machine-learning - 複数のクラスでk-NNの加重合計を行う方法は?
多くのデータ ポイント (x、y) があり、k-NN を使用して将来の y' を予測しようとしています。
y に可能な値が 2 つしかない場合、y = +1 または -1 として扱うことができます。入力 x' があるたびに、最も近い k 個の要素を見つけ、その y に距離 (x,x') の逆数を掛けます。合計が 0 より大きい場合は y'=+1 と予測し、それ以外の場合は y'=-1 と予測します
ただし、私の y には 10 個の異なる値があることを知っています。この状況で同様の加重合計を行うにはどうすればよいですか?
c++ - OpenCV の KNN 未知の分類
現時点では、OpenCV の KNN 実装を使用して画像を分類しています。現在、画像を P、S、または長方形に正しく分類しています。ただし、ノイズの画像をフィードすると、前に述べた 3 つの分類のうちの 1 つとして分類しようとします。ノイズとして分類するには、ノイズを「ノイズ」カテゴリに分類するように KNN をトレーニングする必要がありますか、または使用できる精度評価がありますか?
android - Android で openCV を使用すると、FAST-SURF の正しい一致が見つからない
ロゴ検出アルゴリズムを実装するために、Android用のopenCVを使用しています。私の目標は、Android カメラで撮影した写真で定義済みのロゴを見つけることです。
正しい一致を取得できません..ほとんどopenCVライブラリ関数のみを使用していることを考えると、これは非常に奇妙だと思います。
最初に FAST 検出器を使用してキーポイントを検出します。画像のサイズは 500x500 です。その後、SURF を使用してこれらのキーポイントを記述します。knn で 2 つのベスト マッチを求め、A 比率が 0.6 (first.distance/second.distance) より小さいものを除外します。
私は約10試合を獲得していますが、それらはすべて間違っています.すべての試合(100以上)を描くと、それらはすべて間違っているようです.
ここで何が間違っているのかわかりません。同じ問題を抱えている人はいますか、それとも私が間違っていることを知っていますか?
computational-geometry - 高薄暗い空間に動的に挿入されるkNN
私は、高次元の点(通常は〜11-13次元)に対して高速の最近傍(できればO(log n))を実行する方法を探しています。構造を初期化した後、挿入時に最適に動作するようにしたいと思います。KDツリーが頭に浮かびましたが、一括読み込みを行わずに動的挿入を行うと、kdツリーのバランスがとれなくなり、afaikのバランス調整はコストのかかる操作になります。
ですから、そのような設定にどのようなデータ構造を好むのか知りたいと思いました。高次元のポイントがあり、挿入を実行して最も近い隣人を照会したいとします。
algorithm - 各クラスの k 最近傍分類器トレーニング サンプル サイズ
各クラスのトレーニング サンプル サイズを等しくする必要があるかどうか教えてください。
このシナリオを使用できますか?
または、すべてのクラスのサンプルサイズを等しくする必要がありますか?
r - R knn 2 変数から始まる順方向段階的特徴選択
モデルで段階的な機能選択を行おうとしていますknn
。FSelector
パッケージとforward.search()
関数 を使用しています。
データセットは、機能を削除する前に、約 40 万行×約 100 列です。
問題は、最高のパフォーマンスを発揮する機能には多くのレベルがないため、モデルが失敗する原因となる多くの同点があることです.
私の質問はこれです:
最もパフォーマンスの高い機能が何であるかがわかっている場合、1 つではなく 2 つの変数で forward.search() を開始する方法はありますか?
つまり、変数が 5 つある場合です。forward.search は、次のような最適なものを検索します。
最適なものが決定されると (つまりvar3
)、アルゴリズムは次のことを行います。
等々。最もパフォーマンスの高い単一変数がわかっている場合、2 番目のステップにスキップする方法はありますか?
任意の提案をいただければ幸いです。
algorithm - 近傍数 KNN アルゴリズム
手書きの数字を分類するために、matlab で KNN アルゴリズムを適用しました。数字は、最初は 8*8 のベクトル形式で、引き伸ばされて 1*64 のベクトルを形成します。したがって、最初の数字を残りのすべてのデータセット (非常に大きい) と比較するたびに、2 番目の数字を残りのデータセットなどと比較します。いつも?私はユークリッド距離を使用しているため (より近いものを選択します)、最も近い桁を取得したのに、なぜさらに 2 つまたは 3 つの隣接を選択する必要があるのでしょうか?
ありがとう
algorithm - PCA および KNN アルゴリズム
KNN を使用して手書きの数字を分類しています。また、次元を削減するために PCA を実装しました。256 から 200 になりました。しかし、約 0.10% の情報損失に気付くだけです。56次元を削除しました。損失の方が大きいのではないですか?5 次元に落とした場合にのみ、最大 20% の損失が発生します。これは正常ですか?
sift - 複数の画像を照合する際の SIFT 特徴照合性能
私は画像ライブラリを持っており、〜150の機能を持つ〜5000の画像があります。現在、約 300 の機能を持つ別の画像があり、ライブラリで最も類似した 5 つの画像を見つけたいと考えています。
ブルート フォースには約 300 * 5000 * 150 * 128 の操作が必要で、時間がかかりすぎます。そのため、ライブラリ内の各画像の機能用に kd ツリーを構築しました。これは、約 5000 kd ツリーを意味します。他のsiftライブラリが行ったように、近似最近傍のbbf検索を使用しました。しかし、パフォーマンスは、私の力ずくのアルゴリズムよりもさらに遅くなりました。私の実装のせいではないことを確認するために、他のライブラリのマッチングアルゴリズムを力ずくで修正したところ、それらのパフォーマンスも向上しました。
私の質問は、〜 5000 kd ツリーを 1 つのツリーに結合することは可能ですか? または、複数の画像を照合しながらパフォーマンスを向上させる他の方法はありますか?