Кластеризация MeanShift из CSV-файла

У меня есть CSV-файл под названием средний возраст. Он имеет 4 столбца userId, средний, возраст, количество. Я хочу взять средний и возраст, чтобы объединить моих пользователей. Вот мой код:

import csv
import pandas as pd
import numpy as np
from sklearn.cluster import MeanShift
import matplotlib.pyplot as plt

df = pd.read_csv('/age-average.csv')
csv_file = open('/age-average.csv')
csv_reader = csv.reader(csv_file, delimiter=',')
next(csv_reader)

for row in csv_reader:
    userID,average,age,count = row
    plt.scatter(age,average)

plt.show()

Это показывает график. Так что все в порядке. Однако, когда я должен использовать функцию ms.fit(), я всегда получаю сообщение об ошибке:

ms =  MeanShift()
ms.fit(df[['average','age']])
labels = ms.labels
cluster_centers = ms.cluster_centers_

print(cluster_centers)

n_clusters_ = len(np.unique(labels))

print("The number of estimated clusters ", n_clusters_)

colors = 10*['r.','g.','c.','k.','y.','m.']

print(colors)

for i in range(len(age,average)):
    plt.plot(int(age[i]), float(average[i]), colors[labels[i]], markersize = 10)
plt.scatter(cluster_centers[:,0],cluster_centers[:,1],
            marker="x", s= 150, linewidths = 5, zorder=10)
plt.show()

Что я должен написать вместо df[['medium','age']] внутри ms.fit(). У кого-нибудь может быть идея? Я путаюсь. Спасибо!

Я получил ошибку вроде

Traceback (последний вызов был последним): файл "example.py", строка 20, в метках = ms.labels AttributeError: у объекта "MeanShift" нет атрибута "метки"

0 ответов

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