当前位置:  开发笔记 > 编程语言 > 正文

用PyBrain神经网络预测时间序列数据

如何解决《用PyBrain神经网络预测时间序列数据》经验,为你挑选了1个好方法。

我想这里发生的事情是你试图根据一些经验法则分配超参数值,这对于第一种情况是有效的,但对于第二种情况却没有.

1)您正在查看的误差估计是训练集的乐观预测误差估计.在实际的预测误差为高,但因为你没有测试您的看不见的数据模型有没有知道它的方式.统计学习的要素很好地描述了这种现象.我强烈推荐这本书.您可以免费在线获取.

2)要获得预测误差较小的估算器,您需要执行超参数调整.例如,隐藏节点的数量,学习速率和动量应该在不可见的数据上进行变化和测试,以便知道哪个组合导致最低的预测误差.scikit-learn已经GridSearchCV并且RandomizedSearchCV做到了这一点,但它们只适用于sklearn的估算器.您可以滚动自己的估算器,这在文档中有描述.就个人而言,我认为模型选择和模型评估是两个不同的任务.对于第一个,您可以运行单个GridSearchCV或RandomizedSearchCV,并为您的任务获取一组最佳超参数.对于模型评估,如果需要更准确的估计,则需要运行更复杂的分析,例如嵌套交叉验证或甚至重复嵌套交叉验证.

3)我对LSTM网络知之甚少,但我看到在第一个例子中你分配了25个隐藏节点,但是对于LSTM你只提供了5个.也许这还不足以学习模式.您也可以像示例中所做的那样降低输出偏差.

PS我认为这个问题实际上属于http://stats.stackexchange.com,在那里你可能会得到更详细的问题答案.

编辑:我刚刚注意到你正在教授1000万个时代的模型!我认为这很多,可能是过度拟合问题的一部分.我认为实现早期停止是一个好主意,即如果实现某些预定义错误则停止训练.



1> abudis..:

我想这里发生的事情是你试图根据一些经验法则分配超参数值,这对于第一种情况是有效的,但对于第二种情况却没有.

1)您正在查看的误差估计是训练集的乐观预测误差估计.在实际的预测误差为高,但因为你没有测试您的看不见的数据模型有没有知道它的方式.统计学习的要素很好地描述了这种现象.我强烈推荐这本书.您可以免费在线获取.

2)要获得预测误差较小的估算器,您需要执行超参数调整.例如,隐藏节点的数量,学习速率和动量应该在不可见的数据上进行变化和测试,以便知道哪个组合导致最低的预测误差.scikit-learn已经GridSearchCV并且RandomizedSearchCV做到了这一点,但它们只适用于sklearn的估算器.您可以滚动自己的估算器,这在文档中有描述.就个人而言,我认为模型选择和模型评估是两个不同的任务.对于第一个,您可以运行单个GridSearchCV或RandomizedSearchCV,并为您的任务获取一组最佳超参数.对于模型评估,如果需要更准确的估计,则需要运行更复杂的分析,例如嵌套交叉验证或甚至重复嵌套交叉验证.

3)我对LSTM网络知之甚少,但我看到在第一个例子中你分配了25个隐藏节点,但是对于LSTM你只提供了5个.也许这还不足以学习模式.您也可以像示例中所做的那样降低输出偏差.

PS我认为这个问题实际上属于http://stats.stackexchange.com,在那里你可能会得到更详细的问题答案.

编辑:我刚刚注意到你正在教授1000万个时代的模型!我认为这很多,可能是过度拟合问题的一部分.我认为实现早期停止是一个好主意,即如果实现某些预定义错误则停止训练.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有