Как получить значение каждого центроида в кластере k-средних? - PullRequest
0 голосов
/ 01 мая 2018

У меня есть CSV-файл, который выглядит как показано ниже

date                       mse                                                  
2018-02-11                 14.34
2018-02-12                 7.24
2018-02-13                 244.5
2018-02-14                 3.5
2018-02-16                 12.67
2018-02-21                 45.66
2018-02-22                 15.33
2018-02-24                 98.44
2018-02-26                 23.55
2018-02-27                 45.12
2018-02-28                 78.44
2018-03-01                 34.11
2018-03-05                 23.33
2018-03-06                 127.45
...                        ...   
...                       ...

Теперь я хочу получить два кластера, чтобы я знал, какие значения лежат в каком кластере и их среднее значение.

Теперь обычно требуется два параметра или набора значений. Так как я просто обеспокоен значениями mse и кластером вокруг него, я передаю другой параметр как диапазон, который имеет тот же размер, что и никакие значения mse. это то, что я сделал

from sklearn.cluster import KMeans
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

df = pd.read_csv("generate_csv/all_data_device.csv", parse_dates=["date"])
df = df[df['mse'].values < 15000]
f1 = df['mse'].values
# generate another list of equal size
f2 = list(range(0, len(f1)))
X = np.array(list(zip(f1, f2)))
kmeans = KMeans(n_clusters=2).fit(X)

labels = kmeans.predict(X)

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X[:, 0], X[:, 1], c=labels)
ax.scatter(centroids[:, 0], centroids[:, 1], marker='*', c='#050505', s=1000)
plt.title('K Mean Classification (mse < 15000)')
plt.show()

Это то, что я получаю

enter image description here

Теперь я могу получить координаты центроида, выполнив что-то вроде этого

# Centroid coordinates
centroids = kmeans.cluster_centers_
print(centroids)

Но я хочу получить значение каждого из центроидов. Другими словами, поскольку центроиды представляют среднее значение всех значений mse в каждом кластере, я хочу это среднее значение для каждого из кластеров. Как я могу это сделать?

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