カーネル密度推定におけるカーネル帯域幅


10

私は、N次元で、重み付けされたポイントセット(つまり、各サンプルに必要ではない重みがある)を使用して、カーネル密度推定を行っています。また、これらのサンプルはメトリック空間にあります(つまり、サンプル間の距離を定義できます)が、他には何もありません。たとえば、サンプルポイントの平均や標準偏差を決定したり、ある変数を別の変数と比較してスケーリングしたりすることはできません。カーネルは、この距離と各サンプルの重みの影響を受けるだけです。

f(x)=1.weightsiweightihKernel(distance(x,xi)h)

この文脈では、カーネル帯域幅ロバストな推定を見つけようとしています。空間的に変化する可能性があり、トレーニングデータセット正確に再構成することができます。必要に応じて、関数は比較的滑らかであると想定できます。hxi

最初または2番目に近い隣人までの距離を使用してみましたが、かなり悪い結果になります。私はリーブワンアウトの最適化を試しましたが、Ndのこのコンテキストで最適化するための適切な手段を見つけるのが難しいため、特にトレーニングサンプル自体について、非常に悪い推定値を見つけます。標準偏差を計算できないため、通常の仮定に基づく貪欲な推定は使用できません。異方性カーネルを取得するために共分散行列を使用している参照を見つけましたが、繰り返しになりますが、この空間には当てはまりません...

誰かがアイデアやリファレンスを持っていますか?


距離を測定できれば、平均を測定できます。そうですか?「単語にコサイン距離を使用している」と言って「平均的な単語にはあまり意味がない」と言うかもしれませんが、それでもまだ計算できなかった理由はわかりません。あなたは序数空間にいると言うことができるので、平均は継続的に評価されません。なぜ平均が定義できないのですか?
EngrStudent 2016

回答:


3

開始する1つの場所は、Silvermanの最近隣推定量ですが、何らかの方法で重みを追加します。(ここでの重みは正確にはわかりません。)最近隣法は距離の観点から定式化できることは明らかです。あなたの最初と2番目の最近傍法は、最近傍法のバージョンですが、カーネル関数がなく、値が小さいと思います。k


2

Matlab File Exchangeには、ガウスカーネルが使用されているという前提で最適な帯域幅を提供するkde関数、Kernel Density Estimatorがあります。

Matlabを使用しない場合でも、このコードを解析して、最適な帯域幅を計算する方法を確認できます。これはファイル交換の評価が高い機能で、何度も使っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.