2017-02-22 23 views
0

Я ищу способ сегментировать 2D-массив в n кластерах с помощью python. Я хочу использовать метод K-методов, но я не нашел никакого кода. Я пробовал с k-средствами библиотеки sklearn, но я не понял, как правильно ее использовать.Python K означает кластеризацию Array

ответ

0

В общем, использовать модель из sklearn вы должны:

  1. импорт это: from sklearn.cluster import KMeans

  2. Инициализировать объект, представляющий модель с выбранными параметрами, kmeans = KMeans(n_clusters=2), в качестве примера.

  3. Поувь его с вашими данными, используя метод .fit(): kmeans.fit(points). Теперь объект kmeans имеет все данные, относящиеся к вашей обученной модели по своим атрибутам. В качестве примера kmeans.labels_ соответствует массиву с метками каждой из точек, используемых для обучения модели.

  4. Используйте метод .predict(new_points), чтобы получить метку ближайшего кластера к точке или массиву точек.

Вы можете получить все атрибуты из страницы kmeansalgorithm: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

0

От http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans

from sklearn.cluster import KMeans 
import numpy as np 

#this is your array with the values 
X = np.array([[1, 2], [1, 4], [1, 0], 
       [4, 2], [4, 4], [4, 0]]) 


#This function creates the classifier 
#n_clusters is the number of clusters you want to use to classify your data 
kmeans = KMeans(n_clusters=2, random_state=0).fit(X) 

#you can see the labels with: 
print kmeans.labels_ 

# the output will be something like: 
#array([0, 0, 0, 1, 1, 1], dtype=int32) 
# the values (0,1) tell you to what cluster does every of your data points correspond to 

#You can predict new points with 
kmeans.predict([[0, 0], [4, 4]]) 

#array([0, 1], dtype=int32) 

#or see were the centres of your clusters are 
kmeans.cluster_centers_ 
#array([[ 1., 2.], 
#  [ 4., 2.]]) 
+0

Да я уже судимым, но с kmeans.labels_ мне дает только 1D array, я хочу, чтобы он дал мне и массив как входной массив, и каждый элемент был изменен на номер кластера, в котором он был назначен –