2017-08-01 3 views
0

Ich bin sehr neu zu K-bedeutet, so hoffe ich, jemand kann mir mit dem folgenden Problem helfen.K-Mittelwert Clustering, Anzahl der Proben kleiner als die Anzahl der Cluster

mbk = MiniBatchKMeans(n_clusters=3, init_size=400, batch_size=300, verbose=1).fit(model_dm.docvecs[20000]) 

aber ich bekomme diese Fehlermeldung:

/usr/local/lib64/python2.7/site-packages/sklearn/utils/validation.py:386: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample. 
    DeprecationWarning) 

ValueErrorTraceback (most recent call last) 
<ipython-input-6-43cf0431aa1e> in <module>() 
     6 
     7 
----> 8 mbk = MiniBatchKMeans(n_clusters=3, init_size=400, batch_size=300, verbose=1).fit(model_dm.docvecs[20000]) 
     9 
    10 

/usr/local/lib64/python2.7/site-packages/sklearn/cluster/k_means_.pyc in fit(self, X, y) 
    1236   n_samples, n_features = X.shape 
    1237   if n_samples < self.n_clusters: 
-> 1238    raise ValueError("Number of samples smaller than number " 
    1239        "of clusters.") 
    1240 

ValueError: Number of samples smaller than number of clusters. 

Antwort

0

Haben Sie versucht, model_dm.docvecs[:20000] verwenden, denn wenn die eine Liste ist, dass Sie nur aufrufen wurden es 20001. Element ist:

mbk = MiniBatchKMeans(n_clusters=3, init_size=400, batch_size=300, verbose=1).fit(model_dm.docvecs[:20000]) 

Ich habe gerade versucht aber ich bekomme den nächsten Fehler.

TypeErrorTraceback (most recent call last) 
<ipython-input-7-5a569441684e> in <module>() 
     6 
     7 
----> 8 mbk = MiniBatchKMeans(n_clusters=3, init_size=400, batch_size=300, verbose=1).fit(model_dm.docvecs[:20000]) 
     9 
    10 

/usr/local/lib64/python2.7/site-packages/gensim/models/doc2vec.pyc in __getitem__(self, index) 
    351    return self.doctag_syn0[self._int_index(index)] 
    352 
--> 353   return vstack([self[i] for i in index]) 
    354 
    355  def __len__(self): 

TypeError: 'slice' object is not iterable 
Verwandte Themen