Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >LSTM模型输入数据的不理解

我正面临一个我无法解决的问题。实际上,我尝试用keras创建一个模型LSTM,但是我不明白输入数据格式应该是什么。我的数据培训和数据测试如下所示:

date/value/value/value/value/value_i_want_to_predict

我见过一些人这样做

代码语言:javascript
运行
AI代码解释
复制
from sklearn.preprocessing import MinMaxScaler
sc = MinMaxScaler(feature_range = (0, 1))
training_set_scaled = sc.fit_transform(training_set)X_train = []
y_train = []
for i in range(60, len(training_set_scaled)):
    X_train.append(training_set_scaled[i-60: i, 0])
    y_train.append(training_set_scaled[i, 0])
    X_train, y_train = np.array(X_train), np.array(y_train)

但是,如果我这样做,我如何预测我的特性而不修改测试数据集?

我很难理解我们为什么要这么做。此外,我希望在最后一栏中使用这些值来预测目标。使用这种方法,我觉得我必须改变数据测试的格式,而且重要的是,我可以在不同的测试数据上测试模型,并且不需要更改。

有人能帮我吗?

编辑

代码语言:javascript
运行
AI代码解释
复制
scaler.fit(df_train_x)

X_train = scaler.fit_transform(df_train_x)
X_test = scaler.transform(df_test_x)   

y_train = np.array(df_train_y)
y_train = np.insert(y_train, 0, 0)
y_train = np.delete(y_train, -1)

数据的形状是:(2420,7)

这就是我所做的。但形状仍然是二维的。所以我用:

代码语言:javascript
运行
AI代码解释
复制
generator = TimeseriesGenerator(X_train, y_train, length=n_input, batch_size=32)

第一层的输入形状是:

代码语言:javascript
运行
AI代码解释
复制
model.add(LSTM(150, activation='relu',  return_sequences=True,input_shape=(2419, 7)))

但当我把发电机安装到模型上时:

ValueError:检查目标时出错:期望dense_10具有三维,但得到形状为(1,1)的数组

我真的不明白

EN

回答 1

Stack Overflow用户

发布于 2020-11-25 01:09:27

我不能完全理解你的问题,但我会尽力的。我认为您提供的代码是特定问题的,这意味着它可能不适合您的开发。

对于LSTM (以及几乎所有的神经网络),在将数据输入到模型之前,您总是希望缩放数据。这有助于避免在您的特性中有完全不同的数据范围。MinMaxScaler将您的功能扩展到所提供的范围。要了解为什么需要缩放,可以看一看文章。

通常,您希望首先在培训和测试集中拆分数据集,例如使用sklearn的train_test_split函数,然后缩放您的功能。

代码语言:javascript
运行
AI代码解释
复制
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X = data.drop("feature_I_want_to_predict",axis=1)
y = data["feature_I_want_to_predict"]

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2)

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)   

这样,X_train表示培训数据,y_train代表培训数据的标签。(与测试数据类似)我在这里使用的是StandardScaler而不是MinMaxScaler。标准标量器减去特征的平均值,然后除以标准差。

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

https://stackoverflow.com/questions/65000544

