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

 
막심 드미트리예프스키 :

모든 비버는 알지 못하더라도 동일한 댐을 건설합니다.

그러나 모두는 그가 새로운 것을 발명했다고 완고하게 믿습니다.

비버는 근면하고 올바른 생물이며 완전히 다른 문제 입니다. GROOMER'S STUDENT , 이것은 사방에서 빗자루로 그를 몰아가는 사악한 생물이지만 그냥 무시하는 것이 좋습니다.

 
케샤 루트 :

비버는 근면하고 올바른 생물이며 완전히 다른 문제 입니다. GROOMER'S STUDENT , 이것은 사방에서 빗자루로 그를 몰아가는 사악한 생물이지만 그냥 무시하는 것이 좋습니다.

"은행의 분석가" :)) 식기 세척기가 나갔습니다.

 
알렉세이 비아즈미킨 :

사실은 그들이 전체의 50%를 차지하더라도 첫 번째 루트 분할에 대해 이 50%에서 이미 명확한 선택이 있다는 것입니다(또는 Alglib에서는 그렇지 않습니까?). CatBoost에는 예측 변수의 무작위 선택뿐만 아니라 첫 번째 트리에 대한 무작위 분할(가중치가 계산에 무작위로 추가됨)도 있습니다.

나는 다른 결과를 얻었고 내 목표는 전체 모델을 평가하는 것이 아니라 높은 확률로 대부분의 샘플을 설명하는 잎을 얻는 것입니다. 그런 다음 이러한 잎사귀는 연도별로 역사를 확인하고 구성을 만들어 전체 시장을 설명하지 못할 수도 있지만 50 %의 확률로 추측하는 것보다 알고있는 것에 대해 더 정확한 대답을하는 것이 더 낫다고 생각합니다. 대부분의 시간.

예측자는 이제 600의 영역에 있으므로 완전한 열거는 더 이상 실제가 아닙니다.

Alglib에서는 나머지 예측변수를 모두 50%에서 정렬하고 각각을 4분위수로 4등분하고 모든 옵션에서 오류가 가장 좋은 나눗셈을 선택합니다.

원칙적으로 무작위 분리는 부착하기 어렵지 않습니다.
테스트에서 좋은 결과를 가진 개별 나무를 보지 못했지만 (45-50 %), 그 숲이 이미 더 흥미 롭습니다)


 
예측 변수의 중요성에 따라 다음을 살펴보았습니다.
xgboost, lightGBM 패키지에는 "나무 모델"에 대한 기능(기능 중요도 )의 중요성을 평가하기 위한 기본 제공 방법이 있습니다.

  1. 얻다
    이 측정은 모델에 대한 각 기능의 상대적 기여도를 보여줍니다. 계산하기 위해 우리는 각 트리를 살펴보고 노드 분할로 이어지는 트리의 각 노드를 살펴보고 메트릭(지니 불순물, 정보 이득)에 따라 모델의 불확실성이 얼마나 감소하는지 확인합니다.
    각 기능에 대해 모든 트리에 대한 기여도가 요약됩니다.
  2. 씌우다
    각 피처에 대한 관찰 수를 표시합니다. 예를 들어, 4개의 기능과 3개의 트리가 있습니다. 트리 노드의 기능 1이 트리 1, 2 및 3에 각각 10, 5 및 2개의 관측치를 포함한다고 가정하면 이 기능에 대한 중요도는 17(10 + 5 + 2)과 같습니다.
  3. 빈도
    이 기능이 트리의 노드에서 얼마나 자주 발생하는지 보여줍니다. 즉, 각 트리의 각 기능에 대한 노드로 트리의 총 분할 수가 계산됩니다.
그들은 실제로 중요성을 올바르게 공유하지 않습니다.
5개의 막대에서 훈련된 나의 숲은 100보다 테스트에서 더 나은 결과를 제공합니다. 그러나 100에서 배울 때 처음 5는 중요한 것으로 표시되지 않고 일부 먼 것들로 표시됩니다.
100에서 훈련할 때 개별 나무와 숲의 오류는 더 낮습니다. 분명히 재훈련과 30-100 막대에 중요성을 부여하기 때문입니다. 그러나 일반적인 논리에서는 중요하지 않지만 5개 막대의 포리스트가 최상의 결과를 제공한다는 사실에 의해 명백합니다.
 
그런데 Cover가 Frequency와 어떻게 다른지 이해하지 못했습니다. 아니면 Cover의 특징 관찰은 무엇입니까? (Frequency의 기능별 분석으로 이해할 수 있습니다). 나무는 특징으로 나뉘는 것처럼 보이지만 관찰되지는 않습니다.
 
알렉세이 비아즈미킨 :

R에는 나무를 생성하기 위한 유전 알고리즘 이 있는 스크립트가 있으며, 엔트로피를 향상시키기 위해 세대가 선택됩니다. 그런 다음 최종 선택이옵니다. 최종 선택을 위해 모든 나무를 선택하고 MT5에서 별도의 추가 측정을 위해 잎을 추출합니다. 스크립트가 공개적으로 게시되지 않았으므로 자세한 설명은 없습니다. 겉보기에는 숲에서 가장 좋은 나무를 선택하는 방법이지만, 재훈련을 피하기 위한 깊이 제한이 있고, 마지막 샘플의 모든 코어에 대해 약 2일 정도 소요되며, 여기서 모든 막대가 아닌 진입 신호만, 모든 막대가 3년이면 계산은 1.5개월입니다. 계산이 끝나면 트리를 나눕니다. 나는 최고의 인구 트리의 루트 예측자가있는 열을 제거하고 모든 것을 다시 시작합니다. 그러한 절차 40에서도 아주 좋은 잎이 생성되는 것으로 나타났으므로 트리의 최고의 수학적 레이아웃은 다음과 같은 결론에 도달했습니다. 항상 가장 효과적인 것은 아니며, 하나의 정보가 표현을 방해하는 다른 하나는 나중에 동일한 CatBoost에서 사용되는 것으로 판명되었습니다. 예측자가 전체 샘플에서 무작위로 선택되어 하나의 트리를 구축할 때입니다.

