📄 pnn.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -