halfo

Untitled

Mar 11th, 2015
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. clear all
  2. clc
  3.  
  4. %%
  5.  
  6. mu_1 = [0 0];
  7. mu_2 = [1 2];
  8. sigma = [.8 0;0 .8];
  9.  
  10. prior = 0.7; p = 1;q = 1;r = 1;
  11.  
  12. for i = 1 : 3000
  13.     rnd = unifrnd (0, 1);
  14.  
  15.     if (rnd < prior)
  16.         data (i, [1 2 3]) = [mvnrnd (mu_1', sigma, 1) 1];
  17.     else
  18.         data (i, [1 2 3]) = [mvnrnd (mu_2', sigma, 1) 2];
  19.     end
  20. end
  21.  
  22. training_data = data (1 : 2000, :);
  23. class_1 = data (find (training_data (:, 3) == 1), :);
  24. class_2 = data (find (training_data (:, 3) == 2), :);
  25.  
  26. testdataclassified = data(2001:3000,:);
  27. testset = data(2001:3000,[1 2]);
  28.  
  29. plot (class_1 (:, 1), class_1 (:, 2), 'g.')
  30. hold on
  31. plot (class_2 (:, 1), class_2 (:, 2), 'r.')
  32.  
  33. %%
  34.  
  35. mean_1 = mean (class_1 (:, [1 2]));
  36. mean_2 = mean (class_2 (:, [1 2]));
  37.  
  38. covariance_1 = cov (class_1 (:, [1 2]));
  39. covariance_2 = cov (class_2 (:, [1 2]));
  40.  
  41. %%
  42.  
  43. [x, y] = Euclidclassifier (testset, mean_1, mean_2);
  44. euclidclass = [x, y'];
  45.  
  46. delta_euclid = (euclidclass (:, [3]) == testdataclassified (:, [3]));
  47. error_euclid = sum (delta_euclid == 0) / 1000 * 100
  48. display (error_euclid);
  49.  
  50. %%
  51.  
  52. [x, y] = Mahalnobisclassifier (testset, mean_1, mean_2, covariance_1, covariance_2);
  53. mahalnobisclass = [x y'];
  54.  
  55. delta_mahalanobis = (mahalnobisclass (:, [3]) == testdataclassified (:, [3]));
  56. error_mahalanobis = sum (delta_mahalanobis == 0) / 1000 * 100
  57. display (error_mahalanobis);
Advertisement
Add Comment
Please, Sign In to add comment