www.gusucode.com > classification_matlab_toolbox分类方法工具箱源码程序 > code/Classification_toolbox/ML_diag.m
function D = ML_diag(train_features, train_targets, AlgorithmParameters, region) % Classify using the maximum likelyhood algorithm with diagonal covariance matrices % Inputs: % features - Train features % targets - Train targets % Dummy - Unused % region - Decision region vector: [-x x -y y number_of_points] % % Outputs % D - Decision sufrace train_one = find(train_targets == 1); train_zero = find(train_targets == 0); %Estimate mean and covariance for class 0 m0 = mean(train_features(:,train_zero)'); s0 = zeros(2); s0(1,1) = var(train_features(1,train_zero) - m0(1)); s0(2,2) = var(train_features(2,train_zero) - m0(2)); P0 = length(train_zero)/length(train_targets); %Estimate mean and covariance for class 1 m1 = mean(train_features(:,train_one)'); s1 = zeros(2); s1(1,1) = var(train_features(1,train_one) - m1(1)); s1(2,2) = var(train_features(2,train_one) - m1(2)); P1 = length(train_one)/length(train_targets); %Find decision region param_struct.m0 = m0; param_struct.m1 = m1; param_struct.s0 = s0; param_struct.s1 = s1; param_struct.w0 = 1; param_struct.w1 = 1; param_struct.p0 = P0; D = decision_region(param_struct, region);