Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. function [predictions,erro] = predictor(classifier,projected_features,label_set,test_data,test_label_set,reductor_type,preserved)
  2.  
  3. disp('predictor')
  4. size(test_data)
  5. size(label_set)
  6. dim=size(projected_features,1)
  7.  
  8. if strcmp(classifier,'fld')
  9. pf.X=projected_features; %tem de ser dim x num_data
  10. pf.y=label_set; %1 x num_data
  11. modelfld = fld(pf);
  12. predictions = linclass(test_data,modelfld);
  13. disp('size prediction fld');
  14. size(predictions);
  15. %figure; ppatterns(pf); pline(modelfld);
  16. erro=cerror(predictions,test_label_set);
  17. %{
  18. test_struct.X = test_data;
  19. test_struct.y = test_label_set;
  20. figure; ppatterns(test_struct);
  21. title(strcat('Fisher LDA',', ,',reductor_type,', ,Dim: ',num2str(dim),', ,Error: ',num2str(erro),', ,InfoPreserved: ',num2str(preserved)));
  22. legend('1','2');
  23. xlabel('Feature 1') % x-axis label
  24. ylabel('Feature 2') % y-axis label
  25. zlabel('Feature 3') % <-axis label
  26. if size(projected_features,1)>2
  27. %plane3 %para desenhar plano
  28. plane3(modelfld);
  29. else
  30.  
  31. pline(modelfld);
  32. end
  33. %}
  34.  
  35. end
  36.  
  37. %testar com minumum mahal
  38. if strcmp(classifier,'minimum_mahal')
  39.  
  40. predictions=zeros(size(test_data(1,:)));
  41. %mean1=mean(projected_features(label_set==1));
  42. %mean2=mean(projected_features(label_set==2));
  43. %cov1=cov(projected_features(label_set==1));
  44. %cov2=cov(projected_features(label_set==2));
  45. mean1=mean(projected_features(:,label_set==1),2);
  46. mean2=mean(projected_features(:,label_set==2),2);
  47. cov1=cov(projected_features(:,label_set==1)');
  48. cov2=cov(projected_features(:,label_set==2)');
  49. cov1=cov1';
  50. cov2=cov2';
  51. C=(cov1+cov2)/2;
  52. i2=(mean1-mean2)'/C;
  53. %SIMPLIFICAMOS PORQUE O MATLAB DIZIA QUE ASSIM ERA MAIS RAPIDO
  54. %inversaC = inv(C);
  55. %dif_means = mean1-mean2;
  56. %sum_means = mean1+mean2;
  57. %d = dif_means' * inversaC * ( test_data(:,i)' - 0.5 * sum_means);
  58.  
  59. for i=1:size(test_data,2)
  60. d=i2*(test_data(:,i)-0.5*(mean1+mean2));
  61.  
  62. if d>0
  63. predictions(i)=1;
  64. else
  65. predictions(i)=2;
  66. end
  67. end
  68.  
  69. test_struct.X = test_data;
  70. test_struct.y = predictions;
  71. figure; ppatterns(test_struct);
  72. erro=cerror(predictions,test_label_set)
  73. title(strcat('Mahalanobis',', ,',reductor_type,', ,Dim: ',num2str(dim),', ,Error: ',num2str(erro),', ,InfoPreserved: ',num2str(preserved)));
  74. legend('1','2');
  75. xlabel('Feature 1') % x-axis label
  76. ylabel('Feature 2') % y-axis label
  77. zlabel('Feature 3') % <-axis label
  78.  
  79. %desenhar original
  80. test_struct.X = test_data;
  81. test_struct.y = test_label_set;
  82. figure; ppatterns(test_struct);
  83. title(strcat('Original, ,Dim: ',num2str(dim)));
  84. legend('1','2');
  85. xlabel('Feature 1') % x-axis label
  86. ylabel('Feature 2') % y-axis label
  87. zlabel('Feature 3') % <-axis label
  88.  
  89.  
  90. end
  91. %projected_features, label_set, test_data
  92. %é 1 e 2
  93. %testar com minumum thigny NAO ESTA A DAR
  94. if strcmp(classifier,'minimum_eucl')
  95. predictions=zeros(size(test_data(1,:)));
  96. %mean1=mean(projected_features(label_set==1));
  97. %mean2=mean(projected_features(label_set==2));
  98. mean1=mean(projected_features(:,label_set==1),2);
  99. mean2=mean(projected_features(:,label_set==2),2);
  100. for i=1:size(test_data,2)
  101. d=(mean1-mean2)'*(test_data(:,i)-0.5*(mean1+mean2));
  102. if d>0
  103. predictions(i)=1;
  104. else
  105. predictions(i)=2;
  106. end
  107. end
  108.  
  109. test_struct.X = test_data;
  110. test_struct.y = predictions;
  111. figure; ppatterns(test_struct);
  112. erro=cerror(predictions,test_label_set)
  113. title(strcat('Euclidian',', ,',reductor_type,', ,Dim: ',num2str(dim),', ,Error: ',num2str(erro),', ,InfoPreserved: ',num2str(preserved)));
  114. legend('1','2');
  115. xlabel('Feature 1') % x-axis label
  116. ylabel('Feature 2') % y-axis label
  117. zlabel('Feature 3') % <-axis label
  118.  
  119. %desenhar original
  120. test_struct.X = test_data;
  121. test_struct.y = test_label_set;
  122. figure; ppatterns(test_struct);
  123. title(strcat('Original, ,Dim: ',num2str(dim)));
  124. legend('1','2');
  125. xlabel('Feature 1') % x-axis label
  126. ylabel('Feature 2') % y-axis label
  127. zlabel('Feature 3') % <-axis label
  128.  
  129. %nao tenho model, nao consegui representar plano
  130.  
  131.  
  132.  
  133. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement