gpt4 book ai didi

python - 值错误 : could not convert string to float:

转载 作者:太空狗 更新时间:2023-10-30 02:55:15 24 4
gpt4 key购买 nike

我正在按照本教程编写朴素贝叶斯分类器: http://machinelearningmastery.com/naive-bayes-classifier-scratch-python/

我一直收到这个错误:

dataset[i] = [float(x) for x in dataset[i]]
ValueError: could not convert string to float:

这是我的代码中发生错误的部分:

def loadDatasetNB(filename):
lines = csv.reader(open(filename, "rt"))
dataset = list(lines)
for i in range(len(dataset)):
dataset[i] = [float(x) for x in dataset[i]]
return dataset

这是文件的调用方式:

def NB_Analysis():
filename = 'fvectors.csv'
splitRatio = 0.67
dataset = loadDatasetNB(filename)
trainingSet, testSet = splitDatasetNB(dataset, splitRatio)
print('Split {0} rows into train={1} and test={2} rows').format(len(dataset), len(trainingSet), len(testSet))
# prepare model
summaries = summarizeByClassNB(trainingSet)
# test model
predictions = getPredictionsNB(summaries, testSet)
accuracy = getAccuracyNB(testSet, predictionsNB)
print('Accuracy: {0}%').format(accuracy)

NB_Analysis()

My file fvectors.csv looks like this

这里出了什么问题,我该如何解决?

最佳答案

尝试跳过标题,第一列中的空标题是导致问题的原因。

>>> float(' ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float:

如果你想跳过标题,你可以通过以下方式实现:

def loadDatasetNB(filename):
lines = csv.reader(open(filename, "rt"))
next(reader, None) # <<- skip the headers
dataset = list(lines)
for i in range(len(dataset)):
dataset[i] = [float(x) for x in dataset[i]]
return dataset

(2) 或者您可以忽略异常:

try:
float(element)
except ValueError:
pass

如果您决定使用选项 (2),请确保只跳过第一行或只跳过包含文本的行,并且您肯定知道。

关于python - 值错误 : could not convert string to float:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com