change () отсутствует 1 обязательный позиционный аргумент: «X» при прогнозировании будущего значения - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь предсказать будущее значение с тремя входами.Здесь я хочу прогнозировать будущее значение по трем входам в каждый час.Здесь g = температура, p = влажность, c = ветер, и я хочу предсказать температуру в следующем часе в соответствии с этими входными данными.Вот почему здесь я поставил n_out = 1, я написал код в класс def.После этого я попытался добавить это значение класса def в качестве значения x, y.Потому что я собираюсь записать это как обучающую и испытательную ценность.Но ошибка пришла как это.Я собираюсь предсказать будущую стоимость, используя LSTM.После этого я не знаю, как добавить этот код для обучения и тестирования в модели LSTM.Может ли кто-нибудь помочь мне решить эту проблему?Здесь я вставляю мой код и файл CSV.

def change(train,X, n_out=1):
    data = train.reshape((train.shape[0]))
    x, y = list(), list()
    in_start = 0
    # step over the entire history one time step at a time
    for _ in range(len(data)):
        # define the end of the input sequence
        in_end = in_start + X
        out_end = in_end + n_out
        # ensure we have enough data for this instance
        if out_end < len(data):
            x_input = data[in_start:in_end, 0]
            x_input = x_input.reshape((len(x_input), 3))
            x.append(x_input)
            y.append(data[in_end:out_end, 0])
        # move along one time step
        in_start += 1
    return array(x), array(y)


data= pd.DataFrame(data,columns=['g','p','c']) 
data.columns = ['g', 'p', 'c',]
pd.options.display.float_format = '{:,.0f}'.format
data = data.dropna ()
cols=['g', 'p', 'c']
X=data[cols]
x,y = change(data)

Ошибка пришла как

enter image description here

мой файл CSV:

enter image description here

После редактирования кода он дал мне эту ошибку:

enter image description here

1 Ответ

2 голосов
/ 17 июня 2019

В вашем определении функции у вас есть 3 параметра: train, X и n_out = 1

def change(train, X, n_out=1)

, когда вы вызываете свою функцию, вы предоставляете только 1 аргумент (data)

x,y = change(data)

как n_out вы определяете как 1, вам также необходимо указать x или определить свою функцию как:

def change(train, n_out=1)

ПРИМЕЧАНИЕ:

вам нужно указать X при вызове вашей функции, например:

x,y = change(data, 1) 

или определить функцию как:

def change(train, X=1, n_out=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...