Как получить значение каждого центроида в кластере k средних?

У меня есть 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()

Вот что я получаю

Как получить значение каждого центроида в кластере k средних?

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

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

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

kmeans.cluster_centers_.ravel() - даст вам вектор (1D) координат центроидов (одна координата [1D] для каждого кластера)
MaxU 01.05.2018 12:42

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

Souvik Ray 01.05.2018 12:45
kmeans.cluster_centers_ / kmeans.cluster_centers_.ravel() - именно это дает ;-)
MaxU 01.05.2018 12:49

если вам нужно что-то другое - опубликуйте желаемый набор данных

MaxU 01.05.2018 12:55

@MaxU хорошо, вот где я ошибся. Понял! Вы можете опубликовать это как ответ, и я приму.

Souvik Ray 01.05.2018 13:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
5
2 735
0

Другие вопросы по теме