对于lstm模型的参数这两天进行了研究,将经验总结到博客中。

数据集的格式:(数据条数,timestep,特征数)

这里timestep我选择了8,这个8代表我每8个单词具有关联性,在我这里单词就是传感器的1

batchsize参数并不会影响时序,当值为1的时候属于online learning,值更大的时候就是批训练。batchsize不可过大,参数要和epochs一起调整,结合图像防止过拟合。

verbose:1为显示进度条,2为只显示数据信息。

其他的参数可以参考https://blog.csdn.net/jiangpeng59/article/details/77646186/

或者keras的中文文档https://keras.io/zh/layers/recurrent/

数据集介绍:

搭了一个基于esp32的开发板。它读取以2x4阵列排列的8个触摸传感器。esp32在任何传感器上检测到初始触摸,然后通过wifi连接将每个触摸传感器的下一个100点(约一秒钟)的(标准化)值发送到benchdb数据库。
由于设置,每个事件记录了8 * 100个值。这个想法是训练3个任意手势并使用ML对新事件进行分类。触摸阵列旨在用作常规用户界面。对于初始测试,已使用以下手势并给出了“类”的名称。

向右滑动=“ r”
向左滑动=“ b”
双击=“ k”

  

输入的格式使用(None,100,8)因为我们要保留时序信息,所以不把输入进行展开,且要指定shuffle=False。

模型的评估指标为

1.rmse 

  能够表示出预测值和真实值之间的偏差,越小越好,偏差较大的点将会极大的影响rmse评价。

2.r squared 误差

  1-(分子是训练模型的误差,分母是随机猜测的误差)。接近1的时候说明训练模型基本没有误差,接近0的时候说明基本就是tm在瞎猜。所以越大越好。