【问题标题】:Getting error "ValueError: could not covert string to float " in integer sequence learning在整数序列学习中出现错误“ValueError:无法将字符串转换为浮点数”
【发布时间】:2018-05-03 07:11:18
【问题描述】:

我是机器学习的新手,我正在尝试为整数序列模型开发一个简单的 RNN (Integer Sequence Learning - Kaggle Competition)

我的数据集取自 Kaggle 比赛,以下是我的代码:

import numpy
import matplotlib.pyplot as plt
import pandas as pd
import math
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import SimpleRNN
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
from keras.preprocessing.sequence import pad_sequences

# convert an array of values into a dataset matrix
def create_dataset(dataset, window_size=1):
    dataX, dataY = [], []
    for i in range(len(dataset)-window_size-1):
        a = dataset[i:(i+window_size), 0]
        dataX.append(a)
        dataY.append(dataset[i + window_size, 0])
    return numpy.array(dataX), numpy.array(dataY)

# fix random seed for reproducibility
numpy.random.seed(7)

# loading data
dataframe = pd.read_csv('G:/Python/integer_sequencing/train.csv', usecols=[1], engine='python', skipfooter=3)

dataset = dataframe.values
#dataset = dataset.astype('float32')

train_size = int(len(dataset) * 0.67) #67 per cent used for training
test_size = len(dataset) - train_size # remaining used for testing
train, test = dataset[0:train_size], dataset[train_size:len(dataset)]
#print(train_data.head(n=10))

# normalize the datasets
scaler_train = MinMaxScaler(feature_range=(0, 1))
scaler_test = MinMaxScaler(feature_range=(0, 1))
train = scaler_train.fit_transform(train)
test = scaler_test.fit_transform(test)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))
testX = numpy.reshape(testX, (testX.shape[0], 1, testX.shape[1]))

print(trainX.shape)
print(trainY.shape)

我收到如下错误:

我该如何解决?请帮忙...

PS - 我以Time series prediction 为例

【问题讨论】:

    标签: python deep-learning keras rnn


    【解决方案1】:

    问题在于您正在为您的网络提供string 序列。仔细检查输入数据的dtype,并确保它是一个包含float 数字的numpy 数组。

    【讨论】:

    • 我使用的数据集是 Kaggle 比赛中提供的数据集。问题是预测任何整数序列中的下一个数字。训练数据由所有可能的整数序列组成。
    • 我明白了,但是您的输入数据不应该是string 类型,否则此错误将持续存在。尝试拆分序列并将每个字符串编号转换为float
    • 很高兴它有帮助,如果您不介意可以接受我的回答吗?
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2019-09-28
    • 2020-08-09
    • 2019-03-23
    • 2018-06-13
    • 2013-05-30
    相关资源
    最近更新 更多