复制
相关文章
RobotFramework接口测试方案
Robot Framework是用于验收测试和回归测试的通用测试自动化框架。它使用易于理解的表格数据语法,非常友好的实现了关键字驱动和数据驱动模式。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。
赵云龙龙
2020/02/13
3.5K0
RobotFramework接口测试方案
RobotFrameWork中使用自定义关键字
今天尝试在RF中使用一下自己写的关键字。 1、首先写一个py文件,如下,简单打印个message 2、在RF中点击library,把写的py文件加进来 3、使用函数mylog,有一个参数,也可以F5看
未来sky
2018/08/30
2.6K0
RobotFrameWork中使用自定义关键字
maven打包不执行测试用例
在执行maven打包时不需要执行测试用例,使用如下2种方式实现: -DskipTests=true : 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true: 不执行测试用例,也不编译测试用例类
编程随笔
2019/09/11
1.8K0
maven打包不执行测试用例
RobotFramework 接口测试的公共资源
写到这里可以明显感觉到Robot Framework来实现内容的困难了,上面内容在正常的IDE里面几分钟就可以完成。RIDE中这个难度上升了数倍。在学完基础概念之后其实后续的内容都是基于这种模式来进行拓展,这时候又变成了对开发者个人其他能力的考验。
zx钟
2020/05/20
5040
maven执行单元测试失败后继续
最近在进行sonarqube与maven集成时,如果pom文件配置了sonarqube相关配置,那么在pom文件所在目录执行
johnhuster的分享
2022/03/28
1.8K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
在开展自动化测试工作时,经常会由于一些外在原因(如网络中断、返回超时)导致自动化测试用例运行失败,而这些失败并不是用例本身验证或被测程序存在Bug而引起的,更可气的是这些失败场景有可能还是偶发的,为了保证测试用例运行的稳定性和验证有效性,我们需要一种针对失败用例重试的运行机制。
测试开发技术
2020/06/28
1.6K0
自动化测试用例失败继续执行
当出现异常时,你希望标记出来这个错误,但不影响后面的测试脚本执行,在Nightwatch中如何做?
Peter Shen
2020/06/12
8170
RobotFramework工具试用
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。使用Apache License 2.0,由Robot Framework Foundation开发和赞助。Robot Framework被广泛地使用在端到端的验收测试中,生态体系非常丰富,更详细的信息可以参看http://robotframework.org。
用户6859632
2020/01/05
2.7K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
在开展自动化测试工作时,经常会由于一些外在原因(如网络中断、返回超时)导致自动化测试用例运行失败,而这些失败并不是用例本身验证或被测程序存在Bug而引起的,更可气的是这些失败场景有可能还是偶发的,为了保证测试用例运行的稳定性和验证有效性,我们需要一种针对失败用例重试的运行机制。
测试开发技术
2020/06/23
1.3K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
js中的this关键字,setTimeout(),setInterval()的执行过程
var test1 = { name: 'windseek1', showname: function () { console.log(this.name); } } var test2 = { name:'windseek2', showname: test1.showname } test2.showname() 运算结果是windseek2,由于test2.showname=test1.showname所以test2.showname()=test1.showname(); test2.shown
windseek
2018/06/14
1.3K0
RobotFrameWork编写接口测试及如何断言
本篇是第一系列(Http接口自动化)的第五课程,如果对系列课程大纲不清楚的,可以查看《RobotFramework系列免费课程-开课了~》。
测试开发技术
2020/01/17
1.3K0
RobotFrameWork编写接口测试及如何断言
Kibana关闭停止失败解决办法
ElasticSearch服务异常停止了,这时Kibana提示无法连接到ElasticSearch
程裕强
2022/05/06
8240
Robot Framework测试框架用例脚本设计方法
Robot Framework是一个通用的关键字驱动自动化测试框架。测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储。通过测试库中实现的关键字驱动被测软件。Robot Framework灵活且易于扩展。它非常适合测试有不同接口的复杂软件:用户接口、命令行,Web服务,专有的编程接口等。
顾翔
2020/08/11
2.7K0
Robot Framework测试框架用例脚本设计方法
robotframewor安装及项目实战
一、robotframework介绍 诺基亚公司出品的robotframework robotframework官网 特点: 1.简单的来说robotframework是一个通用型的自动测试框架 2.RF适合几乎所有的软件自动化测试系统框架 3.提供了强大的标准库和第三方类库 4.方便上手和维护,集成容易 5.清晰的测试报告和日志系统 6.持续集成等 7.基本除了桌面应用的自动化做不了,其他的自动化都可以使用它来实现 8.详细的日志系统,定位失败问题精准 二、安装版本 安装记录 # gui交互界面 pip
懿曲折扇情
2022/08/24
5200
robotframewor安装及项目实战
自动化测试框架Robot Framework - 简介、安装部署、启动RIDE
Robot Framework是一款Python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。
wangmcn
2022/07/26
4.1K0
自动化测试框架Robot Framework - 简介、安装部署、启动RIDE
使用RobotFramework的JavaRemoteLibrary
终于被迫使用了Java的远程接口库(为了同时使用Java和python的用例库,且为了在pybot下跑速度能快一些),路途比实际想的要坎坷,记录下来。
叉叉敌
2022/03/11
4290
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
业余草
2019/01/21
1.4K0
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
怎么样导入RobotFramework 自定义关键字(库文件)
第一步:在D:/python/Lib/site-packages 建立库文件文件夹 MyLibrary
IT小马哥
2020/03/18
1.9K0
点击加载更多

相似问题

robotframework:[错误]用户停止执行

17

RobotFramework:在RobotFramework中定义RobotFramework关键字

15

如何停止整个测试执行,但在RobotFramework中有PASS状态?

20

Robotframework -获取失败关键字/失败堆栈跟踪

20

Robotframework:套件中不包含测试

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档