csci5521/assignments/hwk03/M_step.m

44 lines
1.5 KiB
Mathematica
Raw Normal View History

2023-11-10 03:29:17 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-15 15:53:18 +00:00
% Name: M_step.m
2023-11-10 03:29:17 +00:00
% Input: x - a nxd matrix (nx3 if using RGB)
% Q - vector of values from the complete data log-likelihood function
% h - a nxk matrix, the expectation of the hidden variable z given the data set and distribution params
% S - cluster covariance matrices
% k - the number of clusters
2023-11-15 15:53:18 +00:00
% flag - flag to use improved EM to avoid singular covariance matrix
% Output: S - cluster covariance matrices
2023-11-10 03:29:17 +00:00
% m - cluster means
2023-11-15 15:53:18 +00:00
% pi - mixing coefficients
2023-11-10 03:29:17 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-15 15:53:18 +00:00
function [S, m, pi] = M_step(x, h, S, k, flag)
2023-11-12 17:42:19 +00:00
% get size of data
[num_data, dim] = size(x);
eps = 1e-15;
2023-11-15 15:53:18 +00:00
lambda = 1e-3; % value for improved version of EM
2023-11-10 03:29:17 +00:00
2023-11-12 17:42:19 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-16 04:35:25 +00:00
% update mixing coefficients
2023-11-12 17:42:19 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-16 04:35:25 +00:00
pi = zeros(k, 1);
for i = 1:num_data
row = h(i, :);
maxValue = max(row);
maxIdx = find(row == maxValue);
pi(maxIdx) = pi(maxIdx) + 1;
end
pi = pi ./ num_data;
2023-11-15 15:53:18 +00:00
2023-11-10 03:29:17 +00:00
2023-11-12 17:42:19 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO: update cluster means
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-10 03:29:17 +00:00
2023-11-15 15:53:18 +00:00
2023-11-12 17:42:19 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-15 15:53:18 +00:00
% TODO: Calculate the covariance matrix estimate
2023-11-12 17:42:19 +00:00
% further modifications will need to be made when doing 2(d)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2023-11-10 03:29:17 +00:00
2023-11-15 15:53:18 +00:00
2023-11-10 03:29:17 +00:00
end