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

 
СанСаныч Фоменко #:

레이블(교사, 대상 변수)은 정의상 쓰레기가 될 수 없습니다.

산치, 부끄러워하지 마세요.

자신의 의견을 표현하기 위해 공부를 시작하지도 않았잖아요.

 

또 다른 재미있는 사실은, 나는 이것이 분명히 재교육이라고 생각하고 있었고, 어떤 지표에서 수업 변경이 발생했는지보기로 결정했습니다 - 나는 거의 끝났고 이것은 단지 재교육의 좋은 예라고 생각했습니다.

사실, 그것은 다음과 같이 밝혀졌습니다.


테스트 샘플에서

이 처음 천 장 (모델에 추가하는 다음 순서에서)은 대부분 불안정하다는 것이 밝혀졌습니다!

놀랐습니다.

시험 샘플에서

 
Aleksey Vyazmikin #:

또 한 가지 재미있는 사실은, 재교육이 끝났다고 생각해서 어떤 지표에서 클래스 변경이 일어났는지 확인해보니 재교육의 좋은 예시라고 생각했습니다.

실제로 다음과 같이 밝혀졌습니다.


테스트 샘플에서

대부분 불안정한 것은 (모델에 추가하는 다음 순서에서) 처음 천 장이라는 것이 밝혀졌습니다!

놀랐습니다.

샘플에서

바우스팅으로 세는 거죠? 여기서는 첫 번째 트리만 원래 선생님의 레이블에 대해 학습됩니다.
다른 모든 트리의 경우 교사는 예측 오차, 즉 (Y - Pred)입니다. 그리고 에타가 0.1...0.001인 경우에도 이 나무의 잎의 영향은 중요하지 않으며 정확합니다. 당신이 보여준 것 (그들의 중요성).
 

가르칠 GPT)

이제 분석에 봉투형 지표를 추가해 보겠습니다. 봉투형 인디케이터는 이동 평균 위와 아래의 선을 나타냅니다. 일반적으로 해당 이동 평균에서 고정된 백분율 거리에 있습니다.

  1. 지난 달(2023년 11월)의 엔벨로프입니다:

    • 이동 평균에서 백분율 거리를 선택해 보겠습니다.
    • 봉투 상한선과 하한선을 계산해 보겠습니다.
  2. RSI, 볼린저 밴드 및 엔벨로프를 사용한 전체 추세:

    • 서로 다른 지표에서 얻은 신호를 비교해 봅시다.

또한 서로 다른 지표의 신호가 상충될 수 있으므로 함께 분석하는 것이 중요하다는 점을 고려하세요.

계산과 분석을 계속해 보겠습니다.

 
Yuriy Vasilyev 지표를 추가해 보겠습니다. 봉투형 인디케이터는 이동 평균 위와 아래의 선을 나타냅니다. 일반적으로 이동 평균에서 고정된 백분율 거리에 있습니다.
  1. 지난 달(2023년 11월)의 엔벨로프입니다:

    • 이동 평균에서 백분율 거리를 선택해 보겠습니다.
    • 봉투 상한선과 하한선을 계산해 보겠습니다.
  2. RSI, 볼린저 밴드 및 엔벨로프를 사용한 전체 추세:

    • 여러 지표에서 얻은 신호를 비교해 보겠습니다.

또한 서로 다른 지표의 신호가 상충될 수 있으므로 함께 분석하는 것이 중요하다는 점을 고려해 봅시다.

계산과 분석을 계속해 봅시다.

예측을 얻기 위해 가격을 제출해 보셨나요? 이런 종류의 일은 시장에서 실행되고 있으며 누군가 알고리즘을 유출 한 것 같습니다.
 
Forester #:
부스팅을 세고 계시죠?

맞습니다, 우리는 캣부스트에 대해 이야기하고 있습니다!

포레스터 #:
첫 번째 나무만 초기 선생님의 레이블로 훈련됩니다.
다른 모든 트리의 경우 교사는 예측 오차, 즉 (Y - Pred)입니다.

실제로 이것이 이론에서 제안하는 것입니다.

