多元高斯分佈及多元條件高斯分佈
已知
- 顯然預設
x 是一個列向量 還需注意的是,當傳遞進去的是樣本矩陣
X (以行為樣本) 而不是列向量x ,則在計算指數部分時,-1/2*sum(X/Sigma .* X, 2);
當多元高斯分佈退化為一元高斯時,
Σ 對應著σ2 (方差),而不是標準差(standard deviation)- 這裡
d=(x−μ)TΣ−1(x−μ)−−−−−−−−−−−−−−−−√ 也稱為馬氏距離;
是對一元高斯分佈對應的d 得拓展; - 多元時的
d=(x−μ)TΣ−1(x−μ)−−−−−−−−−−−−−−−−√ 也可視為某種程度的 z-分數,尤其在變數之間彼此獨立,並且方差相同時,d=∥x−μ∥σ (z-分數),
1. 條件高斯分佈(Conditional Gaussian distributions)
2. 程式設計時的技巧
αexp(f(x)) 的計算通常轉換為,求對數,再求指數的形式:elogαexp(f(x))=elogα+f(x) p=1|Σ|(2π)D√exp(−12(x−μ)TΣ−1(x−μ)) ⇒logp=−D2log(2π)−12log|Σ|−12(x−μ)T
3. 多元高斯概率密度函式的 matlab 實現
function p = gaussProb(X, mu, Sigma)
d = size(Sigma, 2);
X = bsxfun(@minus, X, mu(:)');
log1 = -d/2*log(2*pi)-1/2*logdet(Sigma);
log2 = -1/2*sum(X/Sigma .* X, 2);
p = exp(log1+log2);
end
- 這裡的
X (樣本矩陣)以行為樣本;