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

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

谷歌也不起作用?:)

https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb?hl=ru

译者的工作。要么翻译整个页面,要么复制-粘贴到翻译器中。

但一个词或一段话根本不起作用。

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

有很多设置,你需要很多瓶子来弄清楚...:) 也许样本很小,因为树状的主要是为大的设计的,你需要调整一下。


当然,你可以对它进行调整,我甚至猜测采样的百分比在默认情况下会减少到每棵树上,但二乘二是一个指标......)

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

使用google translator plug-in for chrome,一次翻译一个单词。没有英语,你就无法做到这一点。即使你读完1-2个单词,也会从整体上理解其含义。我自己在忘词的时候也会使用。只要点击这个词就可以了。你可以转动/句子来分配。

当然,一次性翻译整个文本是愚蠢的,所以即使是单词你也不会记住,你也不会理解文本的含义。

谢谢,我将尝试用你的方法进行翻译,也许这比我自己编造假设更有成效,但我在语言方面有一个弱点......

 
伊万-内格雷什尼

我不明白为什么需要手动编辑决策树的分叉和叶子,是的,我把所有的分支都自动转换为逻辑运算符,但坦率地说,我不记得我曾经自己纠正过它们。

因为使用预测概率低于50-60%的树叶有什么意义呢?它是随机的--更好的模型根本不会对情况做出反应,而不是对猜测做出反应。


伊万-内格雷什尼

而它甚至值得挖掘CatBoost代码,你怎么能确定。

例如,我在python上测试了我的神经网络,通过乘法表进行训练,现在我把它用于测试树和森林(DecisionTree, RandomForest, CatBoost)。

这就是得出的结果--显然它不支持CatBoost,就像2乘以2等于0.5...:)


诚然,如果你采取成千上万的树木,结果会有所改善。

我不太确定树是否比神经网络更好,但树需要更少的资源来构建它们。例如,现在我有大约400个预测器,一个有400个输入神经元和(有多少层)的网络会花太多时间来计算。

我可以放下我的样品--也许用它来看看哪种方法更好?

但这些设置确实有意义--我现在正在挖掘它们,并试图弄清楚它们。

 
Ivan Negreshniy:

我不明白为什么需要手动编辑决策树的分叉和叶子,是的,我把所有的分支都自动转换为逻辑运算符,但坦率地说,我不记得我曾经自己纠正过它们。

而一般来说,值得挖掘的是CatBoost代码,我怎么能确定呢。

例如,我把上述测试放在python上,我的神经网络通过乘法表学习,现在把它用于测试树和森林(DecisionTree、RandomForest、CatBoost)。

这就是结果--你可以看到,这对CatBoost不利,就像2乘以2等于0.5一样...:)


这是真的,如果你拿着成千上万的树,结果就会改善。
import catboost
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from catboost import CatBoostRegressor
from sklearn.ensemble import GradientBoostingRegressor

x = [[1,2],[2,2],[3,2],[4,2],[5,2],[6,2],[7,2],[8,2],[9,2]]
y = [2,4,6,8,10,12,14,16,18]

print('-------- 1 DecisionTree')
tree = DecisionTreeRegressor().fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],tree.predict([ix])[0]))

print('-------- RandomForest 10 Tree')
regr = RandomForestRegressor(bootstrap=True).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],regr.predict([ix])[0]))

print('-------- CatBoost 10 Tree')
cat = CatBoostRegressor(iterations=100, learning_rate=0.1, depth=2, verbose=False).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],cat.predict([ix])[0]))

print('-------- Gboost 100 Trees')
gboost  = GradientBoostingRegressor(n_estimators=100, verbose = False).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],gboost.predict([ix])[0]))
-------- 1 DecisionTree
 1.00*2.00=2.00 
 2.00*2.00=4.00 
 3.00*2.00=6.00 
 4.00*2.00=8.00 
 5.00*2.00=10.00 
 6.00*2.00=12.00 
 7.00*2.00=14.00 
 8.00*2.00=16.00 
 9.00*2.00=18.00 
-------- RandomForest 10 Tree
 1.00*2.00=3.60 
 2.00*2.00=4.40 
 3.00*2.00=6.00 
 4.00*2.00=8.00 
 5.00*2.00=9.20 
 6.00*2.00=11.80 
 7.00*2.00=13.20 
 8.00*2.00=15.60 
 9.00*2.00=17.40 
-------- CatBoost 10 Tree
 1.00*2.00=2.97 
 2.00*2.00=2.97 
 3.00*2.00=5.78 
 4.00*2.00=8.74 
 5.00*2.00=10.16 
 6.00*2.00=12.88 
 7.00*2.00=14.67 
 8.00*2.00=15.77 
 9.00*2.00=15.77 