코드를 대충 검토한 후 rpart 패키지에서 트리를 구축하기 위한 기능의 유전적 선택을 보았습니다. 저것들. 각 트리에는 훈련을 위한 고유한 기능 세트가 제공되었습니다. 유전학으로 인해 그러한 선택은 완전한 검색보다 빠릅니다.
그러나 나무는 마법이 아니라 rpart가 제공하는 것입니다. 나는 그것이 표준이라고 생각합니다.
 
막심 드미트리예프스키 :

먼저 모든 기능에 대해 모델을 훈련하고 오류를 저장합니다.

그런 다음 순차적으로 각 예측 변수를 무작위화(예: 정규 분포로 가정)하고 이 무작위(수정)를 포함하여 모든 기능에 대해 오류를 다시 확인하고 원본과 비교합니다. 모델을 다시 학습시킬 필요가 없습니다. 그리고 각 예측 변수를 확인하십시오. 예측 변수가 좋은 경우 전체 샘플(다른 모든 원래 예측 변수 포함)의 오류가 원본에 비해 크게 증가합니다. 오류 차이를 저장하고 이를 기반으로 최상의 기능을 필터링합니다. 그런 다음, 결국에는 생산 분야의 최고와 모델에게서만 배우십시오. 나쁜 예측 변수는 모델에 대한 노이즈입니다. 1%에 필요한 것이 무엇입니까? 보통 5~10개의 좋은 것이 남고 나머지의 중요성은 기하급수적으로 감소합니다(Zipf의 법칙)

필터를 가르쳐 보려고 했지만 조금, 별 의미가 없어 한 번에 하나의 모델에 모든 것을 넣는 것이 좋습니다

당신이 그것을 숙달한다면 예측 변수의 선택에 대해 매우 유능 하게 (나는 이미 그것을 던졌습니다)

순열에 대한 게시물을 찾았습니다.
흥미로운 옵션입니다. 시도해야합니다.
100개의 막대를 모델에 적용하고 95개의 막대를 제거하고 처음 5개의 막대를 남겨두려고 하면 결과가 50%가 될까 두렵습니다. 결국, 이 처음 5개는 부서에 거의 참여하지 않았습니다(평균적으로 노드의 5%만 해당 부서에 구축됨).
 
도서관 :
순열에 대한 게시물을 찾았습니다.
흥미로운 옵션입니다. 시도해야합니다.
100개의 막대를 모델에 적용하고 95개의 막대를 제거하고 처음 5개의 막대를 남겨두려고 하면 결과가 50%가 될까 두렵습니다. 결국, 이 처음 5개는 부서에 거의 참여하지 않았습니다(평균적으로 노드의 5%만 해당 부서에 구축됨).

나는 당신이 100개의 막대로 거기에서 무엇을 하고 있는지 모릅니다, 당신은 아마 그것을 정상적으로 적용해야 하고 모든 것이 될 것입니다

 
막심 드미트리예프스키 :

나는 당신이 100개의 막대로 거기에서 무엇을 하고 있는지 모릅니다, 당신은 아마 그것을 정상적으로 적용해야 하고 모든 것이 될 것입니다

중요하지 않은 예측 변수를 제거하는 프로세스를 자동화하고 싶습니다.)

 
막심 드미트리예프스키 :

먼저 모든 기능에 대해 모델을 훈련하고 오류를 저장합니다.

그런 다음 순차적으로 각 예측 변수를 무작위화(예: 정규 분포로 가정)하고 이 무작위(수정)를 포함하여 모든 기능에 대해 오류를 다시 확인하고 원본과 비교합니다. 모델을 다시 학습시킬 필요가 없습니다. 그리고 각 예측 변수를 확인하십시오. 예측 변수가 좋은 경우 전체 샘플(다른 모든 원래 예측 변수 포함)의 오류가 원본에 비해 크게 증가합니다. 오류 차이를 유지하고 이를 기반으로 최상의 기능을 제거합니다. 그런 다음, 결국에는 생산 분야의 최고와 모델에게서만 배우십시오. 나쁜 예측 변수는 모델에 대한 노이즈입니다. 1%에 필요한 것이 무엇입니까? 보통 5~10개의 좋은 것이 남고 나머지의 중요성은 기하급수적으로 감소합니다(Zipf의 법칙)

필터를 가르쳐 보려고 했지만 조금, 별 의미가 없어 한 번에 하나의 모델에 모든 것을 넣는 것이 좋습니다

당신이 그것을 숙달한다면 예측 변수의 선택에 대해 매우 유능 하게 (나는 이미 그것을 던졌습니다)

나는 이 방법을 다르게 이해했다.
연구 중인 예측 변수의 경우 정규 분포를 사용하여 임의의 값을 제출하지 않고 단순히 이 열의 행을 섞을 필요가 있습니다.

일반적으로 기사의 결과는 인상적입니다. 우리는 실제로 그것을 시도해야 합니다.
사유: