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

 
vladavd #:

이 경우 새로운 것은 지그재그와 그 지그재그를 따라 흐르는 채널인데, 이것이 바로 엔지니어링의 아방가르드입니다.

그게 전부가 아닙니다.

허용된 것의 5%에 불과합니다.)))

링스앤테크 #:

마지막 단어와 햄버거와 같습니다.))

항상 자신을 정당화할 기회를 스스로에게 주어야 합니다.

 

안녕하세요, 여러분!

누군가 조언을 해 주실 수 있을까요? "DecisionTreeClassifier" 모델을 사용하여 그날의 통화 쌍의 방향(상승 또는 하락)을 예측하려고 합니다.

예측을 위해 5개의 예측 변수만 사용하며, 예측 결과는 상승(1) 또는 하락(-1) 추세입니다. 데이터 집합 크기: 999행, 6열(데이터 집합 첨부).

그런데 'max_depth'를 늘리면 훈련 샘플과 테스트 샘플의 정확도가 동시에 증가하는 문제가 발생했습니다. 테스트 샘플의 정확도는 증가를 멈추고 최대_뎁스=22에서 0.780000과 같은 상수가 됩니다. max_depth의 다른 값에서의 결과:


1) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=3)

훈련 세트의 정확도: 0.539424 테스트 세트의 정확도: 0.565000

2) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=5)

훈련 세트의 정확도: 0.579474 테스트 세트의 정확도: 0.585000

3) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=7)

훈련 세트의 정확도: 0.637046 테스트 세트의 정확도: 0.640000

4) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=9)

훈련 세트의 정확도: 0.667084 테스트 세트의 정확도: 0.700000

5) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=11)

훈련 세트의 정확도: 0.700876 테스트 세트의 정확도: 0.710000

6) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=13)

훈련 세트의 정확도: 0.720901 테스트 세트의 정확도: 0.720000

7) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=15)

훈련 세트의 정확도: 0.734668 테스트 세트의 정확도: 0.740000

8) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=17)

훈련 세트의 정확도: 0.747184 테스트 세트의 정확도: 0.760000

9) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=19)

훈련 세트의 정확도: 0.755945 테스트 세트의 정확도: 0.765000

10) clf_20=DecisionTreeClassifier(criterion='엔트로피', max_depth=22)

훈련 세트의 정확도: 0.760951 테스트 세트의 정확도: 0.780000


재학습이 가능하기 때문에 최대 깊 이를 3~4개 이상 사용하면 안 된다고 들었기 때문에 이 상황이 매우 혼란스럽습니다. 하지만 재학습 시 모델이 이와 같이 작동하는 것은 훈련되지 않은 모델처럼 보입니다.

.

나는 그러한 상황에서 선택할 의사 결정 트리의 깊이 또는 어떤 모델조차도 일반적으로이 방향으로 더 작업 할 가치가 있는지, 아마도 무언가가 누락되었는지 (예 : 데이터 세트가 100 행이 아님), 더 많은 예측자를 추가 할 수 있는지 여부 및 그러한 크기의 데이터 세트에 얼마나 더 추가 할 수 있는지 (2-5 개 더 추가 할 것임) 이해하지 못합니다.

코드는 간단하며 데이터 세트와 함께 첨부합니다:



 
Elvin Nasirov #:

재훈련이 가능하기 때문에 최대 깊이를 3-4 이상으로 사용해서는 안된다고 들었 기 때문에이 상황에 매우 혼란 스럽습니다.

그러나 이것이 모델이 재 훈련 될 때 작동하는 방식입니까, 그것은 훈련되지 않은 모델처럼 보입니다.

나는 그러한 상황에서 선택할 의사 결정 트리의 깊이 또는 어떤 모델조차도이 방향으로 더 작업 할 가치가 있는지, 일반적으로 무언가 누락되었는지 (예 : 데이터 세트가 100 행이 아닌 경우), 더 많은 예측자를 추가 할 수 있는지 여부 및 그러한 크기의 데이터 세트에 얼마나 더 추가 할 수 있는지 (2-5 개를 더 추가 할 것임) 이해하지 못합니다.

코드는 간단하며 데이터 세트와 함께 첨부합니다:

안녕하세요.

더 많은 분할 수 - 더 많은 메모리 = 샘플 학습의 위험.

저는 파이썬에 능숙하지는 않지만:

1. 혼합하지 않고 샘플을 분할해 보세요.

2. 축소된 샘플이 아닌 전체 샘플에 대해 학습하고 있는 것 같습니다.

 
Aleksey Vyazmikin #:

안녕하세요.

분할 횟수 증가-메모리 증가 = 샘플 학습의 위험성 증가.

저는 파이썬에 능숙하지는 않지만:

1. 혼합하지 않고 샘플을 분할해 보세요.

2. 축소된 샘플이 아닌 전체 샘플로 훈련하고 있는 것 같습니다.

감사합니다! 맞는 것 같습니다.

위 코드에서 "clf_20.fit(X, y)"를 "clf_20.fit(X_train, y_train)"으로 바꾸니 그림이 거의 50/50으로 바뀌었습니다.

 
Elvin Nasirov #:

