Commit 0f84d76d by Pierre-antoine Comby

### better init

parent 9ed86888
Pipeline #1197 passed with stage
in 3 minutes and 13 seconds
 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sun May 5 13:59:37 2019 @author: pac Algorithme de Linde-Buzo-Gray, version 2D """ import numpy as np import matplotlib.pyplot as plt from scipy.spatial import Voronoi, voronoi_plot_2d mean= [0,0] cov = [[1,0],[0,1]] # M = 20; N =100; #point par cluster K = N*M means = np.random.rand(M,2)*10 X = np.zeros((K,2)) plt.figure() cov = np.array([[1,0],[0,1]]) for m in range(M): xi = np.random.multivariate_normal(means[m,:],cov,N) X[m*N:(m+1)*N] = xi plt.plot(xi[:,0],xi[:,1],'+') plt.plot(means[:,0],means[:,1],'ob') mean= np.mean(X,axis=0) Y0 = np.random.multivariate_normal(mean, 10*cov, M) plt.show() print(Y0) Y0= means plt.plot(Y0[:,0],Y0[:,1],'ok') # X = np.random.multivariate_normal(mean,cov,K) Y0 = np.random.multivariate_normal(mean, cov,M) Y0 = means; def LBG(X,Y0,eps=1e-5,maxiter=1000): Y = Y0.copy() old_dist = np.inf ... ... @@ -45,7 +40,8 @@ def LBG(X,Y0,eps=1e-5,maxiter=1000): cluster_index[k] = j dist += sum((X[k]-quant_min)**2) for j in range(len(Y)): Y[j,:] = np.mean(X[cluster_index==j],axis=0) Y[j,:] = np.mean(X[cluster_index==j],axis=0) print(Y) if dist-old_dist < eps: break else: ... ... @@ -56,6 +52,6 @@ vor = Voronoi(Y) voronoi_plot_2d(vor,show_vertices=False) print(Y) plt.plot(X[:,0],X[:,1],'+') plt.plot(Y[:,0],Y[:,1],'o') #plt.plot(Y0[:,0],Y0[:,1],'ob') plt.plot(Y[:,0],Y[:,1],'ob') plt.plot(Y0[:,0],Y0[:,1],'ok') plt.show()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!