交易中的机器学习:理论、模型、实践和算法交易 - 页 2129

 
elibrarius:
你们是机器人吗?
日夜工作,没有睡眠或休息 ))))

时区...但仍令人印象深刻))))

 
elibrarius:

7位数就足够了。

这是一个平衡的直方图--新模型为蓝色,旧模型为红色。

所有设置都是一样的。

预测器的相关性



模型将时间用到了极致。很难说这是好是坏,但当一些预测者由于与类似物的相似性而获得优势时,就有点坏了。

召回

精度

最后有一个区别,当然不是很大,但仍然有区别。

平衡是不坏的。


 
Aleksey Vyazmikin:

这是一个平衡的直方图--新模型为蓝色,旧模型为红色。

所有设置都是一样的。

预测器的相关性



模型将时间用到了极致。很难说这是好是坏,但当某些预测者以牺牲与同行的相似性为代价获得优势时,就有点坏了。

召回

精度

最后有一个区别,当然不是很大,但仍然有区别。

这并不坏。


那么,正弦+余弦的时间是否比单纯的数字更好?
你是否在旧版本中喂养分钟?如果没有,就把它们送进去做一个适当的比较。正弦+余弦的版本将它们考虑在内。如果更快的话,要么从syn+cos中删除分钟。
 
elibrarius:
那么正弦+余弦的时间是不是比单纯的数字更好?
你是否在旧版本中喂养分钟?如果没有,就把它们送进去,以进行适当的比较。正弦+余弦的版本将它们考虑在内。或者从syn+cos中取出几分钟,如果它更快的话。

我提供的衡量标准--看起来更糟。理由是更有可能打出一组随机的预测因子来建立一个与时间相关的分裂预测树。

是的,我在旧版本中没有使用分钟。

 
Aleksey Vyazmikin:

我提供的衡量标准--看起来更糟。原因是打出随机的预测器集来 建立与时间相关的预测器的分裂树的概率很高


你有做过猫科动物吗?那里不应该有随机选择的预测因素。Boosts使用了所有的预测器,但浅层树。

在随机森林中,是的。它是由例如

max_features{"auto", "sqrt", "log2"}, int or float, default="auto"

寻找最好的分体式时要考虑的功能数量。


Aleksey Vyazmikin:

是的,我在旧版本中没有使用分钟。

也许他们恶化了结果?在新版本中尝试删除它们。

就是这样,应该是与你的旧版本完全类比

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


 
elibrarius:

你做了 "猫眼 "吗?那里不应该有随机选择的预测因素。Boosts使用了所有的预测器,但浅层树。

在随机森林中,是的。设置的,例如


也许他们恶化了结果?在新版本中尝试删除它们。

在那里,它应该是与你的旧版本完全相似的。

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


至于随机性--有足够的随机性。

你不感到惊讶吗,我分别用正弦和余弦的时候,而我现在明白了,必须有一个,但正弦和余弦是用的?

因此,问题是,什么是buf,以及为什么当它等于零时,我们要取余弦?

 
Aleksey Vyazmikin:

至于随机性--有很多的随机性。

你没有感到惊讶吗,我有单独的正弦和余弦的时间,按照我现在的理解,应该有一个,但正弦和余弦都用了?

因此,问题是,什么是buf,以及为什么当它等于零时,我们要取余弦?

buf是缓冲区的编号。
因为有2个。有的指标有1个缓冲区,有的超过2个。

在为训练集编列时,我在我的循环中循环了缓冲区的数量。

你必须同时输入正弦和余弦,而不是只有一个。解释见https://megaobuchalka.ru/9/5905.html

数值数据 似乎没有必要进行编码。但在某些情况下,对数字数据进行编码也是合理的[22]。在对数字数据进行编码时,必须考虑到数据的含义、数值在数值范围内的位置以及数据测量的准确性。这一点可以通过实例来说明。例如,编码可以考虑到数据的意义。如果对网络的输入是两个方向之间的角度,例如风向,将角度(以度或弧度为单位)输入网络是不合适的。这样的输入会使网络 "学会 "0度和360度是同一回事。将该角度的正弦和余弦 作为输入,更有意义。输入网络信号的数量增加,但接近的输入值由接近的输入信号来编码。

Виды трансформации данных — Мегаобучалка
Виды трансформации данных — Мегаобучалка
  • megaobuchalka
  • megaobuchalka.ru
Трансформация данных — это преобразование данных к определенному представлению, формату или виду, оптимальному с точки зрения конкретного метода анализа [6]. Для разных задач анализа могут потребоваться разные методы трансформации. Типичными средствами трансформации данных являются следующие. Преобразование временны́х данных . Оптимизация...
 
elibrarius:

buf 缓冲区编号。
对于时间来说,有2个。有的指标有1个缓冲区,有的超过2个。

在组成训练集的列时,我通过缓冲器的数量进行循环。

你必须同时输入正弦和余弦,而不是只有一个。解释原因--这里https://megaobuchalka.ru/9/5905.html

所以我原来做得很对--我只是不记得我在做什么了......

   double tmp[4];
   int nInd=0;
   MqlDateTime dts;
   double pi=3.1415926535897932384626433832795;
   for(int buf=0; buf<2; buf++)
   {
      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/1440.0;
      //tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/24.0;
      tmp[buf]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));

      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf+2]=(double)(dts.day_of_week*1440+dts.hour*60+dts.min)*360.0/10080.0;
      //tmp[buf+2]=(double)dts.day_of_week*360.0/7.0;
      tmp[buf+2]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));
   }
 
我们就不能用一个输入而不是4个输入来做吗?
只是从周一0:00开始的分钟数 =
dts.day_of_week*1440+dts.hour*60+dts.min
但这是个坏主意。为了达到例如每小时的前10分钟,你必须做大量的分割。
可能像你一样更好--只是几天,几个小时。也许还有几分钟。
 
elibrarius:
我们就不能用一个条目来代替4个条目吗?
只是从周一0:00=虽然的分钟数是个坏主意。为了达到例如每小时的前10分钟,你将不得不做大量的分割。
可能像你一样更好--只是几天,几个小时。也许还有几分钟。

已经开始训练了,没有几分钟 - 让我们看看。

我仍然使用1/4条时间--小时、4小时、天。