2017-08-13 1 views
0

Comment réparer cette erreur? Pourquoi le code n'a pas réussi à visualiser l'intrigue?Analyse de la silhouette sur le clustering KMeans

TypeError: 'numpy.ndarray' object is not callable 

entrée

data_sillet = np.loadtxt('clustering_sillet.csv', delimiter=',') 
data = data_sillet.astype(int) 
data 

sortie

array([ 2, 3, 8, 29, 32, 15, 23, 0, 4, 16, 14, 15, 1, 5, 1, 8, 0, 
     30, 14, 0, 1, 4, 5, 2, 12, 1, 7, 2, 0, 3, 22, 7, 1, 5, 
     0, 6, 0, 15, 9, 24, 24, 5, 0, 0, 24, 11, 9, 0, 0, 1, 18, 
     11, 4, 8, 27, 1, 3, 4, 7, 17, 5, 0, 1, 16]) 

entrée

data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101)  
plt.scatter(data[0][:,0],data[0][:,1],c=data[1],cmap='rainbow') 

sortie

TypeError         Traceback (most recent call last) 
<ipython-input-89-0b73209258a0> in <module>() 
----> 1 data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101) 
     2 
     3 plt.scatter(data[0][:,0],data[0][:,1],c=data[1],cmap='rainbow') 

TypeError: 'numpy.ndarray' object is not callable 
+1

Il semble que vous avez appelé 'données' au lieu de 'KMeans' dans cette ligne: data = data (n_samples = 64, n_features = 1, centres = 3, cluster_std = 0.5, random_state = 101) – merletta

+0

Le code a échoué car il a essayé d'appeler (l'appel est détecté par des crochets juste après) 'data' avec les paramètres n_samples = 64, etc. Parce que numpy.ndarray n'est pas un type callable, ce qui signifie qu'il n'y a pas de fonction __call__ définie, 'TypeError' avant que scatterplot ne soit appelé et que l'intrigue ne soit visualisée. C'est pourquoi vous ne voyez pas l'intrigue – merletta

+0

Oh..Je vois. Je vous remercie. –

Répondre

0

Il semble que vous avez appelé 'données' au lieu de 'KMeans' dans cette ligne:

data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,ra‌​ndom_state=101) 

Fix:

from sklearn.cluster import KMeans 
data =KMeans(n_samples=64,n_features=1,centers=3,cluster_std=0.5,ra‌​ndom_state=101) 
#remaining code follows 

Le code a échoué parce qu'il a essayé d'appeler (appel est détecté par data avec les paramètres n_samples = 64, etc. Parce que numpy.ndarray n'est pas un type appelable, ce qui signifie qu'il n'y a pas de fonction d'appel définie, ce code lève TypeError avant que scatterplot ne soit appelé et que le tracé ne soit visualisé. C'est pourquoi vous ne voyez pas l'intrigue.

+0

J'ai reçu le message d'erreur après avoir effectué le code ci-dessus. ------------------------------------------------- -------------------------- AttributeError Traceback (dernier appel en dernier) en () ----> 1 data = KMeans.data (n_samples = 64, n_features = 1, centres = 3, cluster_std = 0.5, random_state = 101) AttributeError: l'objet de type 'KMeans' n'a pas d'attribut 'data' –

+2

Omettre le '.data'. Et ** essayez de * comprendre *, pas seulement copier et coller **. Sinon, vous n'apprendrez jamais à corriger vous-même ces petites fautes. –