-------- Gboost 100 Trees
 1.00*2.00=2.00 
 2.00*2.00=4.00 
 3.00*2.00=6.00 
 4.00*2.00=8.00 
 5.00*2.00=10.00 
 6.00*2.00=12.00 
 7.00*2.00=14.00 
 8.00*2.00=16.00 
 9.00*2.00=18.00 

对它进行了一些调整,增加了一些梯度提升,它在开箱后的效果最好。

其余的当然是mnda...

 
马克西姆-德米特里耶夫斯基
大约一年前,我看到一份简单的NS,在乘法表上显示了非常体面的结果。当时,这让我很吃惊。
现在有什么意义呢?
 
import catboost
import lightgbm as gbm
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from catboost import CatBoostRegressor
from sklearn.ensemble import GradientBoostingRegressor

x = [[1,2],[2,2],[3,2],[4,2],[5,2],[6,2],[7,2],[8,2],[9,2]]
y = [2,4,6,8,10,12,14,16,18]

print('-------- 1 DecisionTree')
tree = DecisionTreeRegressor().fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],tree.predict([ix])[0]))

print('-------- RandomForest 10 Tree')
regr = RandomForestRegressor(bootstrap=True, n_estimators=100).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],regr.predict([ix])[0]))

print('-------- CatBoost 10 Tree')
cat = CatBoostRegressor(iterations=100, learning_rate=0.1, depth=2, verbose=False).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],cat.predict([ix])[0]))

print('-------- Gboost 100 Trees')
gboost  = GradientBoostingRegressor(n_estimators=100, verbose = False).fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],gboost.predict([ix])[0]))

print('-------- LGBM 100 Trees')
gbbm = gbm.LGBMRegressor(n_estimators=100,boosting_type='dart').fit(x,y)
for ix in x: print(' {:2.2f}*{:2.2f}={:2.2f} '.format(ix[0],ix[1],gbbm.predict([ix])[0]))
-------- 1 DecisionTree
 1.00*2.00=2.00 
 2.00*2.00=4.00 
 3.00*2.00=6.00 
 4.00*2.00=8.00 
 5.00*2.00=10.00 
 6.00*2.00=12.00 
 7.00*2.00=14.00 
 8.00*2.00=16.00 
 9.00*2.00=18.00 
-------- RandomForest 10 Tree
 1.00*2.00=2.84 
 2.00*2.00=3.74 
 3.00*2.00=5.46 
 4.00*2.00=7.70 
 5.00*2.00=9.66 
 6.00*2.00=11.44 
 7.00*2.00=13.78 
 8.00*2.00=15.46 
 9.00*2.00=16.98 
-------- CatBoost 10 Tree
 1.00*2.00=2.97 
 2.00*2.00=2.97 
 3.00*2.00=5.78 
 4.00*2.00=8.74 
 5.00*2.00=10.16 
 6.00*2.00=12.88 
 7.00*2.00=14.67 
 8.00*2.00=15.77 
 9.00*2.00=15.77 
-------- Gboost 100 Trees
 1.00*2.00=2.00 
 2.00*2.00=4.00 
 3.00*2.00=6.00 
 4.00*2.00=8.00 
 5.00*2.00=10.00 
 6.00*2.00=12.00 
 7.00*2.00=14.00 
 8.00*2.00=16.00 
 9.00*2.00=18.00 
-------- LGBM 100 Trees
 1.00*2.00=10.00 
 2.00*2.00=10.00 
 3.00*2.00=10.00 
 4.00*2.00=10.00 
 5.00*2.00=10.00 
 6.00*2.00=10.00 
 7.00*2.00=10.00 
 8.00*2.00=10.00 
 9.00*2.00=10.00 
 
尤里-阿索连科

但一个词或一段话--根本不可能。

https://www.mql5.com/ru/forum/86386/page1180#comment_9543249

Машинное обучение в трейдинге: теория и практика (торговля и не только)
Машинное обучение в трейдинге: теория и практика (торговля и не только)
  • 2018.11.29
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...
 
Maxim Dmitrievsky:

CatBoost 在迭代=100棵树,而不是10棵,GBM是一个美丽的:)

 
Aleksey Vyazmikin:

因为使用预测概率低于50-60%的床单有什么意义呢?这是随机的--对模型来说,完全没有反应比猜测的反应要好。


我不确定树是否比神经网络更好,但树需要更少的资源来构建。例如,现在我有大约400个预测器,一个有400个输入神经元和(有多少层)的网络会花太多时间来计算。

我可以放下我的样品--也许用它来看看哪种方法更好?

而这些设置是的--有意义--我现在正在挖掘它们,试图了解它们的本质。

通过各种手段,在它仍处于早期阶段时,尽可能仔细地进行选择。

除了缺乏对二二的了解外,还试图断开令人讨厌的,在每次启动时,由CatBoost 创建其临时目录,因为从它在受保护的环境中踢出。

而在一般情况下,这些故障他看起来不知何故不是很专业,所以如果你不能击败他们,那么在我个人看来,比免费的便宜 - 从这个产品放弃在一次:)