Guest User

Untitled

a guest
Jul 22nd, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1. data_95 = importdata('data/itu_phonedata-95.csv',',');
  2.  
  3. G = data_95.data(1:193, 1:193);
  4. G(isnan(G)) = 0;
  5. [nrow ncol] = size(G);
  6. names = data_95.textdata(1, 2:194);
  7.  
  8.  
  9. G_sym = G + G';
  10. G1_sym = G_sym / sum(sum(G_sym));
  11.  
  12. weights = repmat(sum(G1_sym')', 1, ncol);
  13. G1_norm = G1_sym ./ weights;
  14.  
  15. % calculate G2_sym
  16. N = nrow;
  17. G2_sym = G1_norm > (1/N);
  18. G2_sym = G2_sym .* G2_sym';
  19.  
  20.  
  21. % (B) Thresholding
  22. G1_norm_t = G1_norm > (1/N);
  23. G1_sym_t = G1_sym > (1/N);
  24.  
  25. % GraphToGml
  26. % graphtogml('graphs/yed/G1_sym.gml' , triu(G1_sym_t), names);
  27. % graphtogml('graphs/yed/G2_sym.gml' , triu(G2_sym), names);
  28. % graphtogml('graphs/yed/G1_norm.gml', G1_norm_t, names);
  29.  
  30.  
  31. % (C) compute the laplacian for G1_sym and G2_sym
  32.  
  33. % laplacian for g1_sym
  34. a = G1_sym;
  35. degree = sum(a)';
  36. d_matrix = diag(degree);
  37. Lapcian = d_matrix - a;
  38.  
  39. [vlap dlap] = eig(Lapcian);
  40. eigenvalues = diag(dlap);
  41. index = find(eigenvalues > 1e-12, 3);
  42. G1_eigs = vlap(:, index);
  43.  
  44. s = scatter3(G1_eigs(:,1), G1_eigs(:,2), G1_eigs(:,3));
  45. saveas(s, 'graphs/scatter/G1s' ,'jpg')
  46.  
  47. % laplacian for g2_sym
  48. a = G2_sym;
  49. degree = sum(a)';
  50. d_matrix = diag(degree);
  51. Lapcian = d_matrix - a;
  52.  
  53. [vlap dlap] = eig(Lapcian);
  54. eigenvalues = diag(dlap);
  55. index = find(eigenvalues > 1e-12, 3);
  56. G2_eigs = vlap(:, index);
  57.  
  58. s = scatter3(G2_eigs(:,1), G2_eigs(:,2), G2_eigs(:,3));
  59. saveas(s, 'graphs/scatter/G2s' ,'jpg')
  60.  
  61. % Fieldler Vectors
  62.  
  63. G1_f = G1_eigs(:,1) ;
  64. G1_f = G1_f / max(abs(G1_f));
  65. s = scatter(G1_f(:,1), zeros(length(G1_f),1));
  66. saveas(s, 'graphs/scatter/G1_f' ,'eps')
  67.  
  68. G2_f = G2_eigs(:,1);
  69. G2_f = G2_f / max(abs(G2_f));
  70. s = scatter(G2_f(:,1), zeros(length(G2_f),1));
  71. saveas(s, 'graphs/scatter/G2_f' ,'eps')
  72.  
  73. % K-MEANS 1-D embeddings
  74.  
  75. a = G2_eigs;
  76. matrix = a(:,1);
  77. close
  78.  
  79. for i = 2:5
  80.  
  81. f = figure;
  82. [IDX, C] = kmeans(matrix, i);
  83. red = matrix(IDX == 1);
  84. scatter(red, zeros(length(red), 1), 'red')
  85. hold on
  86.  
  87. blue = matrix(IDX == 2);
  88. scatter(blue, zeros(length(blue), 1), 'blue')
  89. hold on
  90.  
  91. if i > 2
  92. yellow = matrix(IDX == 3);
  93. scatter(yellow, zeros(length(yellow), 1), 'yellow')
  94. hold on
  95. end
  96.  
  97. if i > 3
  98. cyan = matrix(IDX == 4);
  99. scatter(cyan, zeros(length(cyan), 1), 'cyan')
  100. hold on
  101. end
  102.  
  103. if i > 4
  104. green = matrix(IDX == 5);
  105. scatter(green, zeros(length(green), 1), 'green')
  106. end
  107. title(['kmeans ' name ' - ' i ' clusters'])
  108. disp(i)
  109. saveas(f, ['graphs/kmeans/' 'G2_eigs 1D ' int2str(i) ' clusters'], 'epsc' )
  110. close
  111.  
  112. end
  113.  
  114.  
  115. % K-MEANS 2-D embeddings
  116.  
  117.  
  118. matrix = a(:,[1 2]);
  119. close
  120.  
  121. for i = 2:5
  122.  
  123. f = figure;
  124. [IDX, C] = kmeans(matrix, i);
  125. red = matrix(IDX == 1, :);
  126. scatter(red(:,1), red(:,2) , 'red')
  127. hold on
  128.  
  129. blue = matrix(IDX == 2, :);
  130. scatter(blue(:, 1), blue(: ,2), 'blue')
  131. hold on
  132.  
  133. if i > 2
  134. yellow = matrix(IDX == 3, :);
  135. scatter(yellow(:, 1), yellow(:, 2), 'yellow')
  136. hold on
  137. end
  138.  
  139. if i > 3
  140. cyan = matrix(IDX == 4, :);
  141. scatter(cyan(:,1), cyan(:,2), 'cyan')
  142. hold on
  143. end
  144.  
  145. if i > 4
  146. green = matrix(IDX == 5, :);
  147. scatter(green(:,1), green(:,2), 'green')
  148. end
  149. title(['kmeans ' name ' - ' i ' clusters'])
  150. disp(i)
  151. saveas(f, ['graphs/kmeans/' 'G2_eigs 2D ' int2str(i) ' clusters'], 'epsc' )
  152. close
  153. end
  154.  
  155. % K-MEANS 3-D embeddings
  156.  
  157.  
  158. matrix = a(:,[1 2 3]);
  159. close
  160.  
  161. for i = 2:5
  162.  
  163. f = figure;
  164. [IDX, C] = kmeans(matrix, i);
  165. red = matrix(IDX == 1, :);
  166. scatter3(red(:,1), red(:,2), red(:,3), 'red')
  167. hold on
  168.  
  169. blue = matrix(IDX == 2, :);
  170. scatter3(blue(:, 1), blue(: ,2), blue(: ,3), 'blue')
  171. hold on
  172.  
  173. if i > 2
  174. yellow = matrix(IDX == 3, :);
  175. scatter3(yellow(:, 1), yellow(:, 2), yellow(:, 3), 'yellow')
  176. hold on
  177. end
  178.  
  179. if i > 3
  180. cyan = matrix(IDX == 4, :);
  181. scatter3(cyan(:,1), cyan(:,2), cyan(:,3), 'cyan')
  182. hold on
  183. end
  184.  
  185. if i > 4
  186. green = matrix(IDX == 5, :);
  187. scatter3(green(:,1), green(:,2), green(:,3), 'green')
  188. end
  189. title(['kmeans ' name ' - ' i ' clusters'])
  190. disp(i)
  191. saveas(f, ['graphs/kmeans/' 'G2_eigs 3D ' int2str(i) ' clusters'], 'epsc' )
  192. close
  193. end
Add Comment
Please, Sign In to add comment