HybridNet.m
上传用户:sdcdgc2008
上传日期:2014-04-13
资源大小:365k
文件大小:3k
- % Hybrid net
- clear;
- clc;
- %--------------------------- inital the test data -----------------
- % --------------- read data from the file -----------
- base_path = 'E:SOMBPdata_sourcefeature02'; % 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:SOMBPsoftwareHybridNet004';
- % 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;