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

 
Mihail Marchukajtes:

一个错误不仅仅是一个错误。一个小错误可以产生很大的影响。

而NS并没有被要求采集重复的数据。它被要求识别隐藏的模式,以便在没有重复性数据的情况下获得正确的结果。了解归纳。当我们有一个有限的数据域,但只拥有该数据的50%。网络学习和识别一个模式可以建立它没有见过的其余数据。这就像重建有缺失像素的旧视频片段,网络会自行重建。

所以这是一种统计学方法!例如,我有20张不同三角形的照片。在第21张中,三角形缺少斜边。根据收集到的统计数据,我可以很容易地确定这是一个未绘制的三角形--(每张照片中都有一个三角形)。也就是说,画三角形 的错误并不关键,因为我已经有了整体的统计数据。这个原则对NS不是很有效吗?
 
标签 Konow:
好吧,这是一种统计学方法! 例如,我有20张不同三角形的图片。在第21张中,三角形缺少斜边。根据收集到的统计数据,我可以很容易地确定这是一个未绘制的三角形--每张照片中都有一个三角形。也就是说,三角形画法 中的一个错误对我来说并不关键,因为我已经有了一般的统计数据。这个原则对NS不是很有效吗?
好吧,大致上,如果你不考虑在21张照片中你只画了一个角,三角形在那里是不可能的......
 
Mihail Marchukajtes:
好吧,大致如此,除非你认为在21张图片中,你只画了一个角,那里没有谈论三角形......
这就是基于统计学的预测的运作方式。我预测,这是一个未画出的三角形,在下一张照片中会变成空心的。
 
