Advertisement
Guest User

dffd

a guest
Oct 4th, 2015
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. from sklearn.manifold import MDS
  2. import numpy as np
  3.  
  4. import matplotlib.pyplot as plt
  5. from mpl_toolkits.mplot3d import Axes3D
  6.  
  7. def mat_usuarios ():
  8.  
  9.  
  10. a1=[5,2,1,5]
  11. a2=[4,5,2,3]
  12. a3=[2,5,5,1]
  13. a4=[5,3,1,5]
  14. a5=[3,4,5,2]
  15. a6=[1,4,3,5]
  16. usuarios=[a1,a2,a3,a4,a5,a6]
  17. mat_usuarios =[]
  18.  
  19. for i in range (0,6):
  20. new=[]
  21. for x in range (0,6):
  22. new.append(0)
  23.  
  24. mat_usuarios.append(new)
  25.  
  26.  
  27.  
  28. for (i,x) in enumerate(usuarios):
  29. for (j,y) in enumerate(usuarios):
  30. dist=dist_vector(x,y)
  31. mat_usuarios[i][j]=dist
  32.  
  33. print np.array(mat_usuarios)
  34. return np.array(mat_usuarios)
  35.  
  36. def mat_peliculas ():
  37.  
  38. p1=[5,4,2,5,3,1]
  39. p2=[2,5,5,3,4,4]
  40. p3=[1,2,5,1,5,3]
  41. p4=[5,3,1,5,2,5]
  42. peliculas=[p1,p2,p3,p4]
  43. mat_peliculas=[]
  44.  
  45. for i in range (0,4):
  46. new=[]
  47. for x in range (0,4):
  48. new.append(0)
  49.  
  50. mat_peliculas.append(new)
  51.  
  52.  
  53.  
  54. for (i,x) in enumerate(peliculas):
  55. for (j,y) in enumerate(peliculas):
  56. dist=dist_vector(x,y)
  57. mat_peliculas[i][j]=dist
  58.  
  59.  
  60.  
  61. print np.array(mat_peliculas)
  62. return np.array(mat_peliculas)
  63.  
  64. def mds(mat):
  65.  
  66. nmds = MDS(n_components=1,dissimilarity="precomputed")
  67. npos = nmds.fit_transform(mat)
  68. print npos
  69.  
  70. plt.plot(npos, marker='o', linestyle='None')
  71. plt.xlim([-1,8])
  72. plt.ylim([-5,5])
  73. plt.show()
  74.  
  75.  
  76. def dist_vector(x,y):
  77. total=0
  78. for i,j in zip(x,y):
  79. total+= (i-j)**2
  80. return total**0.5
  81.  
  82. def imprimir_matriz (mat):
  83. for x in mat:
  84. print x
  85. mat=mat_usuarios()
  86. mds(mat)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement