HybridNet.m
上传用户: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. P = [I((1:3),:);I(5,:)];
  21. feature_num = 4;
  22. % ============= 正常样本 ========================
  23. % 数目
  24. positive_num = 55;
  25. test_positive_num = 20;
  26. train_positive_num = positive_num-test_positive_num;
  27. % 总样本集
  28. pos_sample = P(:,1:positive_num);
  29. % 训练集
  30. pos_train_sample = pos_sample(:,1:train_positive_num);
  31. %  测试样本数目
  32. pos_test_sample = pos_sample(:,1+train_positive_num:positive_num);
  33. % ============ 病变样本 ==========================
  34. % 数目
  35. negative_num = 75; 
  36. test_negative_num = 25;
  37. train_negative_num = negative_num-test_negative_num;
  38. % 总样本集
  39. neg_sample = P(:,positive_num+1:sum_num);
  40. % 训练集
  41. neg_train_sample = neg_sample(:,1:train_negative_num);
  42. % 测试集
  43. neg_test_sample = neg_sample(:,1+train_negative_num : negative_num);
  44. % ------------------- discern the number of test and train sample ------------------------
  45. sizeout = 40;
  46. SOM_epochs = 1000;
  47. %  positive choose
  48. load SOMchoose_result.mat;
  49. % [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);
  50. % % negative choose
  51. % [neg_train_sample,neg_test_sample,som_net_neg] = SOM_choose(neg_sample,sizeout,SOM_epochs);
  52. % save the SOM_choose resultz
  53. % saveBase = 'E:SOMBPsoftwareHybridNet004';
  54. % save([saveBase 'SOMchoose_result.mat'],'pos_train_sample','pos_test_sample',......
  55. %                                        'neg_train_sample','neg_test_sample',......
  56. %                                        'net');
  57. % ------------------ train the bp net ----------------------
  58. BP_train_P = [pos_train_sample,neg_train_sample];
  59. BP_test_P = [pos_test_sample,neg_test_sample];
  60. train_positive_num = size(pos_train_sample,2);
  61. train_negative_num = size(neg_train_sample,2);
  62. test_positive_num = size(pos_test_sample,2);
  63. test_negative_num = size(neg_test_sample,2);
  64. BP_epochs = 10000;
  65. BP_train_feature = [1:feature_num]; 
  66. BP_out_num = 1;            
  67. BP_input_num = feature_num ;
  68. % load SOMchoose_result.mat;
  69. BP_ANN;