【发布时间】:2019-08-25 14:07:04
【问题描述】:
我正在使用sklearn.cluster.KMeans 对数据进行分类。通过打印我的标签,我可以看到 KMeans 正在工作,但是,标签打印为数值(0、1 或 2)。
在此之后,我想将标签重新打印为字符串,例如“窄”、“宽”和“正常”。
这是我使用if-elif 语句的尝试:
csv= "data.csv"
data = pd.read_csv(csv, header = None, low_memory = False)
model = KMeans(n_clusters = 3, random_state = 1)
model.fit(data)
labels = model.predict(data)
print(labels)
for category in lables:
if category == 0:
print('narrow')
elif category == 1:
print('wide')
elif category == 2:
print('normal')
else:
print('Unlabeled Data')
np.savetxt("category.csv", category, delimiter = ',')
【问题讨论】:
-
大概你得到了你想要的
print输出?printing 到 stdout 不会更改基础数据(它只是丢弃的输出);我假设您实际上想将map类别添加到包含数值(或您正在迭代的任何结构)的 DataFrame 列中 -
请显示来自
print(labels)的一些输出的sn-p。是 numpy 数组、pandas DataSeries 还是其他? -
我的标签在打印时看起来像这样 [1 1 1 1 1 1 1 1 1 0 0 2 ... 0 2 2 2 0 2 2 2 2 0 2 0 2 0 0 2 2 0]
标签: python python-3.x label k-means unsupervised-learning