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

 
Maxim Dmitrievsky #:

AB 究竟是导致 C 出现,还是导致 一组其他字母出现

这就是问题所在,从表面上看是有关联的......
如何理解只是关联还是 AB 实际导致了 C 的出现?

 
Maxim Dmitrievsky #:

毕竟,你没有被谷歌禁言,对吧? 你能读懂统计推断与因果推断的区别,对吧?

马克西姆-德米特里耶夫斯基#:
让我们直奔主题:联想推断与因果推断有何不同?

作者不厌其烦地说明了线性回归的适用范围。减分。

元学生不是模型的集合,减去一点。

你还不同意书中的哪一部分,或者说,你对书中还有哪些地方不理解?

当然,你是最伟大的大师,可以给别人加分,但我不能,我再次写出具体的内容,希望你也能做出具体的回应。


你还不同意书中的哪一部分,或者说你对书中还有哪些地方不理解?

我从未在任何地方写过我不同意。

我反对给众所周知的概念贴上新标签。

这一切都存在,给 已知事物贴上迷雾 是非常无益的。

作者不厌其烦地说明了线性回归的适用范围。减一分。

文中没有提到

1. 线性回归适用于静态随机过程

2. 线性回归拟合的残差必须是正态分布。

如果在他的例子中不是这种情况,也没有说明反面,那么他的所有推理都是微不足道的。

书中所有关于因果关系的推理都是常见的 "假相关 "推理


元学习者》并不是一个减去分数的模型组合。

根据书中的文字,"元学生 "是拟合/预测传统模型的结果/成果。如果作者没有再次给最普通的概念贴上新的标签,我就有机会更准确地表达我的想法。

因此,我要澄清一下。

模型集合是一个古老而成熟的概念。输入是低级模型的输出,输出是信号。有很多方法可以组合低级模型的结果--组合 "元学习器"。作者认为有三种组合拟合结果的变体,第二种和第三种变体组合了梯度脉冲模型的结果。在第三种变体中,第一层的输出结果按照

这就是这段难以理解的文字的意义所在,也是这一切的新颖之处:

def ps_predict(df, t): 
    return g.predict_proba(df[X])[:, t]
    
    
x_cate_train = (ps_predict(train,1)*mx0.predict(train[X]) +
                ps_predict(train,0)*mx1.predict(train[X]))

x_cate_test = test.assign(cate=(ps_predict(test,1)*mx0.predict(test[X]) +
                                ps_predict(test,0)*mx1.predict(test[X])))
 
mytarmailS #:

这就是问题所在,从表面上看这是一种关联......
你怎么知道这只是一种关联,还是实际上是 AB 导致了 C?

目前还不清楚这些线条是一目了然的,还是一个字母一个字母出现的。是什么导致了这些字母的出现。如果只是一连串的模式,这项任务看起来就不是很正规。为什么要选择字符串长度等等。也许数据根本没有以正确的形式表示出来。

读读这本书,也许你会找到答案。

 

Sanych,"kozul "是一个复杂的话题,不是每个人都能一目了然的。如果你不理解,并不意味着那里写错了什么。

如果你不想受苦,就不要受苦。否则,结果就会像关于珠子的寓言一样。

 
Maxim Dmitrievsky #:

Sanych,"kozul "是一个复杂的话题,不是每个人都能一目了然的。如果你不理解,并不意味着那里写错了什么。

如果你不想受苦,就不要受苦。

科祖尔--这是广告之举,整本书无非是在为数理统计最平常的规定的新颖性做不寻常的广告。但数理统计确实是一门很难的学科。

这里是几百页文字的结果:

To the code at last! First, we have the first stage, which is exactly the same as the T-Learner.

from sklearn.linear_model import LogisticRegression

np.random.seed(123)

# first stage models
m0 = LGBMRegressor(max_depth=2, min_child_samples=30)
m1 = LGBMRegressor(max_depth=2, min_child_samples=30)

# propensity score model
g = LogisticRegression(solver="lbfgs", penalty='none') 

m0.fit(train.query(f"{T}==0")[X], train.query(f"{T}==0")[y])
m1.fit(train.query(f"{T}==1")[X], train.query(f"{T}==1")[y])
                       
g.fit(train[X], train[T]);
Now, we impute the treatment effect and fit the second stage models on them.

d_train = np.where(train[T]==0,
                   m1.predict(train[X]) - train[y],
                   train[y] - m0.predict(train[X]))

# second stage
mx0 = LGBMRegressor(max_depth=2, min_child_samples=30)
mx1 = LGBMRegressor(max_depth=2, min_child_samples=30)

mx0.fit(train.query(f"{T}==0")[X], d_train[train[T]==0])
mx1.fit(train.query(f"{T}==1")[X], d_train[train[T]==1]);
Finally, we make corrected predictions using the propensity score model.

def ps_predict(df, t): 
    return g.predict_proba(df[X])[:, t]
    
    
x_cate_train = (ps_predict(train,1)*mx0.predict(train[X]) +
                ps_predict(train,0)*mx1.predict(train[X]))

x_cate_test = test.assign(cate=(ps_predict(test,1)*mx0.predict(test[X]) +
                                ps_predict(test,0)*mx1.predict(test[X])))

就我对编程的理解而言,所给出的代码并不是工作代码:函数不知道它们从哪里来,结果不分配给任何东西,函数参数从零开始。

 
"......免得他们用脚践踏,转过身来把你 推倒"
 

马克西姆根本无法进行实质性讨论。

论坛上有人看得懂我给出的书中的代码拷贝吗?

我自己也采用过不同的方法来综合多个模型的结果,我知道但却没有采用过更多的方法,但我没有见过类似的东西,也许是因为代码难以理解的缘故。

 
😀😀😀

惊喜之后的否认阶段开始结束了吗?这需要很长时间。接受阶段什么时候开始?
 

这本书的附录中有一个精彩的章节,讲述了所有这些 "cajuela "的无用之处:

"

为什么预测指标对因果模型是危险的?

以及该节的结论:

换句话说 随机数据集上的预测性能并不能转换我们对因果推理模型好坏的偏好


Yandex 翻译

为什么预测性能对于因果模型是危险的?

换句话说 随机数据集上的预测性能并不代表我们对因果推理模型好坏的偏好


也就是说,对作者来说,最重要的是因果推理本身,而试图使用因果推理会破坏整个结构的美感。

作弊

 
这只是说,通过过度训练的模型,再加上大量的混杂因素,因果推断就变得复杂了。这一点我已经写过好几次了。即使是优化学家也会为这种简单的事情争论不休 好吧,前提是你读了这篇文章,并且没有断章取义。

不过,和口水横飞的人讨论任何事情都不滑稽。你就是这么狭隘。你连老师是谁都不知道,还把合奏和押韵混为一谈。

你甚至不区分 matstat 和 kozul,对你来说一切都是一样的(因为无知)。

就时间而言,你对数学方法感兴趣有多久了?纯粹是兴趣使然。你能自己写一个分类器,或者从 Pytorch 这样的构造器中构建一个任意架构的 NS 吗?或者至少是你自己的测试器?这是一个被黑暗笼罩的谜。

也就是说,你能反对这本书的作者什么?例如,为什么要听你的而不是他的?)