감사합니다! 네 말이 맞아요.

위 코드에서 "clf_20.fit(X, y)"를 "clf_20.fit(X_train, y_train)"으로 바꿨더니 그림이 거의 50 대 50으로 바뀌었습니다.

너무 좋은 결과는 항상 코드에서 버그를 찾기 시작해야 하는 이유이기 때문에 이런 결과가 나오는 것은 정상입니다.

 
Aleksey Vyazmikin #:

너무 좋은 결과는 항상 코드의 버그를 찾기 시작해야 하는 이유입니다.

다른 질문이 하나 더 있습니다.

최대_뎁스=1에서 가장 좋은 결과를 얻을 수 있으며 다음과 같이 보입니다:

훈련 세트의 정확도: 0.515021 테스트 세트의 정확도: 0.503333

동전을 던질 확률과 같을 정도로 매우 나쁜 결과인 것 같습니다. 아니면 이것을 좋은 결과로 간주하고 외환 이동 확률과 동전 던지기로 결과 확률을 평준화할 수 있는 공식화를 찾았다고 결론을 내릴 수 있을까요?

즉, 예측 변수의 각 조합에 대해 상승 또는 하락이라는 두 가지 동등한 시장 변동 변형이 있는 상황이므로 현재 조합에서 여전히 상승 또는 하락을 지정할 수 있는 데이터 세트를 보완해야 합니다.

 
Elvin Nasirov #:

또 다른 질문이 나왔습니다.

최대_뎁스=1에서 최상의 결과를 얻을 수 있으며 다음과 같이 보입니다:

훈련 세트의 정확도: 0.515021 테스트 세트의 정확도: 0.503333

동전을 던질 확률과 같을 정도로 매우 나쁜 결과인 것 같습니다. 아니면 이것을 좋은 결과로 간주하고 외환 이동 확률과 동전 던지기 확률을 평준화할 수 있는 공식화를 찾았다고 결론을 내릴 수 있을까요?

즉, 예측 변수의 각 조합에 대해 시장 움직임의 상승 또는 하락이라는 두 가지 동등한 변형이 있는 상황이므로 현재 조합에서 여전히 상승 또는 하락을 지정할 수 있는 데이터 세트를 보완할 필요가 있습니다.

먼저 훈련 결과를 평가하는 다른 메트릭인 리콜(완전성) 및 정밀도(정확도)에 대해 읽어보세요. 특히 불균형 샘플링과 관련이 있습니다. 이 전략은 정답과 오답의 확률이 동일한 분류에 대해 긍정적인 재정적 결과를 도출하는 것일 수 있습니다.

좀 더 복잡하지만 논리적인 목표 마크업을 고려해 보세요. 하루가 개장 시점에 어떻게 마감될지 결정하는 것은 하루 개장 시점의 몇 퍼센트만큼 상승 및 하락할 확률을 결정하는 것보다 더 어려운 일중 패턴을 식별할 확률이 있습니다.

저에게는 샘플이 너무 작습니다.

시장을 설명할 수 있는 예측 변수를 만들어 보세요. 제 생각에는 예측 지표에서 차트를 보지 않고도 차트 상황을 복원 할 수 있어야합니다.

훈련을 위해 CatBoost를 사용해 보는 것이 좋습니다. 모델을 빠르게 빌드하고 목발없이 MT5에서 작업하기 위해 모델을 코드로 전송하는 문제가 해결됩니다.

 
Elvin Nasirov #:

최대_뎁스=1일 때 가장 좋은 결과를 얻을 수 있으며 다음과 같이 표시됩니다:

훈련 세트의 정확도: 0.515021 테스트 세트의 정확도: 0.503333

또한 가장 좋은 결과는 깊이=1에서 나타나는데, 이는 특징 중 하나에 대해 단 한 번만 분할이 이루어졌음을 의미합니다. 트리를 더 분할하면 훈련에서는 과훈련이 발생하고 테스트에서는 결과가 나빠집니다.

 
elibrarius #:

또한 가장 좋은 결과는 깊이=1에서 나타나는데, 이는 피처 중 하나에서 단 한 번의 분할이 이루어졌음을 의미합니다. 트리를 더 분할하면 훈련에 대한 재학습과 테스트 결과의 악화로 이어집니다.

어제 결과를 확인한 결과 모든 사례에 대한 모델이 평균적으로 "1"의 예측을 제공하므로 50/50으로 나타났습니다. 모델 없이도 할 수 있습니다. 항상 "위로"라고 말하면됩니다.

 
전문 프로 트레이더로 거래하기
h ttps://youtu.be/RS9jRVmW1j4

이것이 제가 이해하는 지지와 저항 수준입니다.....

모든 사람이 이해하지는 못하겠지만, 이해한다면 그들에게 찬사를 보냅니다....

EARNING SEASON KICKS OFF - Trading Futures Live
EARNING SEASON KICKS OFF - Trading Futures Live
  • 2023.01.13
  • www.youtube.com
Join our FREE Discord community https://discord.gg/zhvUwUUhFirst 5 days of January bullish were followed by Full-year gains 83% of the time since 1950.Earnin...
사유: