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.002.00*2.00=4.003.00*2.00=6.004.00*2.00=8.005.00*2.00=10.006.00*2.00=12.007.00*2.00=14.008.00*2.00=16.009.00*2.00=18.00
-------- RandomForest 10 Tree
1.00*2.00=3.602.00*2.00=4.403.00*2.00=6.004.00*2.00=8.005.00*2.00=9.206.00*2.00=11.807.00*2.00=13.208.00*2.00=15.609.00*2.00=17.40
-------- CatBoost 10 Tree
1.00*2.00=2.972.00*2.00=2.973.00*2.00=5.784.00*2.00=8.745.00*2.00=10.166.00*2.00=12.887.00*2.00=14.678.00*2.00=15.779.00*2.00=15.77
-------- Gboost 100 Trees
1.00*2.00=2.002.00*2.00=4.003.00*2.00=6.004.00*2.00=8.005.00*2.00=10.006.00*2.00=12.007.00*2.00=14.008.00*2.00=16.009.00*2.00=18.00
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.002.00*2.00=4.003.00*2.00=6.004.00*2.00=8.005.00*2.00=10.006.00*2.00=12.007.00*2.00=14.008.00*2.00=16.009.00*2.00=18.00
-------- RandomForest 10 Tree
1.00*2.00=2.842.00*2.00=3.743.00*2.00=5.464.00*2.00=7.705.00*2.00=9.666.00*2.00=11.447.00*2.00=13.788.00*2.00=15.469.00*2.00=16.98
-------- CatBoost 10 Tree
1.00*2.00=2.972.00*2.00=2.973.00*2.00=5.784.00*2.00=8.745.00*2.00=10.166.00*2.00=12.887.00*2.00=14.678.00*2.00=15.779.00*2.00=15.77
-------- Gboost 100 Trees
1.00*2.00=2.002.00*2.00=4.003.00*2.00=6.004.00*2.00=8.005.00*2.00=10.006.00*2.00=12.007.00*2.00=14.008.00*2.00=16.009.00*2.00=18.00
-------- LGBM 100 Trees
1.00*2.00=10.002.00*2.00=10.003.00*2.00=10.004.00*2.00=10.005.00*2.00=10.006.00*2.00=10.007.00*2.00=10.008.00*2.00=10.009.00*2.00=10.00
谷歌也不起作用?:)
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个输入神经元和(有多少层)的网络会花太多时间来计算。
我可以放下我的样品--也许用它来看看哪种方法更好?
但这些设置确实有意义--我现在正在挖掘它们,并试图弄清楚它们。
我不明白为什么需要手动编辑决策树的分叉和叶子,是的,我把所有的分支都自动转换为逻辑运算符,但坦率地说,我不记得我曾经自己纠正过它们。
而一般来说,值得挖掘的是CatBoost代码,我怎么能确定呢。
例如,我把上述测试放在python上,我的神经网络通过乘法表学习,现在把它用于测试树和森林(DecisionTree、RandomForest、CatBoost)。
这就是结果--你可以看到,这对CatBoost不利,就像2乘以2等于0.5一样...:)
这是真的,如果你拿着成千上万的树,结果就会改善。对它进行了一些调整,增加了一些梯度提升,它在开箱后的效果最好。
其余的当然是mnda...
但一个词或一段话--根本不可能。
https://www.mql5.com/ru/forum/86386/page1180#comment_9543249
有CatBoost 在迭代=100棵树,而不是10棵,GBM是一个美丽的:)
因为使用预测概率低于50-60%的床单有什么意义呢?这是随机的--对模型来说,完全没有反应比猜测的反应要好。
我不确定树是否比神经网络更好,但树需要更少的资源来构建。例如,现在我有大约400个预测器,一个有400个输入神经元和(有多少层)的网络会花太多时间来计算。
我可以放下我的样品--也许用它来看看哪种方法更好?
而这些设置是的--有意义--我现在正在挖掘它们,试图了解它们的本质。
通过各种手段,在它仍处于早期阶段时,尽可能仔细地进行选择。
除了缺乏对二二的了解外,还试图断开令人讨厌的,在每次启动时,由CatBoost 创建其临时目录,因为从它在受保护的环境中踢出。
而在一般情况下,这些故障他看起来不知何故不是很专业,所以如果你不能击败他们,那么在我个人看来,比免费的便宜 - 从这个产品放弃在一次:)