我正在尝试对所有文本数据进行K均值聚类。我已经尝试了这些代码行,但收到一条错误消息,提示“ ValueError:无法将字符串转换为float:'GIAC'”。
我认为该程序在将文本转换为矢量以进行聚类方面仍然存在问题。
我真的不知道该怎么解决。
下面是代码行:
import numpy as np
import matplotlib.pyplot as plot
import pandas as pd
from sklearn.cluster import KMeans
Cert = pd.read_csv('Certification.csv')
X = Cert.iloc[:,:].values
wcss =[]
for i in range(1,5):
kmeans = KMeans(n_clusters = i, init='k-means++', random_state = 0)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plot.plot(range(1,5),wcss)
plot.title('Elbow Method')
plot.xlabel('Number of Clusters')
plot.ylabel('WCSS')
plot.show()
我还附有错误消息的屏幕截图。error message
在此处输入代码
答案 0 :(得分:1)
K均值要求您的数据为连续变量。
很明显,'GIAC'
不是 一个数字,是吗?
K均值不能用于此数据。您需要进行单次热编码或类似的编码,但是随之而来的是k均值本身的问题。通常,当您拥有诸如'GIAC'
之类的数据时,只有没有合理的方法以统计上有意义的方式对数据进行聚类。在获得结果的过程中,有太多的启发式选择,您也可能获得几乎任何其他结果。尝试以数学方式解决该问题,而不要使用复制粘贴代码。