错误解决:ValueError: could not convert string to float ‘‘

错误解决:ValueError: could not convert string to float ‘’

问题描述

使用python运行SVM程序时,在读取数据文件的步骤出现了错误,具体报错如下:

ValueError: could not convert string to float ''

博主数据格式为txt格式,分为训练集和测试集。
原来数据形式(举例子)为:
-0.214824 0.662756 -1.000000
-0.214824 0.662756 -1.000000
-0.214824 0.662756 -1.000000

后来为了改成自己的数据集,换成下面的4列就报错了。
-0.214824 0.662756 0.3241 -1.000000
-0.214824 0.662756 0.3241 -1.000000

一开始总以为是加了一列导致的,后来测试发现并不是。
又通过Editplus替换所有的空格为逗号**(,)**,测试发现并没有用,仍然报错。

解决方法

万能的debug,在读取和分割后加入print语句,看看究竟读出了什么妖魔鬼怪。

['0.207123', '-0.019463', '0.3241', '1.000000']
['0.286462', '0.719470', '0.3241', '-1.000000']
['0.195300', '-0.179039', '0.3241', '1.000000']
['']

发现最后一行多了一个空格。
打开Editplus,删除最后一行,再次运行

the training error rate is: 0.000000
['0.676771', '-0.48668', '0.3241', '-1.000000']
['0.008473', '0.186070', '0.3241', '1.000000']
the test error rate is: 0.500000

Process finished with exit code 0

完美解决!

你可能感兴趣的:(python,python,bug,svm)