꽤 큰 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)
이 2,677,920 좌표 쌍들의 세트와 쿼드 코어 제온 E5-2609 @ 2.4Hz에서 완료 60hrs을 인계 : 여기 일례이다. 제대로 사용 했나요?
답장을 보내 주셔서 감사합니다. KDE를 계산하려는 이유는 산점도를 색칠하기 위해서입니다. datashader를 사용할 것이지만, 불행히도 아직 matplotlib에서 완전히 지원되지는 않습니다. (https://github.com/bokeh/datashader/pull/200). – Pablo
당신이 어떤 종류의 KDE를 원한다는 것에 의문을 품고 있지 않다. 나는 당신이 당신의 데이터 덩어리보다 훨씬 큰 커널을 가지고 그것을 계산하기를 원한다고 질문하고있다. 당신은 근본적으로 흐리게하는 [hexbin] (https://matplotlib.org/examples/pylab_examples/hexbin_demo.html)만을하고 있습니다. – mdurant
나는 기본 통계를 거의 이해하지 않고 맹목적으로 [recipe] (https://stackoverflow.com/a/20107592/1534504)를 따르고 있음을 인정해야합니다. 나는 동의한다, hexbin은이 양의 데이터를위한 더 적절한 해결책이다. 지도 해줘서 고마워. – Pablo