ValueError:无法将字符串转换为浮点数:'GIAC'
Posted
技术标签:
【中文标题】ValueError:无法将字符串转换为浮点数:\'GIAC\'【英文标题】:ValueError: could not convert string to float: 'GIAC'ValueError:无法将字符串转换为浮点数:'GIAC' 【发布时间】:2020-04-02 02:36:47 【问题描述】:我正在尝试对所有文本的一组数据执行 K 均值聚类。我已经尝试了这些代码行,但我收到一条错误消息“ValueError:无法将字符串转换为浮点数:'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
在此处输入代码
【问题讨论】:
Scikit Learn 只能使用数字...在 Scikit Learn 内部是一堆乘法、除法、矩阵运算...如果都是文本,您认为会发生什么? 【参考方案1】:K-means 要求您的数据是连续变量。
很明显,'GIAC'
不是一个数字,是吗?
K-means 不能用于此数据。您需要进行一次热编码或类似的操作,但这伴随着 k-means 的一系列问题......通常当您拥有具有诸如 'GIAC'
之类的值的数据时,只有 no 以具有统计意义的方式对数据进行聚类的合理方法。在获得结果的过程中,有太多的启发式选择,你也可以得到几乎任何其他的结果。尝试用数学方法解决问题,而不是复制和粘贴代码。
【讨论】:
我已经解决了。但是我还有一个大问题。我有两个充满字符串的 CSV 数据集。我正在尝试通过删除标点符号和停用词来预处理数据。然后,在两个文档之间执行均值聚类。但是,我无法弄清楚如何预处理数据。我尝试使用 nlkt 类来删除停用词和拆分,但不知何故,我不断收到错误消息或其他消息。你有什么建议吗?以上是关于ValueError:无法将字符串转换为浮点数:'GIAC'的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:无法将字符串转换为浮点数:'2100 - 2850'
ValueError:无法将字符串转换为浮点数:'62,6'
ValueError:无法将字符串转换为浮点数:''20,99''