print(__doc__)importtimeimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportMiniBatchKMeans,KMeansfromsklearn.metrics.pairwiseimportpairwise_distances_argminfromsklearn.datasets.samples_generatorimportmake_blobs############################################################################### Generate sample datanp.random.seed(0)batch_size=45centers=[[1,1],[-1,-1],[1,-1]]n_clusters=len(centers)X,labels_true=make_blobs(n_samples=3000,centers=centers,cluster_std=0.7)############################################################################### Compute clustering with Meansk_means=KMeans(init='k-means++',n_clusters=3,n_init=10)t0=time.time()k_means.fit(X)t_batch=time.time()-t0k_means_labels=k_means.labels_k_means_cluster_centers=k_means.cluster_centers_k_means_labels_unique=np.unique(k_means_labels)############################################################################### Compute clustering with MiniBatchKMeansmbk=MiniBatchKMeans(init='k-means++',n_clusters=3,batch_size=batch_size,n_init=10,max_no_improvement=10,verbose=0)t0=time.time()mbk.fit(X)t_mini_batch=time.time()-t0mbk_means_labels=mbk.labels_mbk_means_cluster_centers=mbk.cluster_centers_mbk_means_labels_unique=np.unique(mbk_means_labels)############################################################################### Plot resultfig=plt.figure(figsize=(8,3))fig.subplots_adjust(left=0.02,right=0.98,bottom=0.05,top=0.9)colors=['#4EACC5','#FF9C34','#4E9A06']# We want to have the same colors for the same cluster from the# MiniBatchKMeans and the KMeans algorithm. Let's pair the cluster centers per# closest one.order=pairwise_distances_argmin(k_means_cluster_centers,mbk_means_cluster_centers)# KMeansax=fig.add_subplot(1,3,1)fork,colinzip(range(n_clusters),colors):my_members=k_means_labels==kcluster_center=k_means_cluster_centers[k]ax.plot(X[my_members,0],X[my_members,1],'w',markerfacecolor=col,marker='.')ax.plot(cluster_center[0],cluster_center[1],'o',markerfacecolor=col,markeredgecolor='k',markersize=6)ax.set_title('KMeans')ax.set_xticks(())ax.set_yticks(())plt.text(-3.5,1.8,'train time: %.2fs\ninertia: %f'%(t_batch,k_means.inertia_))# MiniBatchKMeansax=fig.add_subplot(1,3,2)fork,colinzip(range(n_clusters),colors):my_members=mbk_means_labels==order[k]cluster_center=mbk_means_cluster_centers[order[k]]ax.plot(X[my_members,0],X[my_members,1],'w',markerfacecolor=col,marker='.')ax.plot(cluster_center[0],cluster_center[1],'o',markerfacecolor=col,markeredgecolor='k',markersize=6)ax.set_title('MiniBatchKMeans')ax.set_xticks(())ax.set_yticks(())plt.text(-3.5,1.8,'train time: %.2fs\ninertia: %f'%(t_mini_batch,mbk.inertia_))# Initialise the different array to all Falsedifferent=(mbk_means_labels==4)ax=fig.add_subplot(1,3,3)forlinrange(n_clusters):different+=((k_means_labels==k)!=(mbk_means_labels==order[k]))identic=np.logical_not(different)ax.plot(X[identic,0],X[identic,1],'w',markerfacecolor='#bbbbbb',marker='.')ax.plot(X[different,0],X[different,1],'w',markerfacecolor='m',marker='.')ax.set_title('Difference')ax.set_xticks(())ax.set_yticks(())plt.show()

Total running time of the example: 0.33 seconds
( 0 minutes 0.33 seconds)