Я ищу способ сегментировать 2D-массив в n кластерах с помощью python. Я хочу использовать метод K-методов, но я не нашел никакого кода. Я пробовал с k-средствами библиотеки sklearn, но я не понял, как правильно ее использовать.Python K означает кластеризацию Array
0
A
ответ
0
В общем, использовать модель из sklearn вы должны:
импорт это:
from sklearn.cluster import KMeans
Инициализировать объект, представляющий модель с выбранными параметрами,
kmeans = KMeans(n_clusters=2)
, в качестве примера.Поувь его с вашими данными, используя метод
.fit()
:kmeans.fit(points)
. Теперь объектkmeans
имеет все данные, относящиеся к вашей обученной модели по своим атрибутам. В качестве примераkmeans.labels_
соответствует массиву с метками каждой из точек, используемых для обучения модели.- Используйте метод
.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.]])
Да я уже судимым, но с kmeans.labels_ мне дает только 1D array, я хочу, чтобы он дал мне и массив как входной массив, и каждый элемент был изменен на номер кластера, в котором он был назначен –