小编Jvr*_*Jvr的帖子

如何在Keras中使用LSTM的多个输入?

我试图预测一个人口的用水量.

我有1个主要输入:

  • 水量

和2个次要输入:

  • 温度
  • 雨量

从理论上讲,它们与供水有关.

必须说每个降雨和温度数据都与水量相对应.所以这是一个时间序列问题.

问题是我不知道如何从一个.csv文件中使用3个输入,每个输入有3列,每个输入,如下面的代码所示.当我只有一个输入(例如水量)时,网络或多或少地使用此代码,但不是当我有多个输入时.(因此,如果您使用下面的csv文件运行此代码,则会显示维度错误).

阅读一些答案:

似乎很多人都有同样的问题.

代码:

编辑:代码已更新

import numpy
import matplotlib.pyplot as plt
import pandas
import math

from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error


# convert an array of values into a dataset matrix

def create_dataset(dataset, look_back=1):
    dataX, dataY = [], []
    for i in range(len(dataset) - look_back - 1):
        a = dataset[i:(i + look_back), 0]
        dataX.append(a)
        dataY.append(dataset[i + look_back, …
Run Code Online (Sandbox Code Playgroud)

python neural-network deep-learning keras

22
推荐指数
1
解决办法
2万
查看次数

平日的熊猫石斑鱼?

我有一个熊猫数据框,其中的索引是从2007年到2017年的日期。

我想计算每年每个工作日的平均值。我可以按年份分组:

groups = df.groupby(TimeGrouper('A'))
years = DataFrame()
for name, group in groups:
   years[name.year] = group.values
Run Code Online (Sandbox Code Playgroud)

这是我创建新数据框(年)的方式,其中在每一列中我获取时间序列的每一年。如果我想查看每年的统计数据(例如,平均值):

print(years.mean())
Run Code Online (Sandbox Code Playgroud)

但是现在我想将每年的每一天都分开,以便获得当时所有时间的每个工作日的平均值。

我唯一知道的是:

year=df[(df.index.year==2007)]

day_week=df[(df.index.weekday==2)]
Run Code Online (Sandbox Code Playgroud)

问题是我必须在一周中的一天更改7次,然后重复11年(我的时间序列从2007年开始到2017年结束),所以我必须做77次!

有没有一种方法可以按年和周日对时间进行分组,以使其更快?

python group-by time-series dataframe pandas

5
推荐指数
1
解决办法
1583
查看次数