我正在测试和训练文本数据集,但收到此错误。 CSV 文件包含文本。
当我运行代码时,它会给出输出:
ValueError:无法将字符串转换为 float :b'user1'
这里user1
是数据集中的文本
代码:
from keras.models import Sequential
from keras.layers.core import Dense
from sklearn.model_selection import train_test_split
import numpy as np
seed = 9
np.random.seed(seed)
dataset = np.loadtxt('E:/7th Semester/FYP/ini/New
folder/MBAT/DataSet/train_data.csv', delimiter=',', skiprows=1)
X = dataset[:,0:8]
Y = dataset[:,8]
(X_train, X_test, Y_train, Y_test) = train_test_split(X, Y, test_size=0.33,
random_state=seed)
model = Sequential()
model.add(Dense(8, input_dim=8, init='uniform', activation='relu'))
model.add(Dense(6, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=
['accuracy'])
model.fit(X_train, Y_train, validation_data=(X_test, Y_test), nb_epoch=100,
batch_size=5)
scores = model.evaluate(X_test, Y_test)
print ("Accuracy: %.2f%%" %(scores[1]*100))
完整回溯错误:
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 725, in floatconv
return float(x)
ValueError: could not convert string to float: b'user1'
最佳答案
根据官方文档numpy ,numpy.loadtxt()
生成的数组的 dtype
是 float
。现在,user1
是一个字符串,无法转换为float
,因此您会收到此错误。您可以尝试以下操作:
np.genfromtxt('/path/to/csv', dtype=None, delimiter=',', names=True, case_sensitive=True, invalid_raise=False)
关于python - 值错误: could not convert string to float: b'user1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53791626/