多元高斯分布Scipy

时间:2017-03-23 08:50:07

标签: python machine-learning scipy

我有一个二维数据,我将这些数据拟合为高斯分布如下: -

from scipy.stats import multivariate_normal

dataset = np.array([
    [3, 3],
    [3, 2],
    [4, 1],
    [4, 2],
    [4, 3],
    [4, 4],
    [5, 2],
    [5, 3]
])

mu = np.mean(dataset, axis=0)

sigma = np.cov(dataset.T)

p = multivariate_normal(mean=mu, cov=sigma)

print("pdf for [10, 10] : ", p.pdf(np.array([10, 10])))

print("pdf for [5, 1] : ", p.pdf(np.array([5, 1])))

我的问题: -

如果我将Z分数用作meausre,或者是否有其他方法可以做到这一点,我如何准确预测哪个数据集将属于此分布?目前我正在使用zscore val如下: -

from scipy.stats import zscore

def getZScore(org_vals, new_val):
    org_vals.append(new_val)
    scores = zscore(org_vals)
    return scores[-1]

pdfValsForTrainData = [p.pdf(item) for item in dataset]

pdfVal = p.pdf(np.array([10, 10]))

zScoreVal = getZScore(pdfValsForTrainData, pdfVal)

print("z score for [10, 10] : ", zScoreVal)

偏差越大,它不属于此分布的可能性越大

有没有办法在没有任何人工干预的情况下识别分配的epsilon值?

0 个答案:

没有答案