포레스터 #:
예, 계수 eta = 0.1...0.001도 마찬가지입니다.

"학습 속도" 계수는 적어도 CatBoost에서는 모든 나무에 대해 고정되어 있습니다.

포레스터 #:
이 나무의 잎의 영향은 미미하며 정확할 뿐입니다. 이것이 바로 당신이 보여준 것입니다 (그들의 중요성).

실제로 캣부스트에서 잎 계수가 어떻게 배열되는지 설명해 주시겠어요?

제가 잘 이해하지 못하는 부분이 있습니다.

그러나 저는 잎의 "클래스"에 변화가 있음을 보여주었습니다. 즉, 실제로 잎의 40%가 새 데이터에서 합계를 잘못된 방식으로 가져온 것으로 나타났습니다.

 
Aleksey Vyazmikin #:

캣부스트에서 잎에 계수가 어떻게 배열되는지 실제로 설명해 주시겠어요?

캣부스트 코드를 파헤쳐서 정확한 답을 알려드릴까요? 저는 제가 관심 있는 부분만 파헤칩니다.
잎 계수에 대해 처음 들어봤는데 그게 뭔가요?

튜토리얼과 간단한 부스트 코드는 여기 https://habr.com/ru/companies/vk/articles/438562/
Пишем XGBoost с нуля — часть 2: градиентный бустинг
Пишем XGBoost с нуля — часть 2: градиентный бустинг
  • 2019.02.07
  • habr.com
Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение...
 
Aleksey Vyazmikin #:

별도의 샘플 테스트에서 7467 개, 시험에서 7177 개를보고했지만 활성화가 전혀없는 잎이 적지 않은 것은 아니지만 한 번에 계산하지 않았습니다.


다음은 테스트 샘플의 값에 따라 클래스를 변경 한 잎의 분포입니다.


에 대한 값에 따라 클래스가 변경된 잎의 분포입니다.

그리고 이것은 클래스로의 분류입니다. 세 가지가 있으며 세 번째는 활성화되지 않은 "-1"입니다.


샘플 열차의 경우


테스트 샘플용


시험 샘플용

일반적으로 리프 가중치가 더 이상 클래스 로직과 일치하지 않는다는 것을 알 수 있습니다. 아래는 테스트 샘플의 그래프입니다. 명확한 벡터가 없습니다.


일반적으로 이 방법은 근사치를 구할 수는 있지만 예측자의 품질을 보장하지는 않습니다.

일반적으로 위 그래프에서 뚜렷한 '막대'는 장소와 활성화 빈도에 따라 매우 유사한 잎사귀라고 가정합니다.


모르는 것에 대해 논의하기는 어렵습니다. 따라서 나는 당신의 성공에 기뻐할 수 있습니다. 그런 방법이 있다면 나는 그것을 사용할 것입니다 :)

제 방법은 아직 그런 질적 인 결과를 제공하지는 않지만 충분히 유사합니다.

왜 이런 일이 발생하는지 궁금한 적이 있나요?

 

나이브 코드로 내보낸 모델의 테스트 속도(catbust)

EURUSD,H1: total time from login to stop testing 0:00:04.143 (including 0:00:00.031 for history data synchronization)

그리고 ONNX로 내보낸 경우

EURUSD,H1: total time from login to stop testing 0:00:09.539 (including 0:00:00.025 for history data synchronization)

두 버전의 봇의 내부는 거의 비슷하며 결과도 동일합니다.

 
Forester #:
제가 캣버스트 코드를 파헤쳐서 정확한 답변을 드릴까요? 저는 제가 관심 있는 부분만 파헤칩니다. 저는 캣버스트를 사용하지 않습니다.

알고 계실 줄 알았는데 모르시는 것 같아서 부담을 드리고 싶지 않았습니다.

포레스터 #:
잎 계수에 대해 처음 들어봤는데, 그게 뭔가요?

함수의 Y 좌표를 형성하기 위해 합산되는 리프 값입니다.


X에서 0.5보다 크거나 같으면 CatBoost의 기본 클래스가 "1"임을 의미합니다.
사유: