www.pudn.com > SOM_Bp_HybridNetwork_matlab_emulator.rar > HybridNet.asv


% Hybrid net 
clear; 
clc; 
%--------------------------- inital the test data ----------------- 
% --------------- read data from the file ----------- 
base_path = 'E:\SOMBP\data_source\feature02\';                      % minmax([I1';I2';I3';I4';I5';I6';I7';I8']) 
I1 = load([base_path,'apen.txt']);           % 1 >> 2        1.2563    1.8150         
I2 = load([base_path,'kc.txt']);             % 0 >> 1        0.6299    0.9611 
I3 = load([base_path,'mir.txt']);            % 0 >> 5        0.4802    4.0544 
I4 = load([base_path,'asm.txt']);            % 0 >> 0.01    0.0004    0.0037 
I5 = load([base_path,'idm.txt']);            % 0 >> 0.5       0.0663    0.2906 
I6 = load([base_path,'cont.txt']);           % 0 >> 500     12.2600  337.5440 
I7 = load([base_path,'ent.txt']);            % 5 >> 9        5.8675    7.9858 
I8 = load([base_path,'gln.txt']);            % 10 >> 60      13.4204   53.2048 
%--------------- normal the feature ---------- 
sum_num = size(I1,1); 
I = [(I1'-ones(1,sum_num));I2';(I3'./5);(I4'./0.01);I5'./0.5;(I6'./500);(I7'-ones(1,sum_num).*5)./4;(I8'-ones(1,sum_num).*10)./50]; 
P = [I((1:5),:);I(7,:)]; 
feature_num = 6; 
% ============= 正常样本 ======================== 
% 数目 
positive_num = 55; 
test_positive_num = 20; 
train_positive_num = positive_num-test_positive_num; 
% 总样本集 
pos_sample = P(:,1:positive_num); 
% 训练集 
pos_train_sample = pos_sample(:,1:train_positive_num); 
%  测试样本数目 
pos_test_sample = pos_sample(:,1+train_positive_num:positive_num); 
% ============ 病变样本 ========================== 
% 数目 
negative_num = 75;  
test_negative_num = 25; 
train_negative_num = negative_num-test_negative_num; 
% 总样本集 
neg_sample = P(:,positive_num+1:sum_num); 
% 训练集 
neg_train_sample = neg_sample(:,1:train_negative_num); 
% 测试集 
neg_test_sample = neg_sample(:,1+train_negative_num : negative_num); 
 
 
 
% ------------------- discern the number of test and train sample ------------------------ 
sizeout = 17; 
SOM_epochs = 1000; 
%  positive choose 
load SOMchoose_result.mat; 
% [pos_train_sample,pos_test_sample,neg_train_sample,neg_test_sample,net] = SOM_choose(pos_sample,neg_sample,sizeout,SOM_epochs); 
% % % negative choose 
% % [neg_train_sample,neg_test_sample,som_net_neg] = SOM_choose(neg_sample,sizeout,SOM_epochs); 
% % save the SOM_choose resultz 
% saveBase = 'E:\SOMBP\software\HybridNet004\'; 
% save([saveBase 'SOMchoose_result.mat'],'pos_train_sample','pos_test_sample',...... 
%                                        'neg_train_sample','neg_test_sample',...... 
%                                        'net'); 
 
 
 
 
% ------------------ train the bp net ---------------------- 
 
BP_train_P = [pos_train_sample,neg_train_sample]; 
BP_test_P = [pos_test_sample,neg_test_sample]; 
 
train_positive_num = size(pos_train_sample,2); 
train_negative_num = size(neg_train_sample,2); 
test_positive_num = size(pos_test_sample,2); 
test_negative_num = size(neg_test_sample,2); 
 
BP_epochs = 10000; 
BP_train_feature = [1:feature_num];  
BP_out_num = 1;             
BP_input_num = feature_num ; 
% load SOMchoose_result.mat; 
BP_ANN;