dalv_happy
@dalv_happy

Как произвести кластеризацию данных?

Добрый вечер!
Помогите ответить на мой список вопросов:
  1. Для отображения графика, какие параметры я должен передать (в plt.scatter()), чтобы отобразить кластеры?
  2. К примеру, когда я обучал модель линейной регрессии, то в метод fit передавал x_train, y_train после мог предсказывать свой y на тестовых данных. А как я могу проверить насколько точно составлен конкретный кластер, ведь в метод fit я передаю только x никакие y здесь не фигурируют?
Данные брал отсюда.
Это данные с гироскопа телефона, который был закреплён на добровольцах, данные описывают 6 движений человека (WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS, SITTING, STANDING, LAYING)
Подготовленные данные:
Данные x_test
Данные y_test

Код:
import numpy as np
import matplotlib.pyplot as plt

import pandas as pd
from sklearn import preprocessing

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.preprocessing import Imputer

plt.figure(figsize=(12, 12))
X = pd.read_csv('X_test.csv', engine='python', sep=';', index_col=False).as_matrix()
#Нормализация данных
X = preprocessing.scale(X)
print(X)

y_pred = KMeans(n_clusters=6).fit_predict(X)

plt.subplot(221)
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Incorrect Number of Blobs")
plt.show()

5a12ef89dd600605848293.png
  • Вопрос задан
  • 3392 просмотра
Пригласить эксперта
Ответы на вопрос 1
DanilBaibak
@DanilBaibak
Machine Learning engineer
 Давайте по порядку:
1. Добавить цвет для идентификации кластеров:
clusters = KMeans(n_clusters=6).fit_predict(X)

plt.scatter(X[:, 0], X[:, 1], c=[matplotlib.cm.spectral(float(i) /10) for i in cluster.labels_])

2. KMeans - это пример обучения без учителя. Если бы у Вас заранее были метки классов, Вы бы применяли линейную регрессию, например :) Для того чтобы понять насколько хорошо происходит кластеризация, можно отобразить результаты алгоритма на графике, что Вы и хотите сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы