HybridNet.asv
上传用户:sdcdgc2008
上传日期:2014-04-13
资源大小:365k
文件大小:3k
开发平台:

Matlab

  1. % Hybrid net
  2. clear;
  3. clc;
  4. %--------------------------- inital the test data -----------------
  5. % --------------- read data from the file -----------
  6. base_path = 'E:SOMBPdata_sourcefeature02';                      % minmax([I1';I2';I3';I4';I5';I6';I7';I8'])
  7. I1 = load([base_path,'apen.txt']);           % 1 >> 2        1.2563    1.8150        
  8. I2 = load([base_path,'kc.txt']);             % 0 >> 1        0.6299    0.9611
  9. I3 = load([base_path,'mir.txt']);            % 0 >> 5        0.4802    4.0544
  10. I4 = load([base_path,'asm.txt']);            % 0 >> 0.01    0.0004    0.0037
  11. I5 = load([base_path,'idm.txt']);            % 0 >> 0.5       0.0663    0.2906
  12. I6 = load([base_path,'cont.txt']);           % 0 >> 500     12.2600  337.5440
  13. I7 = load([base_path,'ent.txt']);            % 5 >> 9        5.8675    7.9858
  14. I8 = load([base_path,'gln.txt']);            % 10 >> 60      13.4204   53.2048
  15. %--------------- normal the feature ----------
  16. sum_num = size(I1,1);
  17. 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];
  18. P = [I((1:5),:);I(7,:)];
  19. feature_num = 6;
  20. % ============= 正常样本 ========================
  21. % 数目
  22. positive_num = 55;
  23. test_positive_num = 20;
  24. train_positive_num = positive_num-test_positive_num;
  25. % 总样本集
  26. pos_sample = P(:,1:positive_num);
  27. % 训练集
  28. pos_train_sample = pos_sample(:,1:train_positive_num);
  29. %  测试样本数目
  30. pos_test_sample = pos_sample(:,1+train_positive_num:positive_num);
  31. % ============ 病变样本 ==========================
  32. % 数目
  33. negative_num = 75; 
  34. test_negative_num = 25;
  35. train_negative_num = negative_num-test_negative_num;
  36. % 总样本集
  37. neg_sample = P(:,positive_num+1:sum_num);
  38. % 训练集
  39. neg_train_sample = neg_sample(:,1:train_negative_num);
  40. % 测试集
  41. neg_test_sample = neg_sample(:,1+train_negative_num : negative_num);
  42. % ------------------- discern the number of test and train sample ------------------------
  43. sizeout = 17;
  44. SOM_epochs = 1000;
  45. %  positive choose
  46. load SOMchoose_result.mat;
  47. % [pos_train_sample,pos_test_sample,neg_train_sample,neg_test_sample,net] = SOM_choose(pos_sample,neg_sample,sizeout,SOM_epochs);
  48. % % % negative choose
  49. % % [neg_train_sample,neg_test_sample,som_net_neg] = SOM_choose(neg_sample,sizeout,SOM_epochs);
  50. % % save the SOM_choose resultz
  51. % saveBase = 'E:SOMBPsoftwareHybridNet004';
  52. % save([saveBase 'SOMchoose_result.mat'],'pos_train_sample','pos_test_sample',......
  53. %                                        'neg_train_sample','neg_test_sample',......
  54. %                                        'net');
  55. % ------------------ train the bp net ----------------------
  56. BP_train_P = [pos_train_sample,neg_train_sample];
  57. BP_test_P = [pos_test_sample,neg_test_sample];
  58. train_positive_num = size(pos_train_sample,2);
  59. train_negative_num = size(neg_train_sample,2);
  60. test_positive_num = size(pos_test_sample,2);
  61. test_negative_num = size(neg_test_sample,2);
  62. BP_epochs = 10000;
  63. BP_train_feature = [1:feature_num]; 
  64. BP_out_num = 1;            
  65. BP_input_num = feature_num ;
  66. % load SOMchoose_result.mat;
  67. BP_ANN;