트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 1181

 

번역기가 작동합니다. 전체 페이지를 번역하거나 번역기에 복사하여 붙여넣습니다.

그러나 단어 또는 단락 - 전혀.

 
막심 드미트리예프스키 :

거기에 너무 많은 설정이 있습니다. 알아내려면 많은 병이 필요합니다. :) 샘플이 작을 수도 있습니다. 나무와 같은 것들은 주로 큰 것들을 위해 설계되었으며, 조정이 필요합니다.


물론 속임수를 쓸 수도 있습니다. 샘플의 백분율이 기본적으로 감소한 각 트리로 이동한다고 추측할 수도 있지만 2배가 표시기입니다...)

 
막심 드미트리예프스키 :

크롬용 구글 번역기 플러그인을 사용하여 1단어를 번역합니다. 영어 없이. 절대 안돼. 1~2단어로 읽어도 전체적으로 의미가 명확해집니다. 나는 단어를 잊어 버릴 때 스스로 그것을 사용합니다. 단어를 클릭하면 됩니다. 차례 \offers를 할당하는 것이 가능합니다.

한 번에 전체 텍스트를 번역하는 것은 물론 어리석은 일이므로 단어를 기억하지 못하고 텍스트의 의미를 이해하지 못할 것입니다.

고마워요, 당신의 방법에 따라 번역을 시도해야합니다. 아마도 내 자신의 가설을 세우는 것보다 훨씬 생산적 일 것입니다. 그러나 나는 언어에 약점이 있습니다 ...

 
이반 네그레쉬니 :

왜 m.b인지 이해가 안됩니다. 결정 트리의 분할과 잎을 수동으로 편집해야 합니다. 네, 모든 분기를 자동으로 논리 연산자로 변환하지만 솔직히 말해서 제가 직접 수정했는지 기억이 나지 않습니다.

예측 확률이 50-60% 미만인 시트를 사용하는 이유는 무엇입니까? 이것은 무작위입니다. 모델이 추측에 반응하는 것보다 상황에 전혀 반응하지 않는 것이 좋습니다.


이반 네그레쉬니 :

그리고 일반적으로 자신감이 어디에서 오는지 CatBoost 코드를 파헤칠 가치가 있습니까?

예를 들어, 위의 신경망에 대한 파이썬 테스트를 설정하고 곱셈 테이블에 대해 2씩 훈련했으며 이제 나무와 숲(DecisionTree, RandomForest, CatBoost)을 테스트하는 데 사용했습니다.

그리고 여기에 결과가 있습니다. 두 배 2 - 0 5와 같이 CatBoost에 찬성하지 않는다는 것이 분명합니다. :)


그러나 수천 그루의 나무를 사용하면 결과가 향상됩니다.

나무가 신경망보다 낫다는 확신은 없지만 나무는 나무를 만드는 데 필요한 리소스가 적습니다. 예를 들어, 이제 약 400개의 예측 변수가 있고 400개의 입력 뉴런이 있는 네트워크와 (여기에 몇 개의 레이어가 있는지) 계산하는 데 너무 오래 걸립니다.

선택 항목을 재설정할 수 있습니다. 어떤 방법이 더 나은지 알 수 있습니까?

그리고 설정은 그렇습니다. 이해가 됩니다. 이제 저는 그것들을 파고들어 그 본질을 이해하려고 노력하고 있습니다.

 
이반 네그레쉬니 :

왜 m.b인지 이해가 안됩니다. 결정 트리의 분할과 잎을 수동으로 편집해야 합니다. 네, 모든 분기를 자동으로 논리 연산자로 변환하지만 솔직히 말해서 제가 직접 수정했는지 기억이 나지 않습니다.

그리고 일반적으로 자신감이 어디에서 오는지 CatBoost 코드를 파헤칠 가치가 있습니까?

예를 들어, 위의 신경망에 대한 파이썬 테스트를 설정하고 곱셈 테이블에 대해 2씩 훈련했으며 이제 나무와 숲(DecisionTree, RandomForest, CatBoost)을 테스트하는 데 사용했습니다.

그리고 여기에 결과가 있습니다. 두 배 2 - 0 5와 같이 CatBoost에 찬성하지 않는다는 것이 분명합니다. :)


그러나 수천 그루의 나무를 사용하면 결과가 향상됩니다.
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 ..

 
막심 드미트리예프스키 :
약 1년 전에 나는 곱셈 테이블에서 괜찮은 결과를 보여주는 간단한 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 и статистики...
 
막심 드미트리예프스키 :

Iterations = 100이 아닌 100 나무가있는 CatBoost 가 있으며 GBM은 잘 생겼습니다. :)

 
알렉세이 비아즈미킨 :

예측 확률이 50-60% 미만인 시트를 사용하는 이유는 무엇입니까? 이것은 무작위입니다. 모델이 추측에 반응하는 것보다 상황에 전혀 반응하지 않는 것이 좋습니다.


나무가 신경망보다 낫다는 확신은 없지만 나무는 나무를 만드는 데 필요한 리소스가 적습니다. 예를 들어, 이제 약 400개의 예측 변수가 있고 400개의 입력 뉴런이 있는 네트워크와 (여기에 몇 개의 레이어가 있는지) 계산하는 데 너무 오래 걸립니다.

선택 항목을 재설정할 수 있습니다. 어떤 방법이 더 나은지 알 수 있습니까?

그리고 설정은 그렇습니다. 이해가 됩니다. 이제 저는 그것들을 파고들어 그 본질을 이해하려고 노력하고 있습니다.

물론 아직 초기 단계에 있을 때 최대한 신중하게 탐색하고 선택하십시오.

2와 2에 대한 오해 외에도, 시작할 때마다 CatBoost 의 임시 디렉토리 생성 강박관념을 비활성화해 보십시오. 보호된 환경에서 이륙합니다.

그리고 일반적으로 이러한 결함은 어떻게 든별로 전문적이지 않아 보이므로이 결함을 물리 칠 수 없다면 개인적으로 제 생각에는 무료보다 저렴합니다. 즉시이 제품을 거부하십시오. :)

사유: