K-средства кластеризации между столбцами в наборе данных - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь выполнить кластеризацию k-средних на имеющемся у меня наборе данных pandas.

Набор данных выглядит следующим образом:

Index        A    B    C    D    E
01-01.2000
01:00:00     1    1    1    1    2
01-01-2000
02:00:00     0    1    2    3    0.68
01-01-2000
03:00:00     0.58 2    4    0    0.72

Столбцы индекса идут на 1 год ежечасно, и у меня всего 33 столбца.

Что я хочу сделать, так это то, что я хочу выполнить кластерный анализ kmeans между столбцами, который будет включать каждую строку в виде временного ряда. Я ожидаю вывод следующим образом:

Кластер1: столбцы A D G

Кластер2: столбцы B C E

Кластер3: столбцы I J K

Всего 7 кластеров.

Код, который я написал, выглядит следующим образом:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=7)
kmeans = kmeans.fit(X)
labels = kmeans.predict(X)
Centers = kmeans.cluster_centers_
C = Centers
X=X.values
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(X[:, 0], X[:, 1], X[:, 2],X[:, 3],...till 33,marker='o')
ax.plot(C[:, 0], C[:, 1], C[:, 2],C[:, 3],...till 33, marker='o')

Однако после запуска приведенного выше кода я получаю следующий график, который не является выводом, который я намереваюсь генерировать, поскольку он не показывает всего 7 кластеров

Output

Я заметил в переменной «метки», у меня всего 8760 строк и 1 столбец, что, как мне кажется, показало, что мой подход считает каждую строку независимой, а не рассматривает строки как временные ряды, кластеризующие их столбец за столбцом.

В любом случае с помощью k-средних кластеров я могу получить желаемый результат? или я должен рассмотреть другие подходы кластеризации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...