首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于LSTM的时间序列数据的测试分割

用于LSTM的时间序列数据的测试分割
EN

Data Science用户
提问于 2020-09-28 17:27:32
回答 1查看 606关注 0票数 0
代码语言:javascript
运行
复制
values = df.values
train, test = train_test_split(values)

#Split into train and test
X_train, y_train = train[:, :-1], train[:, -1]
X_test, y_test = test[:, :-1], test[:, -1]

执行上述代码将时间序列数据集拆分为训练- 70%和测试30%。我想控制列车测试分裂为80-20或90-10。有人能帮我理解一下* :-1在这种情况下做了什么吗?

它是从https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/借来的。

注意:我不能为训练和测试随机分割数据集,最近的值必须用于测试。我已经包括了我的数据集的截图。

如果有人能解释代码,请帮助我理解上面的内容。谢谢。

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-09-28 18:08:50

语法arr[:,:-1]选择除最后一行之外的所有行和每一列。Python可以使用负索引,但是它是包容性的--比如[a,b):包含a,不包括b

如果您不使用:运算符(如arr[:,-1] ),那么它只需选择整个最后一列。

因此,在示例的上下文中,最后一列是根据前面的专栏培训数据要回归/分类/等的值。

代码语言:javascript
运行
复制
>>> import numpy as np
>>> arr = np.random.randn(5,5)
>>> print(arr)
[[-0.86690967 -0.63959234  0.99754053 -0.24828822  0.5346927 ]
 [ 0.6174709   2.16558841 -1.28983554  1.15387215  0.64630439]
 [ 0.35104248 -0.54240157  0.80377977 -0.9447689  -0.08145433]
 [ 0.61195442  0.09407687  0.39065215 -0.8887228  -1.63845254]
 [-1.58212796 -0.46017275 -0.2065184   0.44879872 -0.95037541]]
>>> print(arr[:,:-1])
[[-0.86690967 -0.63959234  0.99754053 -0.24828822]
 [ 0.6174709   2.16558841 -1.28983554  1.15387215]
 [ 0.35104248 -0.54240157  0.80377977 -0.9447689 ]
 [ 0.61195442  0.09407687  0.39065215 -0.8887228 ]
 [-1.58212796 -0.46017275 -0.2065184   0.44879872]]
>>> print(arr[:,-1])
[ 0.5346927   0.64630439 -0.08145433 -1.63845254 -0.95037541]

注意,最后的打印实际上是arr的最后一列,但是因为它是一个一维数组,所以它显示为行向量而不是列向量。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/82340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档