私は、mlpackのNeighborSearchクラスを使用して、ドキュメントを表すいくつかのベクトルでKNN分類を実行したいと考えています。コサイン距離のmlpack最近隣?
私はCosine Distanceを使いたいですが、問題があります。
NeighborSearch<NearestNeighborSort, IPMetric<CosineDistance>> nn(X_train);
しかし、私は、次のコンパイルエラーを取得::私はこれを行う方法は、メトリック内積「IPMetric」を使用してCosineDistanceカーネルを指定することだと思う...これは私が持っているものである
を/usr/include/mlpack/core/tree/hrectbound_impl.hpp:211:15: error: ‘Power’ is not a member of ‘mlpack::metric::IPMetric<mlpack::kernel::CosineDistance>’
sum += pow((lower + fabs(lower)) + (higher + fabs(higher)),
^
/usr/include/mlpack/core/tree/hrectbound_impl.hpp:220:3: error: ‘TakeRoot’ is not a member of ‘mlpack::metric::IPMetric<mlpack::kernel::CosineDistance>’
if (MetricType::TakeRoot)
^
デフォルトのツリータイプKDTreeがこの距離メトリックをサポートしていない可能性があります。それが問題ならば、CosineDistanceで動作するツリータイプはありますか?
最後に、ブルートフォース検索を使用できますか?私は木を一切使わない方法を見つけることができないようです...
ありがとう!
Ack、私は2つのことを追加する必要があります:私は 'tree :: BallTree'もここではうまくいくと思っていますし、コサインの類似性が最大のポイントを見つける作業もありますか?使用しているセットアップでは、コサインの類似度が最小の点が見つかります。 – ryan
ありがとう!!私はBallTreeを使ってみましたが、まだコンパイルエラーです...隣人検索には、LMetricが必要なhrectboundを使用するbinary_space_treeが必要です。私は自分のコード[ここ](https://github.com/chrisjmccormick/mlpack-examples/blob/master/reuters_example_cosine.cpp#L52)とコンパイラの出力[ここ](https://github.com/)を共有しました。 chrisjmccormick/mlpack-examples/blob/master/error_output.txt)が役立ちます。私は#includesで何か愚かなことをすることができますか? – chrismcc
私はあなたがmlpack 2.0.2を使っているのを見ていますので、 'NAIVE_MODE'の代わりに' true'をコンストラクタの2番目のパラメータとして使います。何かあなたが与えたコードとコンパイラ出力を追加していません。 BallTreeが使用されている場合、HRectBoundクラスをインスタンス化してはなりません。これはきれいなビルドだと確信していますか? – ryan