Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 1181

 

Çevirmen çalışıyor. Ya tüm sayfayı çevirir ya da çeviriciye kopyala-yapıştır yapar.

Ama bir kelime ya da paragraf - hiçbir şey.

 
Maksim Dmitrievski :

orada çok fazla ayar var, bunu anlamak için çok şişeye ihtiyacınız var.. :) belki numune küçüktür. ağaç benzeri olanlar esas olarak büyük olanlar için tasarlanmıştır, bir şeylerin ayarlanması gerekir


Tabii ki, muhtemelen hile yapabilirsiniz, hatta tahmin ediyorum ki, örneğin yüzdesi her ağaca gider, varsayılan olarak azalır, ancak iki kez iki bir göstergedir ...)

 
Maksim Dmitrievski :

chrome için google çevirmen eklentisini kullanarak 1 kelimeyi çevirin. İngilizce olmadan. imkanı yok. 1-2 kelime okusanız bile genel olarak anlamı netleşir. Kelimeleri unuttuğumda kendim kullanırım. Sadece kelimeye tıklayın. Dönüş \teklifleri tahsis etmek mümkündür.

Tüm metni bir kerede çevirmek elbette aptalcadır, bu yüzden kelimeleri asla hatırlamazsınız ve metnin anlamını anlamazsınız.

Teşekkür ederim sizin yönteminize göre çevirmeyi denemem lazım belki kendi hipotezlerimi kurmaktan daha verimli olur ama dillere karşı zaafım var...

 
Ivan Negreshniy :

neden m.b anlamadım Karar ağaçlarının bölmelerini ve yapraklarını manuel olarak düzenlemem gerekiyor, ancak tüm dalları otomatik olarak mantıksal operatörlere dönüştürüyorum, ancak dürüst olmak gerekirse, onları kendim düzelttiğimi hatırlamıyorum.

Çünkü tahmin olasılığı %50-60'ın altında olan sayfaları kullanmanın anlamı nedir? Bu rastgeledir - tahmine tepki vermek yerine modelin duruma hiç tepki vermemesi daha iyidir.


Ivan Negreshniy :

Ve genel olarak, güven nereden geliyor, CatBoost kodunu kazmaya değer mi?

Örneğin, yukarıdaki sinir ağımın bir python testini çarpım tablosunda iki ile eğitimle kurdum ve şimdi onu ağaçları ve ormanları test etmek için aldım (DecisionTree, RandomForest, CatBoost)

ve işte sonuç - CatBoost'un lehine olmadığı açıkça görülüyor, iki iki - sıfır beş gibi ... :)


ancak binlerce ağaç alırsanız sonuçlar iyileşir.

Ağaçların sinir ağlarından daha iyi olduğundan emin değilim, ancak ağaçların bunları oluşturmak için daha az kaynağa ihtiyacı var. Örneğin, şimdi yaklaşık 400 tahmincim var ve 400 giriş nöronlu bir ağ ve (orada kaç katman var) hesaplamak çok uzun sürecek.

Seçimimi sıfırlayabilirim - hangi yöntemin daha iyi olduğunu görebilir miyim?

Ve ayarlar, evet - mantıklılar - ve şimdi onları kazıyorum ve özlerini anlamaya çalışıyorum.

 
Ivan Negreshniy :

neden m.b anlamadım Karar ağaçlarının bölmelerini ve yapraklarını manuel olarak düzenlemem gerekiyor, ancak tüm dalları otomatik olarak mantıksal operatörlere dönüştürüyorum, ancak dürüst olmak gerekirse, onları kendim düzelttiğimi hatırlamıyorum.

Ve genel olarak, güven nereden geliyor, CatBoost kodunu kazmaya değer mi?

Örneğin, yukarıdaki sinir ağımın bir python testini çarpım tablosunda iki ile eğitimle kurdum ve şimdi onu ağaçları ve ormanları test etmek için aldım (DecisionTree, RandomForest, CatBoost)

ve işte sonuç - CatBoost'un lehine olmadığı açıkça görülüyor, iki iki - sıfır beş gibi ... :)


ancak binlerce ağaç alırsanız sonuçlar iyileşir.
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 

biraz ince ayar yapıldı ve gradyan artırma eklendi, kutudan çıkar çıkmaz en iyi sonucu veriyor

geri kalanı elbette bir şey mnda ..

 
Maksim Dmitrievski :
Yaklaşık bir yıl önce, çarpım tablosunda iyi sonuçlar gösteren basit bir NS örneğini gördüm. Sonra beni şaşırttı.
Ve şimdi neden bu?
 
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 
 
Yuri Asaulenko :

Ama bir kelime ya da paragraf - hiçbir şey.

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

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

yinelemeli CatBoost = 100 ağaç ve 10 değil ve GBM yakışıklı :)

 
Alexey Vyazmikin :

Çünkü tahmin olasılığı %50-60'ın altında olan sayfaları kullanmanın anlamı ne? Bu rastgeledir - tahmine tepki vermek yerine modelin duruma hiç tepki vermemesi daha iyidir.


Ağaçların sinir ağlarından daha iyi olduğundan emin değilim, ancak ağaçların bunları oluşturmak için daha az kaynağa ihtiyacı var. Örneğin, şimdi yaklaşık 400 tahmincim var ve 400 giriş nöronlu bir ağ ve (orada kaç katman var) hesaplamak çok uzun sürecek.

Seçimimi sıfırlayabilirim - hangi yöntemin daha iyi olduğunu görebilir miyim?

Ve ayarlar, evet - mantıklılar - ve şimdi onları kazıyorum ve özlerini anlamaya çalışıyorum.

Tabii ki, araştırın ve henüz emekleme dönemindeyken olabildiğince dikkatli seçim yapın.

İki ve iki ile ilgili yanlış anlamalara ek olarak, obsesifleri de devre dışı bırakmayı deneyin, her başladığınızda, CatBoost'un kendi geçici dizinlerini oluşturun. Çıkardığı korumalı ortamda ondan.

Ve genel olarak, bu aksaklıklar bir şekilde çok profesyonel görünmüyor, bu yüzden onları yenemezseniz, o zaman kişisel olarak, bence, ücretsiz olandan daha ucuz - bu ürünü hemen reddedin :)