我有一个二维数据,我将这些数据拟合为高斯分布如下: -
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值?