Вот реализация алгоритма kmeans, что я собрал из kmeans scikit документации и блоге обсуждения kmeans:kmeans кластеризация: как получить доступ к кластеру точек данных
#http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
#http://fromdatawithlove.thegovans.us/2013/05/clustering-using-scikit-learn.html
from sklearn.cluster import KMeans
import numpy as np
from matplotlib import pyplot
X = np.array([[10, 2 , 9], [1, 4 , 3], [1, 0 , 3],
[4, 2 , 1], [4, 4 , 7], [4, 0 , 5], [4, 6 , 3],[4, 1 , 7],[5, 2 , 3],[6, 3 , 3],[7, 4 , 13]])
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
k = 3
kmeans.fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
for i in range(k):
# select only data observations with cluster label == i
ds = X[np.where(labels==i)]
# plot the data observations
pyplot.plot(ds[:,0],ds[:,1],'o')
# plot the centroids
lines = pyplot.plot(centroids[i,0],centroids[i,1],'kx')
# make the centroid x's bigger
pyplot.setp(lines,ms=15.0)
pyplot.setp(lines,mew=2.0)
pyplot.show()
print(kmeans.cluster_centers_.squeeze())
Как напечатать/доступ к точкам данных о каждый из k кластеров.
if k = 3 :
cluster 1 : [10, 2 , 9], [1, 4 , 3], [1, 0 , 3]
cluster 2 : [4, 0 , 5], [4, 6 , 3],[4, 1 , 7],[5, 2 , 3],[6, 3 , 3],[7, 4 , 13]
cluster 3 : [4, 2 , 1], [4, 4 , 7]
Чтение http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html не существует атрибут или метод на kmeans
объекта для этого?
Update:
kmeans.labels_
возвращает array([1, 0, 2, 0, 2, 2, 0, 2, 0, 0, 1], dtype=int32)
Но как это показывают точки данных в каждой из 3-х кластеров?
Не метод, нет .... пристальнее документацию по вашей ссылке. –
@JackManey ближайший я нашел print (kmeans.labels_), print (kmeans.get_params), print (kmeans.cluster_centers_), но ни один из этих атрибутов не печатает значения кластера. –
... что вы имеете в виду, именно «значения кластера»? –