Я пробовал это, но я получаю ту же ошибку. Это работает для вас?

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

Вот мой код

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

protocols = {}

types = {"data1": "data1.csv", "data2": "data2.csv", "data3": "data3.csv"}

for protname, fname in types.items():
    col_time,col_window = np.loadtxt(fname,delimiter=',').T
    trailing_window = col_window[:-1] # "past" values at a given index
    leading_window  = col_window[1:]  # "current values at a given index
    decreasing_inds = np.where(leading_window < trailing_window)[0]
    quotient = leading_window[decreasing_inds]/trailing_window[decreasing_inds]
    quotient_times = col_time[decreasing_inds]

    protocols[protname] = {
        "col_time": col_time,
        "col_window": col_window,
        "quotient_times": quotient_times,
        "quotient": quotient,
    }



k_means = KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
    n_clusters=3, n_init=10, n_jobs=None, precompute_distances='auto',
    random_state=0, tol=0.0001, verbose=0)
k_means.fit(quotient.reshape(-1,1))

Таким образом, учитывая новую точку данных (сquotient а такжеquotient_times), Я хочу знать, какиеcluster оно принадлежит построению каждого набора данных, объединяющего эти две преобразованные функцииquotient а такжеquotient_times с участиемKMeans.

k_means.labels_ дает этот выводarray([1, 1, 0, 1, 2, 1, 0, 0, 2, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0], dtype=int32)

Наконец, я хочу визуализировать кластеры, используяplt.plot(k_means, ".",color="blue") но я получаю эту ошибку:TypeError: float() argument must be a string or a number, not 'KMeans', Как мы строимKMeans кластеры?

Ответы на вопрос(2)

Ваш ответ на вопрос