文章 "神经网络变得轻松(第十六部分):聚类运用实践"

 

新文章 神经网络变得轻松(第十六部分):聚类运用实践已发布:

在上一篇文章中,我们为数据聚类创建了一个类。 在本文中,我想分享在解决实际交易任务时应用所获结果会遇到的可能变体。

为了评估该智能系统的性能,我们取用我们在前一篇文章中训练过,并在前一次测试中用到的 500 个聚类模型对其进行了测试。 训练图形如下所示。

学习过程损失函数值图

如您所见,训练图非常平滑。 为了训练模型,我采用了 Adam 参数优化方法。 前 20 个世代展示出损失函数逐渐减少,而这伴随着动量累积。 然后,损失函数值显著地急剧下降到某一最小值。 先前获得的监督模型的训练图的损失函数具有明显的转折。 例如,下面是更复杂的关注度 模型的训练图。 

作者:Dmitriy Gizlyk

 


2022.05.30 21:57:27.477 kmeans (WDO$,H1) 800 Model error inf

2022.05.30 22:00:23.937 kmeans (WDO$,H1) 850 Model error inf

2022.05.30 22:04:22.069 kmeans (WDO$,H1) 900 模型错误 inf

2022.05.30 22:08:04.179 kmeans (WDO$,H1) 950 模型错误 inf

2022.05.30 22:10:56.190 kmeans (WDO$,H1) 1000 模型错误 inf

2022.05.30 22:10:56.211 kmeans (WDO$,H1) 调用 ExpertRemove() 函数

如何解决此错误?


 
Rodrigo Pagani #:
2022.05.30 21:57:27.477 kmeans (WDO$,H1) 800 Model error inf

如何解决此错误?


这不是程序执行错误。这一行显示的是模型误差(到聚类中心的平均距离)。但我们看到的 inf 值超出了计算精度。尝试缩放原始值。例如,除以 10,000

 
Dmitry Gizlyk # :

Este não é um erro de execução do programa.该行显示了模型错误(与群集中心的距离)。我们还看到了数值的精确性问题。我们需要对原始值进行标注。例如,除以 10.000

我还是找不到解决方案。

 
Rodrigo Pagani #:

我还是找不到解决办法。

data[shift] = NormaliseDouble((open - Rates[bar].low)/100,2);
data[shift + 1] = NormaliseDouble((Rates[bar].high-open)/100,2);
data[shift + 2] = NormaliseDouble((Rates[bar].close - open)/100,2);
data[shift + 3] = NormaliseDouble(RSI.GetData(MAIN_LINE,bar)/100,2);
data[shift + 4] = NormaliseDouble(CCI.GetData(MAIN_LINE, bar)/100,2);
data[shift + 5] = NormaliseDouble(ATR.GetData(MAIN_LINE, bar)/100,2);
data[shift + 6] = NormalizeDouble(MACD.GetData(MAIN_LINE, bar)/100,2);
data[shift + 7] = NormalizeDouble(MACD.GetData(SIGNAL_LINE, bar)/100,2);