【发布时间】:2015-05-12 17:47:41
【问题描述】:
我正在使用scipy 中的scipy.stats.gaussian_kde 方法从数据中生成随机样本。
效果很好!我现在发现的是,该方法还具有计算给定点集(我的数据)的概率密度函数的内置函数。
I would like to know how it calculates the pdf provided a set of points.
这是一个小例子:
import numpy as np
import scipy.stats
from scipy import stats
def getDistribution1(data):
kernel = stats.gaussian_kde(data,bw_method=0.06)
class rv(stats.rv_continuous):
def _rvs(self, *x, **y):
return kernel.resample(int(self._size)) #random variates
def _cdf(self, x):
return kernel.integrate_box_1d(0,max(x)) #Integrate pdf between two bounds (-inf to x here!)
def _pdf(self, x):
return kernel.evaluate(x) #Evaluate the estimated pdf on a provided set of points
return rv(name='kdedist')
test_data = np.random.random(100) # random test data
distribution_data = getDistribution1(test_data)
pdf_data = distribution_data.pdf(test_data) # the pdf of the data
在上面这段代码中,存在三个方法,
-
rvs根据数据生成随机样本 -
cdf是 pdf 从 0 到 max(data) 的积分 -
pdf这是数据的pdf
我需要这个 pdf 的原因是因为现在 我正在尝试根据概率为我的数据计算权重。 这样我就可以给每个数据点一个概率,然后我可以将其用作我的权重。
我也想从这里知道我应该如何计算我的体重?
附:请原谅我在交叉验证中问同样的问题,似乎没有回应!
【问题讨论】:
标签: python scipy gaussian probability-density