www.gusucode.com > som-bp混合神经网络的matlab程序源码 > matlab_emulator/HybridNet/HybridNet.m
% 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; P = [I((1:3),:);I(5,:)]; feature_num = 4; % ============= 正常样本 ======================== % 数目 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 = 40; 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,som_net_pos); % % 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;