0.概述
2NDN神经网络建模仿真工具是一个可视化的神经网络建模应用开发平台,她基于可连接组件的模块化结构实现,可扩展性极强,可用于各种行业的运营管理和系统分析 ,尤其是生产效率改善的有效工具。在企业、学校和政府机构得到广泛应用,尤其适合高校建立系统仿真实验室。
> 以下通过一个案例--快速构建基于时间序列的股票预测模型为例,详细介绍2NDN的操作步骤。
1.案例说明
股票趋势预测代表经济预测中的一种特定类型,它具有其独有的特点。因为实际操作中我们不需要准确地知道下一天的收盘价,只需知道被观测市场的走向(升或降),从而用来决定我们的交易操作(长期/短期-买入/卖出)。我们所希望的是利用历史价格数据预测将来中短期(从2到10或15天)内的价格走势。因而我们的神经网络也不需要预测下一个交易日的准确收盘价,我们从预测的趋势上去发现我们的交易策略。
换句话说,我们需要预测的是市场的拐点。请看下图:
这是一只股票的日K曲线,我们要成功进行股市操作就要根据红色箭头来交易,在最低点买进,在最高点卖出。一个好的交易系统应当只是真正的拐点出现时给出提示,避免生成虚假信号,例如,象篮色箭头所指部分,市场只下降了几个百分点就马上又继续上升。
可见,我们所要设计的神经网络不需要预测市场的日准确收盘价,我们只对正确预测拐点感兴趣。
2.神经网络建模
打开2ndn神经网络设计工具,在主界面中通过拖拉方式添加下图所示的图元,这样神经网络模型就建好了,2ndn会自动的随机设置连接的权系数。 当然这个网络目前还没有进行训练,没有任何实际的功能。
用户也可以直接打开随应用程序附带的示例程序,C:Program Files2NDNSampleFinancePreFinancePre.ser(假如系统安装在C:Program Files2NDN),选择文件FinancePre.ser后,示例程序则在主界面中打开,如下图所示:
下面对设计器中的各图元说明如下:
① Yahoo输入 (Input Data)
用于神经网络从yahoo接收金融市场得来的金融数据,设置方法:鼠标选中该图元,右键弹出快捷菜单,点击<属性>,弹出下面的对话框:
其中“符号”是指特定股票的代号。如600728.SS是指新太科技股份有限600728的股票。这个代号必须是由Yahoo定义的代号。“时期”指从Yahoo获取股票市值的周期,‘Daily’获取每天收市记录的股票市值,‘Monthly’获取每月月初记录的股票市值,‘Yearly’获取每年年初记录的股票市值。
“选择列”可选:
第一列:Open
第二列:High
第三列:Low
第四列:Close
第五列:Volume
第六列:Adjusted close
对于特定的股票代码,你必须根据所需的列来设置"选择列"。如果你希望将open,high及volume列作为输入,则需将‘1-2,5’写到“选择列”。
其它设置参考2ndn帮助文档说明。
② 规范化 (DeltaNorm1)
在此对输入样本数据进行归一化处理,设置方法:鼠标选中该图元,右键弹出快捷菜单,点击<属性>,弹出下面的对话框:
说明:若输入最大/最小值设置为0,表示自动取相应节点的最大/最小值。
下图为经归一化处理后进行查验的结果:
③ Delay (Delay Input Layer)
这里,我们使用YahooFinance输入组件从Yahoo获取股票价格的时间序列,将其与一个延时层相连。设置方法:鼠标选中该图元,右键弹出快捷菜单,点击<属性>,弹出下面的对话框:
这个组件的属性面板中,除"行数"之外,还可以设置"taps值"参数,它是指我们用来提供给神经网络的时间窗口的大小。
如果设taps值为5,我们就得到一个尺寸为6的时间窗口,由下面的值组成:
[x(t), x(t-1), x(t-2), x(t-3), x(t-4), x(t-5)]
请记住时间窗口的尺寸等于taps+1,因为延时层还同时输出时间序列的当前值x(t)。
选中该图元,鼠标右键弹出快捷菜单,选"查验":
④ Sigmoid (Hidden Layer)
网络隐层, 设置方法:鼠标选中该图元,右键弹出快捷菜单,点击<属性>,弹出下面的对话框: