📄 parzen.m
字号:
function D = parzen(train_features, train_targets,params, region)% Classify using the Parzen windows algorithm% Inputs:% features - Train features% targets - Train targets% param - [hParzen, foo] - Normalizing factor for h, unused% region - Decision region vector: [-x x -y y number_of_points]%% Outputs% D - Decision sufracecomma_loc = findstr(params,',');hParzen = str2num(params(2:comma_loc(1)-1));N = region(5); %Number of points on the gridx = ones(N,1) * linspace (region(1),region(2),N);y = linspace (region(3),region(4),N)' * ones(1,N);V0 = zeros(N);V1 = zeros(N);h_factor = hParzen;train_one = find(train_targets == 1);train_zero = find(train_targets == 0);%Estimate probabilities for for class 0%Estimate mean and covariance for class 0m0 = mean(train_features(:,train_zero)');s0 = cov(train_features(:,train_zero)');P0 = length(train_zero)/length(train_features);sigma0 = sqrt(sum(diag(s0)));h0 = sigma0/h_factor;n = length(train_zero);for i = 1:n, if (i/50 == floor(i/50)), disp(['Finished ' num2str(i) ' iterations out of ' num2str(n) ' iterations.']) end temp = (x - train_features(1,train_zero(i))).^2 + (y - train_features(2,train_zero(i))).^2; V0 = V0 + exp(-temp./(2*h0^2));endV0 = 1/(sqrt(2*pi)*h0^2)*V0/n;%Estimate mean and covariance for class 1m1 = mean(train_features(:,train_one)');s1 = cov(train_features(:,train_one)');P1 = length(train_one)/length(train_features);sigma1 = sqrt(sum(diag(s1)));h1 = sigma1/h_factor;n = length(train_one);for i = 1:n, if (i/50 == floor(i/50)), disp(['Finished ' num2str(i) ' iterations out of ' num2str(n) ' iterations.']) end temp = (x - train_features(1,train_one(i))).^2 + (y - train_features(2,train_one(i))).^2; V1 = V1 + exp(-temp./(2*h1^2));endV1 = 1/(sqrt(2*pi)*h1^2)*V1/n;D = (V0*P0 < V1*(1-P0));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -