mn_hw Help

multivariate_gaussian

Aceasta functie este folosita pentru a calcula probabilitățile unui set de date X sub o distribuție gaussiană multivariată, dată prin valorile medii mean_values și matricea de covarianță variances.

multivariate_gaussian

Implementare

Funcția va returna un vector probabilities care conține probabilitățile pentru fiecare exemplu din X.

  1. obțin dimensiunea matricei X, unde m reprezintă numărul de exemple și n numărul de caracteristici.

    [m, n] = size(X);
  2. calculez diferența dintre fiecare exemplu din X și vectorul mediei mean_values.

    difference = bsxfun(@minus, X, mean_values)
  3. calculez inversa matricei de covarianță variances.

    inverse_variance = inv(variances);
  4. calculez determinantul matricei de covarianță variances.

    determinant = det(variances);
  5. calculez exponentul pentru funcția de densitate a probabilității, care este o parte esențială a ecuației pentru distribuția gaussiană multivariată.

    exponent = -0.5 * sum((difference * inverse_variance) .* difference, 2);
  6. calculez probabilitățile pentru fiecare exemplu din X, folosind formula pentru distribuția gaussiană multivariată.

    probabilities = (1 / (sqrt((2 * pi)^n * determinant))) * exp(exponent);

Cod sursa

function probabilities = multivariate_gaussian(X, mean_values, variances) [m, n] = size(X); % matrix size difference = bsxfun(@minus, X, mean_values); % diff from mean inverse_variance = inv(variances); % inverse of matrix determinant = det(variances); % determinant % exponent exponent = -0.5 * sum((difference * inverse_variance) .* difference, 2); % probabilitati probabilities = (1 / (sqrt((2 * pi)^n * determinant))) * exp(exponent); endfunction
Last modified: 30 April 2024