我会告诉你这个。一切都伴随着经验,在国防部有两种类型的经验,理论和实践,而且它们非常不同,相信我。一个人实践得越多,就越能开始理解这个领域的哲学。就是这样,在自我封闭中去吃土豆,看起来像是一种追求 :-) (
 

为了理解神经网络的本质和理论基础,对科尔莫戈罗夫、阿诺德和赫克特-尼尔森理论 的了解是必不可少的。

对于实践来说,这些知识并不是特别必要,但对其有一个大致的了解也无妨。

 
elibrarius

我给了你一个链接来查看JOT数据的分叉。这就是完整的模型被上传到一个文件里。然后再从中读出拆分。

当然,已经不对称的树木可以被卸下?


elibrarius

在提升中,根据定义,所有的树都很重要。每一棵连续的树都会完善之前所有的树。如果你在中间扔掉一棵树,那么后面所有的树都会用错误的数据工作--它们必须被重新训练,而不考虑被扔掉的树。在这种情况下,第一棵树将非常紧密地复制被丢弃的那棵树。

不,这并不完全正确。当模型准备好时,有一堆树叶坐在里面,给出的概率接近0.5--这在本质上是垃圾。


elibrarius

是的,分选中的单个叶片是不完整的,因为它们被其他精炼树的叶片的反应所增强。而只有如100棵树的累积答案才能给出正确答案。

试图从单张升压模型中获得可靠的东西是不可能的。
在提升中,来自100棵树的所有100个反应都被加起来,每个人都给出了例如0.01的总和=1。1片叶子的价值=0.01 - 你想从中得到什么?这里面什么都没有。只有100片叶子的总和才能给出正确答案。
事实上,第一棵树很强,例如给出了0.7,其余的树使总和更接近于1。如果只单独考虑第一棵树的叶子,但我认为它们比随机森林的任何树都要弱,因为深度较小。
随机森林有一个平均值,例如100棵树的每一片叶子都=1,平均值也=1。在它里面,狐狸是完整的,但有随机的偏差。但100个答案的人群,给出的平均数是一个合理准确的答案。

从一棵树上获得有用的信息是可能的,但这是很罕见的。

即使是第一棵树也不会是最好的。

提升速度很快,但你必须仔细选择模型,而这需要大量的样本,这是一个问题。

 
阿列克谢-尼古拉耶夫

为了理解神经网络的本质和理论基础,对科尔莫戈罗夫、阿诺德和赫克特-尼尔森理论 的了解是必不可少的。

对于实践来说,这些知识并不是特别必要,但对其有一个大致的了解也无妨。

卫星

缺乏与这些神经网络模型相关的严格理论并不妨碍研究它们应用于实际问题的可能性。

 
阿列克谢-维亚兹米 金。

当然,已经不对称的树木可以被卸下?

尝试了一个例子,加入grow_policy='Lossguide'。
这里有一块包含分裂的模型。

'split': {'border': 16.049999237060547, 'float_feature_index': 1, 'split_index': 0, 'split_type': 'FloatFeature'}}, 'right': {'left': {'value': 0.05454545454545454, 'weight': 153}, 'right': {'value': 0.8265895953757225, 'weight': 161}, 'split': {'border': 5.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 4, 'split_type': 'OnlineCtr'}}, 
'split': {'cat_feature_index': 1, 'split_index': 1, 'split_type': 'OneHotFeature', 'value': -845129958}}, {'left': {'left': {'value': -0.43103007753084105, 'weight': 444}, 'right': {'value': -0.10906568919445614, 'weight': 133}, 'split': {'border': 6.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 2, 'split_type': 'OnlineCtr'}}, 'right': {'left': {'value': 0.02835585997337218, 'weight': 163}, 'right': {'value': 0.5713236394502054, 'weight': 151},
'split': {'border': 5.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 3, 'split_type': 'OnlineCtr'}}, 
'split': {'cat_feature_index': 1, 'split_index': 1, 'split_type': 'OneHotFeature', 'value': -845129958}

Depthwise也有分歧。但那是在Python上,我还没有看到在R上卸载模型的方法。但我认为有可能在R中以内部格式保存模型,在Python中打开它,并将其卸载为JSON。而从中你需要使用的是

 
同事们。这个话题很有趣,但我不明白机器学习和测试器中的简单参数优化之间的区别?毕竟,目标将大致相同--在进入(退出)参数吻合时做出进入(退出)市场的决定。当市场发生强烈变化时,这两种方法都停止工作。他们需要被重新培训和优化。简而言之,没有哲学。
 
Yan Barmin:
同事。这个话题很有意思,但我不明白机器学习和测试员的简单参数优化之间的区别?因为目的会大致相同--在进入(退出)市场的参数吻合时做出进入(退出)市场的决定。当市场发生强烈变化时,这两种方法都停止工作。他们需要被重新培训和优化。简而言之,没有哲学。

区别在于工具的灵活性。该神经网络可以适应任何系列。请看下面的多项式。系数的宽度以及它们的数量可以绝对不同。

double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7, double v8, double v9, double v10) {
   double x0 = 2.0 * (v0 + 2.6721302849319) / 5.70376880500565 - 1.0;
   double x1 = 2.0 * (v1 + 0.862195874260524) / 4.318953971518134 - 1.0;
   double x2 = 2.0 * (v2 + 0.636958350251177) / 2.893126110958697 - 1.0;
   double x3 = 2.0 * (v3 + 1.28131145039971) / 4.47439455086403 - 1.0;
   double x4 = 2.0 * (v4 + 1.40655622673661) / 3.84454848827483 - 1.0;
   double x5 = 2.0 * (v5 + 1.05792133319783) / 4.0361119526354905 - 1.0;
   double x6 = 2.0 * (v6 + 0.960632890559664) / 2.810809591513934 - 1.0;
   double x7 = 2.0 * (v7 + 2.50474545671368) / 4.50657217846072 - 1.0;
   double x8 = 2.0 * (v8 + 3.37124943164126) / 5.00153555828254 - 1.0;
   double x9 = 2.0 * (v9 + 1.01434366581359) / 3.81959911946484 - 1.0;
   double x10 = 2.0 * (v10 + 0.997401251919643) / 2.959840023725593 - 1.0;
   double decision = 0.0455519244734931 * sigmoid(x0 + x5 + x8)
  + 0.01733841684822077 * sigmoid(x5 + x7 + x8)
  + 0.21269063180827888 * sigmoid(x0 + x5 + x7 + x8)
  + 0.02875816993464052 * sigmoid(x0 + x8 + x9)
  -0.025853304284676835 * sigmoid(x0 + x4 + x8 + x9)
  + 0.021169208424110384 * sigmoid(x0 + x7 + x10)
  + 0.07184095860566449 * sigmoid(x0 + x8 + x10)
  + 0.03769063180827887 * sigmoid(1.0 + x0 + x3 + x5 + x8)
  -0.03179012345679012 * sigmoid(1.0 + x3 + x6 + x9)
  + 0.02750544662309368 * sigmoid(1.0 + x0 + x5 + x7 + x9)
  + 0.1463507625272331 * sigmoid(1.0 + x1 + x2 + x8 + x9)
  + 0.012799564270152506 * sigmoid(1.0 + x0 + x2 + x10)
  + 0.1864560639070443 * sigmoid(1.0 + x0 + x1 + x5 + x8 + x10)
  + 0.07494553376906318 * sigmoid(1.0 + x0 + x2 + x5 + x8 + x10)
  + 0.014669571532316631 * sigmoid(1.0 + x2 + x5 + x6 + x8 + x10)
  + 0.05266884531590414 * sigmoid(1.0 + x0 + x1 + x7 + x8 + x10)
  + 0.04566085693536674 * sigmoid(1.0 + x0 + x1 + x2 + x8 + x9 + x10)
  + 0.061546840958605666 * sigmoid(1.0 + x0 + x2 + x4 + x8 + x9 + x10);
   return decision;
}

现在想象一下变体的数量,没有任何一个多参数专家顾问 可以夸口说有这样的灵活性。据说它们还能进行归纳,但这并不确定:-)