资料库: GRNN 神经网络类

 

GRNN 神经网络类:

本类实现了通用回归网络(General Regression Neural Network - GRNN)

作者: Yury Kulikov

 
Automated-Trading:

GRNN 神经网络类

作者: Yury Kulikov尤里-库利科夫

HiYury Kulikov,在你的文件 test_grnn_mul_add.mq5 中, 测试了 从 1 到 9 的整数奇数 数据 ,测试后,你使用了从 1 到 10 的兰特数进行检查,结果一切正常,但如果我使用的数字不在 1 到 10 之间,就不起作用了。

所以我遇到了一个大问题,如何在测试之前定义测试范围?

 
有人试过解决这个问题吗?有没有可能在没有输出训练数据数组的情况下进行训练?如何训练?
 
有没有 这方面的 C / C ++ 代码
 
jommerbot:
有人试过解决这个问题吗?有没有可能在没有输出训练数据数组的情况下进行训练?如何训练?
我想知道你会把什么作为训练样本?
 

代码中有这样一行 #122 :d=sigma[i]==0.0?0.0:(m_inp[i]-inputvector[i])/sigma[i];

那么,0.0?0.0: 是什么意思?

问题的关键在于,我正在用另一种语言重写代码,而在其中一次迭代中,m_inp[i]-inputvector[i] = 0sigma[i] = 0。由此可见,除以 0 是很难看的。我想问题在于我不明白==0.0?0.0 是 什么意思:

 
daliel:

代码中有这样一行 #122 :d=sigma[i]==0.0?0.0:(m_inp[i]-inputvector[i])/sigma[i];

那么,0.0?0.0: 是什么意思?

问题的关键在于,我正在用另一种语言重写代码,而在其中一次迭代中,m_inp[i]-inputvector[i] = 0sigma[i] = 0。由此可见,除以 0 是很难看的。我想问题在于我不明白==0.0?0.0 是 什么意思:

这是一个缩短的if - else 符号

if(sigma[i] == 0.0) {
    d = 0;
}
else {
    d = (m_inp[i] - inputvector[i]) / sigma[i];
}

没有零除法

 
Event:

这是一个简略的if - else 条目

没有零除法。

也就是说,如果(m_inp[i]-inputvector[i])/sigma[i]; 的结果为 0,那么 sigma[i] 不会改变,只有 d 会改变?
 
daliel:
也就是说,如果(m_inp[i]-inputvector[i])/sigma[i]; 的结果为 0,那么 sigma[i] 不会改变,只有 d 会改变?
条件运算符?
 
daliel:
也就是说,如果结果(m_inp[i]-inputvector[i])/sigma[i]; 为 0,那么 sigma[i] 不会改变,只有 d 会改变?

sigma[i] 不会改变,它只是与零进行了比较。

d 会根据比较结果发生变化