⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parzen.m

📁 classification_matlab_toolbox分类方法工具箱
💻 M
字号:
function D = parzen(train_features, train_targets, hn, region)

% Classify using the Parzen windows algorithm
% Inputs:
% 	features	- Train features
%	targets	    - Train targets
%	hn      	- Normalizing factor for h
%	region	    - Decision region vector: [-x x -y y number_of_points]
%
% Outputs
%	D			- Decision sufrace

N		= region(5);								%Number of points on the grid
x		= ones(N,1) * linspace (region(1),region(2),N);
y		= linspace (region(3),region(4),N)' * ones(1,N);
Uc      = unique(train_targets);
V		= zeros(length(Uc), N, N);
x_i     = train_features;

for j = 1:length(Uc),
    indices = find(train_targets == Uc(j));
    P(j)    = length(indices)/size(x_i,2);
    n		= length(indices);
    
    for i = 1:n,
        temp        = (x - x_i(1,indices(i))).^2 + (y - train_features(2,indices(i))).^2;
        V(j,:,:)    = squeeze(V(j,:,:)) + phi(temp./hn);
        if (i/50 == floor(i/50)),
            disp(['Finished ' num2str(i) ' iterations out of ' num2str(n) ' iterations.'])
        end
        
    end
    
    V(j,:,:) = V(j,:,:) / sum(sum(squeeze(V(j,:,:))));
end


D = (squeeze(V(1,:,:))*P(1) < squeeze(V(2,:,:))*P(2));
%END Parzen

function p = phi(val)

%The window function for the Parzen window
p = (abs(val) <= 0.5);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -