用神经网络训练模型,报错字符串不能转换为浮点,请问怎么解决?

import matplotlib.pyplot as plt
from math import sqrt
from matplotlib import pyplot
import pandas as pd
from numpy import concatenate
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import Adam
import tensorflow
'''
keras实现神经网络回归模型
'''

读取数据

path = 'data001.csv'

删掉不用字符串字段

train = pd.read_csv(path)
dataset = train.iloc[1:,:]

df转array

values = dataset.values

原始数据标准化,为了加速收敛

scaler = MinMaxScaler(feature_range=(0, 1))
scaled = scaler.fit_transform(values)
y = scaled[:, -1]
X = scaled[:, 0:-1]

随机拆分训练集与测试集

from sklearn.model_selection import train_test_split

train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.3)

全连接神经网络

model = Sequential()
input = X.shape[1]

隐藏层128

model.add(Dense(128, input_shape=(input,)))
model.add(Activation('relu'))

Dropout层用于防止过拟合

model.add(Dropout(0.2))

隐藏层128

model.add(Dense(128))
model.add(Activation('relu'))

model.add(Dropout(0.2))

没有激活函数用于输出层,因为这是一个回归问题,我们希望直接预测数值,而不需要采用激活函数进行变换。

model.add(Dense(1))

使用高效的 ADAM 优化算法以及优化的最小均方误差损失函数

model.compile(loss='mean_squared_error', optimizer=Adam())

early stoppping

from keras.callbacks import EarlyStopping

early_stopping = EarlyStopping(monitor='val_loss', patience=50, verbose=2)

训练

history = model.fit(train_X, train_y, epochs=300, batch_size=20, validation_data=(test_X, test_y), verbose=2,
shuffle=False, callbacks=[early_stopping])

loss曲线

pyplot.plot(history.history['loss'], label='train')
pyplot.plot(history.history['val_loss'], label='test')
pyplot.legend()
pyplot.show()

预测

yhat = model.predict(test_X)

预测y逆标准化

inv_yhat0 = concatenate((test_X, yhat), axis=1)
inv_yhat1 = scaler.inverse_transform(inv_yhat0)
inv_yhat = inv_yhat1[:, -1]

原始y逆标准化

test_y = test_y.reshape((len(test_y), 1))
inv_y0 = concatenate((test_X, test_y), axis=1)
inv_y1 = scaler.inverse_transform(inv_y0)
inv_y = inv_y1[:, -1]

计算 RMSE

rmse = sqrt(mean_squared_error(inv_y, inv_yhat))
print('Test RMSE: %.3f' % rmse)
plt.plot(inv_y)
plt.plot(inv_yhat)
plt.show()


报错是:Traceback (most recent call last):
File "F:/SSD/CNN.py", line 24, in
scaled = scaler.fit_transform(values)
File "D:\anaconda\lib\site-packages\sklearn\base.py", line 464, in fit_transform
return self.fit(X, **fit_params).transform(X)
File "D:\anaconda\lib\site-packages\sklearn\preprocessing\data.py", line 334, in fit
return self.partial_fit(X, y)
File "D:\anaconda\lib\site-packages\sklearn\preprocessing\data.py", line 362, in partial_fit
force_all_finite="allow-nan")
File "D:\anaconda\lib\site-packages\sklearn\utils\validation.py", line 527, in check_array
array = np.asarray(array, dtype=dtype, order=order)
File "D:\anaconda\lib\site-packages\numpy\core\numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: could not convert string to float: 'label'

label是csv文件里的列名,但是就算去掉,还是会报这个错误

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

0
用神经网络训练模型,报错字符串不能转换为浮点,请问怎么解决?
0
为什么我用python运行一个可视化MINST数据的文件,系统总是提示‘X_train is not defined’?
1
SPSS神经网络XML预测为什么都是空值???求大神解答
1
用tensorflow-gpu跑SSD-Mobilenet模型GPU使用率很低这是为什么
0
用tensorflow-gpu跑SSD-Mobilenet模型隔一段时间就会出现以下内容
1
通过机器学习 或opencv 如何识别到图中的模型
1
halcon中怎么将已经测得的数值输出至表格
1
请问 tensorflow 在训练网络过程中,如何在使用验证集进行验证时,不 让权值发生变化?
0
请教各位老师哪些模型中应用的定量、定性特征需要进行转换?
1
keras如何搭建跨层神经网络
0
训练神经网络拟合正弦函数在jupter notebook上运行无反应
2
利用keras搭建神经网络,怎样记录每一轮epoch的时间,和训练的总时间?
0
slim微调后的模型可以用在tf-faster rcnn上进行细粒度测试吗?
1
请问用GAN训练自己的数据集,一直效果不好,有大佬能有经验告知一下吗?
1
tensorflow重载模型继续训练得到的loss比原模型继续训练得到的loss大,是什么原因??
2
训练模型 loss没有变化 哪里出错了
1
python 新手 神经网络的反向传播 和 误差反向传播 是同一个东西吗
1
如何用python写一个可视化图形用户界面,实现一键使用训练好的模型检测物体
0
求助:用r语言做BP神经网络,之后请问怎样做sensitivity analysis(灵敏度分析),算相对重要性?
1
Keras能否实现GRNN模型,如果可以那程序是怎么样的?