我有一个名为 age-average 的 csv 文件。它有 4 列 userId、average、age、count。我想用平均值和年龄来聚集我的用户。这是我的代码:
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()
我应该在 ms.fit() 中写什么而不是 df[['average','age']]。任何人都可以有一个想法吗?我有点迷惑不解了。谢谢!
我有一个错误,比如
回溯(最后一次调用):文件“example.py”,第 20 行,在标签 = ms.labels AttributeError:“MeanShift”对象没有属性“标签”