我对贝叶斯统计非常陌生,遇到了一种校正的相关度量SparCC,该度量在其算法的后端使用Dirichlet流程。我一直在尝试逐步了解算法,以真正理解正在发生的事情,但是我不确定alpha
在Dirichlet分布中矢量参数的作用以及如何规范化alpha
矢量参数?
该实现Python
使用的是NumPy
:https :
//docs.scipy.org/doc/numpy/reference/generated/numpy.random.dirichlet.html
文档说:
alpha:数组分布的参数(k维为k维样本)。
我的问题:
如何将
alphas
影响分布?;如何
alphas
被标准化?和当
alphas
不是整数时会发生什么?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Reproducibility
np.random.seed(0)
# Integer values for alphas
alphas = np.arange(10)
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# Dirichlet Distribution
dd = np.random.dirichlet(alphas)
# array([ 0. , 0.0175113 , 0.00224837, 0.1041491 , 0.1264133 ,
# 0.06936311, 0.13086698, 0.15698674, 0.13608845, 0.25637266])
# Plot
ax = pd.Series(dd).plot()
ax.set_xlabel("alpha")
ax.set_ylabel("Dirichlet Draw")