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

 
桑桑尼茨-弗门科

我理解树木和森林的区别(或者我认为我理解),当数据中存在更多的不确定性时,森林更好用,即不太稳定的模式,因为森林是通过投票做出决定的,而随机(由于缩短而独立)的树木是通过投票做出决定的,或者我错了?

我不知道,我是根据结果来判断的。

而 "adad "选项我没有,它不在截图中,有 "森林"--这不是它吗?

按顺序排列。


树木

rpart "包提供了 "rpart "功能


晋升

# 极限提升

# `xgboost' 包实现了极端梯度提升算法。


证券公司

# 支持向量机。

# "kernlab "软件包提供了 "ksvm "功能。


线性

# 回归模型

# 建立一个回归模型。


神经网络

# 神经网络

# 使用nnet包建立一个神经网络模型。

library(nnet, quietly=TRUE)


顺便说一句,我为你做了这项工作--你可以自己在日志中看到这一切。如果你有另一个版本的拨浪鼓,清单可能有所不同。

谢谢你的笔录。我有5.1.0版本,可能是最新的--所有这些软件包在被调用时都会自动安装,此外还有 "森林"。

桑桑尼茨-弗门科

该库根据我的订单进行了修改--我需要一个来自MT5的测试器。我做了计算,懒得去查,可能已经清理了。

看一看弗拉基米尔-佩雷文科的 文章

如果你对网络感兴趣,他是这一领域最新的,R,顾问,这个人在网站上是可以找到的

谢谢,我会看看的。

 
桑桑尼茨-弗门科


那么,如何用R切割文件,是否需要使用一种特殊的算法?看看最后会发生什么,这很有意思。

以指数为例。[1:2000,], [2001:4000,].重要的是,不要破坏第二个文件中的自然时间顺序。

换句话说,你可以在Excel中切割它,对吗?

 
马克西姆-德米特里耶夫斯基

用你喜欢的方式试试吧 :) 最主要的是不要忘记阅读理论,以免做傻事,使用任何包都不难,有很多包,甚至在网上--你不需要安装任何东西。datasens的蓬勃发展,"它 "无处不在

我没有时间分析档案,我在做我自己的事情。

问题是,不同的变体给出了不同的结果,如果是这样,怎么能得出关于预测器质量的结论?只是事实证明,有必要采取平均版本,即如果到处都不坏,那么就好,然后调整网络/树木/森林?

而且,我还想知道如何将树的逻辑转移到专家顾问上......

 
阿列克谢-维亚兹米 金。

所以你也可以在Excel中切割,对吗?

没有必要使用Excel。一条线,就是这样。

阅读罗伯特-I-卡巴科夫《行动中的R》。R语言的数据分析和可视化。它可以在互联网上找到。

 
尤里-阿索连科

没有必要使用Excel。1行,仅此而已。

阅读 - 罗伯特-I-卡巴科夫R在行动。R语言的数据分析和可视化。它可以在互联网上找到。

你可能不知道一切--我没有学习R编程的目的,我需要检查预测器和将规则集转换为MT5的可能性。一般来说,如果是一个字符串,为什么不直接为你写呢?目前,我已经用现有的手段应对了。

 
桑桑尼茨-弗门科


你的拨浪鼓图片是不完整的。至少你应该去邻近的评估标签,看看那里的结果。

但最重要的是将源文件分成两部分,并使用不同的名称(很可能你必须在R中完成)。

第一个文件 中,你建立了所有六个模型,并查看了它们的估计测试,验证。 然后你把第二个文件的名称写到R数据集字段中。而在这上面你又得到了分数。所有的估计必须大致吻合!

如果这些估计值不一致,而且第二个文件显示模型的结果更差,那么这意味着模型被过度训练,其原因是噪声(与目标变量无关)预测器。


这是关键时刻:要么你有一组与特定目标变量相关的预测器,要么你没有。而且没有任何模型可以解决这个不幸的情况。然后,寻找一对 "目标预测器 "的愚蠢工作开始了,模型一点都不有趣,你会找到一对,然后模型只是R中的种子,你会在一天内找到十几个,并把它们组成合奏。

我将请你更详细地解释。

1.在 "评估 "选项卡中,在 "类型 "组中应选择什么参数?

