pnn.m

来自「最新的模式识别分类工具箱,希望对朋友们有用!」· M 代码 · 共 46 行

M
46
字号
function D = PNN(train_features, train_targets, sigma, region)% Classify using a probabilistic neural network% Inputs:% 	features- Train features%	targets	- Train targets%	sigma   - Gaussian width%	region	- Decision region vector: [-x x -y y number_of_points]%% Outputs%	D			- Decision sufrace[Dim, Nf]       = size(train_features);Dim             = Dim + 1;train_features(Dim,:) = ones(1,Nf);%Build the classifierW               = train_features ./ (sqrt(sum(train_features'.^2))'*ones(1,Nf));%Test it and build the decision region%For decision regionN           = region(5);mx          = ones(N,1) * linspace (region(1),region(2),N);my          = linspace (region(3),region(4),N)' * ones(1,N);flatxy      = [mx(:), my(:), ones(N^2,1)]';Z           = W' * flatxy;fZ          = exp((Z-1)/sigma^2);u_targets   = unique(train_targets);arguments   = zeros(length(u_targets),size(flatxy,2));for i = 1:length(u_targets),    indices = (train_targets == u_targets(i));    mask    = indices' * ones(1,size(flatxy,2));    arguments(i,:) = sum(fZ .* mask);end    [m, indices] = max(arguments);targets      = zeros(1,size(flatxy,2));for i = 1:length(u_targets),    targets(find(indices == i)) = u_targets(i);endD = reshape(targets,N,N);    

⌨️ 快捷键说明

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