かなり大きな2次元データセットのカーネル密度の見積もりをcolour the points in a scatter plotに計算しようとしています。関数scipy.stats.gaussian_kde
は時間がかかりますので、結果を速く得るためにdask(v0.15.2)を使うことができると思いました。しかし、私のアプローチが実際にスピードアップしているかどうかは分かりません。dask.bag.from_sequenceを使用してカーネル密度の見積もりを計算する
import numpy as np
from scipy.stats import gaussian_kde
import dask.bag as db
xy = np.random.rand(2, 1000000)
kde = gaussian_kde(xy)
chunker = (xy[:, i:i+10000] for i in range(100))
compute_job = db.from_sequence(chunker).map(kde)
results = compute_job.compute()
z = np.hstack(results)
これは2677920座標ペアのデータセットにクアッドコアXeonプロセッサE5-2609 @ 2.4Hzに完了するために60hrsを引き継ぐ:ここでは一例です。私は正しくdaskを使用していますか?
ご返信ありがとうございます。私がKDEを計算したいのは、散布図に色を付けることです。私はdatashaderを使用しますが、[残念ながらmatplotlibではまだ完全にはサポートされていません](https://github.com/bokeh/datashader/pull/200)。 – Pablo
私はあなたが何らかのKDEを望んでいるのではないかと疑問を呈しています。私はあなたがあなたのデータチャンクよりもはるかに大きなカーネルでそれを計算したいと思っています。基本的には、ぼかし付きの[hexbin](https://matplotlib.org/examples/pylab_examples/hexbin_demo.html)のみを実行しています。 – mdurant
私は[レシピ](https://stackoverflow.com/a/20107592/1534504)に従うだけで、基本的な統計情報をほとんど理解していないことを認めなければなりません。私は同意する、hexbinはこのデータ量のより適切な解決策である。ガイダンスをありがとう。 – Pablo