2.为了能够输入第二个文件的名称,我应该怎么做?我的窗口是活动的,但我不能选择一个文件!而 "CSV文件"--为什么我可以选择那里?


 
Aleksey Vyazmikin:

问题是,不同的选项给出了不同的结果,如果是这样的话,我们怎么能对预测器的质量下结论?是否只是简单地采取平均变体,即如果不是到处都很糟糕,那么就没有问题,然后调整网络/树木/森林?

而且,我还想知道如何将树的逻辑转移到专家顾问上......。

为什么?mt5有一个随机森林,你可以根据你的需要来调整它。注意错误,并给它测试例子,观察结果。唯一的问题是,它没有输出变量

但如果你考虑到各地的算法都是一样的,你可以在R中进行可视化和实验,然后训练它并使用MT。

 
阿列克谢-维亚兹米 金。

总之,如果是一句话,为什么不直接写给你?好吧,在这期间,我已经用手头的手段处理了。

好吧,我没问,你问了。)我不需要它。)

如果你和R一起工作,你可能不得不这样做。

 
阿列克谢-维亚兹米 金。

我想请你更详细地解释一下。

1.在 "评估 "选项卡中,我应该在 "类型 "集中选择哪个参数?

2.我应该怎样做才能输入第二个文件的名称?我的窗口是活动的,但我不能选择一个文件!而 "CSV文件"--为什么我可以选择那里?


1.任何。这是一个不同的模式评价,每一个都有不同的意义。Rattle之所以好,正是因为它给初学者提供了系统的机器学习知识:输入数据的准备、建模、模型的估计。只有在至少掌握了所有这三个部分的原始水平后,才有可能从玩弄数字转向更有意义的事情。

2.R数据集是一个R文件。这意味着,在数据选项卡上,初始数据被加载为RData文件--就R而言,它是一个工作区。在这个工作空间中,准备了两个数据框架:一个用于训练和测试模型,另一个作为这个非常R数据集。

对你来说,最简单的方法是上传一个现成的Excel文件,下载日志,退出到R,并将得到的数据框分成两个。

或者说。

打开R本身,在那里下载excel文件--这是一行字。然后,它将数据框分成两部分。

但你必须使用训练好的模型的第二个文件。

 
马克西姆-德米特里耶夫斯基

为什么?MT5有一个随机森林,你可以根据你的需要调整它。

或者,考虑到各地的算法都是一样的,你可以在R中进行可视化和实验,然后在MT中进行训练和使用。

Deductor Studio "程序很好地显示了一切,即树形、规则;我在R中还没有看到,在MT5中也不会有(也就是说,一切都可以做到,但我必须为此付费......)。所以,事实证明,我应该使用algib库来将随机森林纳入MT5,不是吗?

我在R中找到了一段C4.5 算法的代码 http://datascientist.one/algorithm-c4-5/,在MT5中实现起来是不是非常困难?

C45 <- function(data,x){
   result.tree <- NULL
   if ( IsEmpty(data) ) {
                node.value <- "Failure"
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( IsEmpty(x) ){
                node.value <- GetMajorityClassValue(data,x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( 1 == GetCount(x) ){
                node.value <- GetClassValue(x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        } <br>

       gain.ratio <- GetGainRatio(data,x)<br>
     best.split <- GetBestSplit(data,x,gain.ratio)

     data.subsets <- SplitData(data,best.split)
     values <- GetAttributeValues(data.subsets,best.split)
     values.count <- GetCount(values)

     node.value <- best.split
    result.tree <- CreateNode(node.value)
         idx <- 0
    while( idx<=values.count ){
        i       dx <- idx+1
                newdata <- GetAt(data.subsets,idx)
                value <- GetAt(values,idx)
                new.x <- RemoveAttribute(x,best.split)
                new.child <- C45(newdata,new.x)
                AddChildNode(result.tree,new.child,value)
   }

    result.tree
        }
Алгоритм C4.5
Алгоритм C4.5
  • 2016.05.06
  • datascientist.one
Алгоритм C4.5 строит классификатор в форме дерева решений. Чтобы сделать это, ему нужно передать набор уже классифицированных данных. А что такое классификатор? Классификатор – это инструмент, применяемый в data mining, который использует классифицированные данные и на их основании пытается предсказать, к какому классу стоит отнести новые...