1
가우스 분포를 사용하여 예외를 탐지하는 코드를 작성하고 있습니다.이상 검색
이것은 내가 확률 밀도 함수를 계산하기 위해 쓴 코드 :
function p = multivariateGaussian(X, mu, Sigma2)
%MULTIVARIATEGAUSSIAN Computes the probability density function of the
%multivariate gaussian distribution.
% p = MULTIVARIATEGAUSSIAN(X, mu, Sigma2) Computes the probability
% density function of the examples X under the multivariate gaussian
% distribution with parameters mu and Sigma2. If Sigma2 is a matrix, it is
% treated as the covariance matrix. If Sigma2 is a vector, it is treated
% as the \sigma^2 values of the variances in each dimension (a diagonal
% covariance matrix)
%
k = length(mu);
if (size(Sigma2, 2) == 1) || (size(Sigma2, 1) == 1)
Sigma2 = diag(Sigma2);
end
X = bsxfun(@minus, X, mu(:)');
p = (2 * pi)^(- k/2) * det(Sigma2)^(-0.5) * ...
exp(-0.5 * sum(bsxfun(@times, X * pinv(Sigma2), X), 2));
end
나의 첫번째 질문 : fastter이를 계산하는 영리한 방법이있다? 나는 여기에 2 PC와 함께 약간의 matlab 클러스터를 설정했지만,이 경우 병렬 처리하는 방법이 없다.
내 두 번째 질문 : 열차 집합으로 사용하는 행렬 중 하나에서 [42712X19700], 심지어 24GB의 RAM이 있어도 메모리 오류가 발생합니다. 랜덤 포레스트 (훈련 계획을 슬라이스 한 다음 결과를 결합하는 기술)를 사용할 수 있습니까? 아니면이 문제를 우회하는 다른 방법?
감사합니다. 사전에 Tks!
명백한 속도 향상은 보이지 않지만 크기가 큰 행렬을 조작 할 때 벡터화 된 솔루션이 램에서 날아가는 것이 일반적입니다. 행 단위로 처리하는 것이 해결책일까요? (그렇다면 병렬 처리를 위해'parfor' 루프로 쉽게 감쌀 수 있습니다.) –
'training'연산이란 무엇입니까? 뮤와 시그마 설정? 그렇다면 충분한 통계를 누적 적으로 계산할 수 있습니다. –
계산을 위해 사용 된 공식을 검토했으며 Ben이 말한 것처럼 누적 합계입니다. Dennis가 말했듯이, 그래서 문제는 trainingset을 덩어리로 분리하고 parfor로 계산할 것입니다! Tks들, 문제 해결! –