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

 
Maxim Dmitrievsky:

选择所有文件并下载,它们将被压缩。

不同的样品长度,那么如果一个部分

谢谢,这是正确的--你可以作为档案下载,这很好!

但不同的抽样长度是不好的,我想的是选择最随机的列,其中小的偏差是可以接受的。

我认为没有必要将这种方法应用于样本--否则我怎么能在现实生活中使用它。

我正在运行它进行训练,让我们看看会发生什么。

 
Aleksey Vyazmikin:

谢谢,这是正确的--你可以下载一个档案,这很好!

但不同的样本长度是不好的,我以为要突出最随机的一列,其中的小偏差是可以接受的。

我认为没有必要将这种方法应用于样本--否则我怎么能在现实生活中使用它。

我正在运行它进行训练,让我们看看会发生什么。

我考试时不需要它,但它可能会派上用场。

 
elibrarius:

懒得转换)
让我解释一下。

1)我们对列
2)计算一个量子的平均元素数,例如10000个元素/255个量子=39,21
3)在循环中,我们每一步都按39,21个元素移动,并将排序后的数组中的值加入到量子的值数组中。即阵列值0=值0量子,第39值=1量子,第78值=2量子,等等。

如果该值已经在数组中,即如果我们进入一个有许多重复的区域,我们就跳过重复的值,不添加它。

在每一步,我们恰好加上39.21,然后四舍五入,在数组中选择一个元素,使其相等。例如,用196代替195(39*5=195)(39,21*5=(int)196,05)。

均匀分布 就很清楚了--我会创建一个唯一值的数组,用它来切割。

但也有其他分割网格的方法。

    THolder<IBinarizer> MakeBinarizer(const EBorderSelectionType type) {
        switch (type) {
            case EBorderSelectionType::UniformAndQuantiles:
                return MakeHolder<TMedianPlusUniformBinarizer>();
            case EBorderSelectionType::GreedyLogSum:
                return MakeHolder<TGreedyBinarizer<EPenaltyType::MaxSumLog>>();
            case EBorderSelectionType::GreedyMinEntropy:
                return MakeHolder<TGreedyBinarizer<EPenaltyType::MinEntropy>>();
            case EBorderSelectionType::MaxLogSum:
                return MakeHolder<TExactBinarizer<EPenaltyType::MaxSumLog>>();
            case EBorderSelectionType::MinEntropy:
                return MakeHolder<TExactBinarizer<EPenaltyType::MinEntropy>>();
            case EBorderSelectionType::Median:
                return MakeHolder<TMedianBinarizer>();
            case EBorderSelectionType::Uniform:
                return MakeHolder<TUniformBinarizer>();
        }
 
Aleksey Vyazmikin:

用均匀分布我看--我首先会创建一个唯一值的数组,用它来切割。

但也有其他分割网格的方法。

必须有大量的样本,否则模型就不会学到任何东西。

 
Maxim Dmitrievsky:

必须有大量的样本,否则模型不会学到任何东西。

这些是CatBoost 的抽样量化方法--这些是列举/学习的边界,然后再继续进行。

我的实验表明,应该为每个预测器分别选择网格,然后观察到质量的提高,但它无法做到CatBoost,我也无法建立网格,我必须建立网格并将其上传到csv,然后迭代它们,以估计其中的目标行为。我认为这是一个非常有前途的工具,但我需要把代码翻译成MQL。

 
Aleksey Vyazmikin:

这些是CatBoost的采样量化方法--这些是列举/学习然后进行的边界。

我的实验表明,应该为每个预测器分别选择网格,然后观察质量增益,但CatBoost不能做到这一点,我不能建立网格,我必须建立网格并上传到csv,然后迭代它们来评估其中的目标行为。我认为这是一个非常有前途的功能,但我需要把代码翻译成MQL。

是在模型本身的设置中(参数)吗? 我不知道它是什么?

如果不在设置中,那就是胡说八道。

 
Maxim Dmitrievsky:

是否在模型本身的设置中(参数)? 我不知道它是什么。

如果不在设置中,那就是胡说八道。

它在设置中,至少对命令行来说是这样的

--特征-边界类型

数值特征量化模式

可能的值。
  • 中位数
  • 统一
  • 统一标准 指标
  • 最大日志总和
  • 最小熵
  • 贪婪的日志
Quantization - CatBoost. Documentation
  • catboost.ai
Mode How splits are chosen Combine the splits obtained in the following modes, after first halving the quantization size provided by the starting parameters for each of them: Maximize the value of the following expression inside each bucket: Minimize the value of the following expression inside each bucket: Maximize the greedy approximation of...
 
Aleksey Vyazmikin:

它在设置中,至少对命令行来说是这样的

--特征-边界类型

数值特征量化模式

可能的值。
  • 中位数
  • 统一
  • 统一标准 指标
  • 最大日志总和
  • 最小熵
  • 贪婪的日志

差异大吗? 应该在百分之一之内。

 
Aleksey Vyazmikin:

用均匀分布我看--我首先会创建一个唯一值的数组,用它来切割。

但也有其他方法来划分网格。

如果你有唯一的值,那将是一个混乱的局面。例如,你有100个字符串,其中10个是唯一的,其中2个有45个字符串,8个有1个。除以5个量子,有可能只选择5个由1,而最有代表性的2个(由45)将被跳过。
 
Maxim Dmitrievsky:

应该是在一个百分比之内。

选择正确的故障对结果有重大影响。

这里有一个关于召回的例子--高达50%的变化--对我来说,这很重要。

将界线从16增加到512,增量为16--虽然在直方图上不是按顺序排列--我的标题有点碍事了。


我还在试验网格的选择,但已经很明显,有不同的预测器,需要不同的网格,要观察逻辑,而不仅仅是调整。

原因: