/matbat/dep/HOML/SFBS_FS.m

https://code.google.com/p/matbat/ · MATLAB · 54 lines · 39 code · 10 blank · 5 comment · 1 complexity · 945ffca878d33c2906998a944cdc6d40 MD5 · raw file

  1. function SFBS_FS( )
  2. %SFFS_TEST Summary of this function goes here
  3. % Detailed explanation goes here
  4. load( 'medcine_ch' );
  5. %Initialize the 100 feature subset for SA stage.
  6. HammingLoss_msgg_mlknn = [];
  7. RankingLoss_msgg_mlknn = [];
  8. OneError_msgg_mlknn = [];
  9. Coverage_msgg_mlknn = [];
  10. Average_Precision_msgg_mlknn = [];
  11. FS_Final = [];
  12. for foldnum = 1:4
  13. test = (indices == foldnum);
  14. train = ~test;
  15. train_input = data(train,:);
  16. test_input = data(test,:);
  17. train_target = targets(train,:);
  18. test_target = targets(test,:);
  19. u_target = train_target;
  20. v_target = test_target;
  21. %??????2?1???2?????1?????
  22. num = size(train_input,1);
  23. [train_t,train_v] = crossvalind('HoldOut',num,0.33);
  24. train_t_input = train_input(train_t,:); %???
  25. train_v_input = train_input(train_v,:); %???
  26. train_t_target = train_target(train_t,:); %????
  27. train_v_target = train_target(train_v,:); %????
  28. [ FS_SFBS,CP ] = SFBS( T_SFBS,train_t_input,train_v_input,train_t_target,train_v_target);
  29. % din = find(FS_SFFS); %data index??????????????????
  30. din = FS_SFBS;
  31. FS_Final= [FS_Final;din];
  32. u = train_input(:,din); %????????feasub??????????
  33. v = test_input(:,din);
  34. [Prior,PriorN,Cond,CondN]=MLKNN_train(u,u_target',10,1);
  35. [HammingLoss,RankingLoss,OneError,Coverage,Average_Precision,Outputs,Pre_Labels]=MLKNN_test(u,u_target',v,v_target',10,Prior,PriorN,Cond,CondN);
  36. HammingLoss_msgg_mlknn(foldnum) = HammingLoss;
  37. RankingLoss_msgg_mlknn(foldnum) = RankingLoss;
  38. OneError_msgg_mlknn(foldnum) = OneError;
  39. Coverage_msgg_mlknn(foldnum) = Coverage;
  40. Average_Precision_msgg_mlknn(foldnum) = Average_Precision;
  41. end;