問題タブ [kernel-density]

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.

0 投票する
1 に答える
274 参照

python - 2D カーネル密度 e. in python - x軸が混雑して縮小

x,yKDEを取得するためのポイントの分布がありますscipy.stats.gaussian_kde.

kmsとはどちらもmins、キロメートルを移動するのに必要な時間を表す float 値のリストです。

値は次の範囲に分散されます。

  • mins: [3.48996296296 - 317.678638298]
  • kms: [0.180707205317 - 8086.94362983]

その結果、高い線と狭い線が表示されます。y の値は正常に表示されますが、x 軸は非常に狭く縮んでいます (目盛りが重なり合っています)。誰かが x 軸をさらに伸ばす方法を指摘できますか?

プロットを生成するための私のコードは次のとおりです。

そして、ここにプロット自体があります:

ここに画像の説明を入力

0 投票する
1 に答える
1158 参照

r - geom_density/stat_density から AUC の値を表示する方法

ggplot2 と stat_density を使用していくつかの密度プロットを作成しました。私の同僚は、各曲線の下の面積の合計が 1 になるとは確信していないと言いました。それで、私は曲線の下の面積を計算することに着手しました。

これが私がしたことの例です:

結果:

まともに機能しているように見えますが、これを行うより良い方法があるかどうか疑問に思います。特に、間隔の計算 (つまり、dx だと思います) は、特に異なる密度曲線が異なる間隔を使用する場合、問題になる可能性があるようです。

0 投票する
1 に答える
52 参照

r - Rで異なるサイズの間隔を参照してデータを再編成する

私は次のデータセットを持っています。数値は(異なるサイズの)間隔を参照しています:

次のように(近似)データセットを取得したいと思います。

この目的のために、次のことを試しました。最初にsample(6000:7500, 704790, replace=TRUE)、各行に使用し、結果を連結して、生成されたrpop観測のベクトルを作成しました。次に、関数を適用しました(分布を滑らかにするためdensityに、パラメーターのさまざまな値を試しました)bw

d$x必要な収入レベルを与えますが、数値はに比例しますd$y

ただし、同じ結果を得るためのより良い (より直接的またはエレガントな) 方法があるのではないかと思います。

0 投票する
1 に答える
1308 参照

r - R での 2D カーネル密度推定のための別のカーネルの実装

データが表面上にあるため、典型的な距離を使用する代わりに、等方性分散と二変量正規カーネルを使用して、2 次元カーネル密度法を実装する方法を理解するための助けを探しています。地球、大円距離を使用する必要があります。

これをRで複製したいのですが、組み込みの推定器に対して単純なユークリッド距離以外の距離メトリックを使用する方法がわかりません。また、畳み込みを伴う複雑な方法を使用してカーネルを追加するためです. 任意のカーネルをプログラムする方法を持っている人はいますか?

0 投票する
1 に答える
3954 参照

python - sklearn の 2D KDE 帯域幅と scipy の帯域幅の関係

2 次元配列のsklearn.neighbors.KernelDensityscipy.stats.gaussian_kdeのパフォーマンスを比較しようとしています。

この記事から、帯域幅 (bw) が関数ごとに異なる方法で処理されていることがわかります。この記事では、正しい bw を に設定するためのレシピを提供しているscipyため、 で使用されているものと同等になりますsklearn。基本的に、bw をサンプルの標準偏差で割ります。結果は次のとおりです。

xKDE を取得するために使用しているサンプル配列はどこにありますか。これは 1D では問題なく機能しますが、2D では機能しません。

これが私が得たMWEものの一部です:

(ログ値を返すためiso2、指数として表示されます)sklearn

私が得た結果は異なりiso1iso2帯域幅を(どちらの関数でも)どのように影響させて(必要に応じて)等しくする必要があるのか​​ わかりません。


追加

で同等の結果を得るには、 でカーネルを計算する前にsklearn値をスケーリングする必要があることを (ep から) チャットでアドバイスされました。(x,y)scipysklearn

だからこれは私がやったことです:

scipyつまり、カーネルを取得する前に、カーネルを取得する行をそのままにして、両方の次元をスケーリングしましたsklearn

これにより、より良い結果が得られましたが、取得されたカーネルにはまだ違いがあります。

カーネル

赤い点は(x1,y1)コード内のポイントです。ご覧のとおり、非常に小さいものではありますが、密度推定の形状にはまだ違いがあります。おそらくこれが達成できる最高のものでしょうか?

0 投票する
1 に答える
7869 参照

python - Pythonのmatplotlibのseabornによるカーネル密度推定の下限

私は測定された木の直径のコレクションを持っており、カーネル密度の推定値を python の上に重ねてヒストグラムをプロットしようとしています。seaborn モジュールを使用すると、これを非常に簡単に行うことができますが、負の数に対して kde をゼロにするように指定する方法が見つかりません (ツリーは負のツリー直径を持つことができないため)。

私が現在持っているのはこれです:

distplot が呼び出す関数である seaborn.kdeplot を見てきましたが、有用なものが見つかりません。これが seaborn で実行できるかどうか、そうでない場合は matplotlib でより一般的に実行できるかどうかを知っている人はいますか?

kde pyplot.plot() を pyplot.hist() でオーバーレイする方法がわからなかったので、seaborn を使い始めただけです。