rbf

rbf详解

clc; clear all; close all;
 
%% ---- Build a training set of a similar version of XOR c_1 = [0 0]; c_2 = [1 1]; c_3 = [0 1]; c_4 = [1 0];
 
n_L1 = 20; % number of label 1 n_L2 = 20; % number of label 2
 
 
A = zeros(n_L1*2, 3); A(:,3) = 1; B = zeros(n_L2*2, 3); B(:,3) = 0;
 
% create random points for i=1:n_L1   A(i, 1:2) = c_1 + rand(1,2)/2;   A(i+n_L1, 1:2) = c_2 + rand(1,2)/2; end for i=1:n_L2   B(i, 1:2) = c_3 + rand(1,2)/2;   B(i+n_L2, 1:2) = c_4 + rand(1,2)/2; end
 
% show points scatter(A(:,1), A(:,2),[],'r'); hold on scatter(B(:,1), B(:,2),[],'g');
X = [A;B]; data = X(:,1:2); label = X(:,3); %建立神经网络 temp = randperm(size(data,1)); %训练集 data_train=data(temp(1:50),:)'; label_train=label(temp(1:50),:)'; %测试集 data_test=data(temp(51:end),:)'; label_test=label(temp(51:end),:)'; %建立rbf网络 net=newrbe(data_train,label_train,0.3); label_sim=sim(net,data_test); %相对误差 error=(label_sim-label_test)/label_test; %画图 N=size(label_test,2); figure,plot(1:N,label_test,'*'); hold on plot(1:N,label_sim,'+'); R2 = (N * sum(label_sim .* label_test) - sum(label_sim) * sum(label_test))^2 / ((N * sum((label_sim).^2) - (sum(label_sim))^2) * (N * sum((label_test).^2) - (sum(label_test))^2)); string = {'测试预测结果对比';['R^2=' num2str(R2)]}; title(string)

猜你喜欢

转载自blog.csdn.net/qq_41244435/article/details/84726493
rbf