Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sklearn.manifold import MDS
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.mplot3d import Axes3D
- def mat_usuarios ():
- a1=[5,2,1,5]
- a2=[4,5,2,3]
- a3=[2,5,5,1]
- a4=[5,3,1,5]
- a5=[3,4,5,2]
- a6=[1,4,3,5]
- usuarios=[a1,a2,a3,a4,a5,a6]
- mat_usuarios =[]
- for i in range (0,6):
- new=[]
- for x in range (0,6):
- new.append(0)
- mat_usuarios.append(new)
- for (i,x) in enumerate(usuarios):
- for (j,y) in enumerate(usuarios):
- dist=dist_vector(x,y)
- mat_usuarios[i][j]=dist
- print np.array(mat_usuarios)
- return np.array(mat_usuarios)
- def mat_peliculas ():
- p1=[5,4,2,5,3,1]
- p2=[2,5,5,3,4,4]
- p3=[1,2,5,1,5,3]
- p4=[5,3,1,5,2,5]
- peliculas=[p1,p2,p3,p4]
- mat_peliculas=[]
- for i in range (0,4):
- new=[]
- for x in range (0,4):
- new.append(0)
- mat_peliculas.append(new)
- for (i,x) in enumerate(peliculas):
- for (j,y) in enumerate(peliculas):
- dist=dist_vector(x,y)
- mat_peliculas[i][j]=dist
- print np.array(mat_peliculas)
- return np.array(mat_peliculas)
- def mds(mat):
- nmds = MDS(n_components=1,dissimilarity="precomputed")
- npos = nmds.fit_transform(mat)
- print npos
- plt.plot(npos, marker='o', linestyle='None')
- plt.xlim([-1,8])
- plt.ylim([-5,5])
- plt.show()
- def dist_vector(x,y):
- total=0
- for i,j in zip(x,y):
- total+= (i-j)**2
- return total**0.5
- def imprimir_matriz (mat):
- for x in mat:
- print x
- mat=mat_usuarios()
- mds(mat)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement