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

 
레나트 팻쿨린 :

1) 불행하게도, 당신은 질문을 불완전하게 공식화했고 "상관없다"는 미완의 짧은 정중한 대답을 받았습니다.

질문 자체에 공식화하여 "그렇게 동의한 / 관례"에 대한 답변을 얻고 싶었습니다. 그러나 던컨은 "옳은 것이 무엇인가"라는 대답에서 첫 번째로 벗어나 두 번째로 그것을 반복했다.

2) R에서 정확성에 대한 확인을 받지 못했고 다른 패키지에서 결과가 다른 이유에 대한 답변을 받지 못했습니다. "왜 다른 패키지에서는 대답이 다른가"라는 질문을 구문 분석하는 것이 더 중요하며 주제를 밝힐 수 있습니다.


3) 우리의 입장:

выражение для dgamma

(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)

for x ≥ 0 , a > 0 and s > 0


в точке 0 является неопределенным.

R은 이 점을 계산에 포함할 수 있다고 생각하지만 dgamma(0,0.5,1)의 경우처럼 무한대와 같더라도 여전히 한계값을 취합니다.

그러나 영점에서 무한대를 고려하여 확률을 계산하면 dgamma의 모든 적분은 형식적으로 무한대가 되며, 이 논리에 따르면 pgamma는 x의 모든 값에 대해 무한대와 같아야 합니다.

그러나 이것은 모든 값이 유한한 pgamma의 결과와 모순됩니다. 마치 x=0 지점에서 밀도 = 0으로 간주되는 것처럼 정확합니다.

1) 네, 자세한 답변을 받지 못했습니다. 내려놓긴 했지만.. 제 의견을 강요하진 않지만, 말다툼도 솔직히 지겹습니다. 나는 이 사람의 말이 우리의 원래 메시지와 거의 그대로 일치했다는 사실에 주의를 환기시키고 싶습니다. 극점에서 밀도를 결정하는 방법은 중요하지 않습니다. 중요한 것은 적분이 올바르게 계산된다는 것입니다.

엄밀히 말하면 점 0에서 감마 분포의 밀도가 정의되지 않음을 선언합니다. 그리고 오른쪽의 극한을 취하면 밀도는 1과 같습니다.

이에 비추어 볼 때 "R의 계산 오류"라는 진술의 공식화는 올바르지 않다고 생각합니다. 더 정확하게는, 이것은 관례의 문제입니다: 표현 0을 0의 거듭제곱과 같다고 간주하는 방법입니다. 영점에서 감마 분포의 밀도를 0으로 동일시하는 것은 일반적인 관행이 아닌 것 같습니다.

2) 정확성에 관해서는 대화조차 내가 하지 않았다. 0에서의 밀도는 정확도에 관한 것이 아닙니다. 함수의 결과로 출력하는 방법에 관한 것입니다. 발산(NaN) 또는 이를 극한 또는 0과 동일시합니다. 중요한 것은 이것이 적분 계산에 중요하지 않다는 것입니다.

3) 기사의 수정된 텍스트를 다시 읽으십시오. 그리고 나는 당신이 dgamma의 행동을 실수로 고려하지 않기로 결정한 것을 기쁘게 생각합니다.

하지만 여기 있습니다:

dgamma의 모든 적분은 형식적으로 무한대가 되며, 이 논리에 따르면 pgamma는 x의 모든 값에 대해 무한대와 같아야 합니다.

이상해, 레나트.

pgamma는 원칙적으로 무한할 수 없습니다. 적분은 위에서부터 값 1로 제한되기 때문입니다.

정규분포를 해보자. [-inf,+inf]에 정의되어 있습니다. 분포 함수 적분 = 이 전체 구간에서 1입니다. 그러나 어떻게 든 무한히 큰 지지에 대한 밀도의 합산(적분)이 무한 합을 초래하지 않는다는 것이 밝혀졌습니다. 전체 지원에 밀도가 있지만 != 0 영역이 없습니다.

그리고 dgmamma의 경우 밀도 == inf인 점 x ==0 (그런데 이 시점에서 밀도가 1이 되는 경우를 무시하지 않았으며 이로부터 통합에 대해 어떤 결론을 내립니까 .. .) 얼마나 자주 발생합니까? 나는 아니라고 말할 것이다. 임의의 지점에서 임의의 변수를 실현할 확률 == 임의의 연속 분포에서 0... 모든 통계학자는 이것을 알고 있습니다. 밀도는 x 주변의 극소 영역에 대한 확률의 근사치로 간주됩니다.

이 사실로부터 극단점에서의 밀도가 아무리 크더라도 전체 ingral에 대한 영향 = 0입니다. 생각하십시오...

나는 당신이 그것을 과장했다고 생각합니다. ) 그러나 나는 논쟁하고 이해하지 않을 것입니다. 언젠가 내가 이것을 깨닫고 던컨 대신 나 자신이 대답할 것입니다. )

고맙습니다.

 

R은 "복잡한 계산을 간단하고 바로 지금"해야 하는 실제 필요성에서 우리가 MetaTrader/MQL에서 얼마나 멀리 떨어져 있는지에 대해 제 눈을 열어준 놀라운 시스템입니다.

우리(C++ 개발자)는 "모든 것을 스스로 할 수 있고 우리는 낮은 수준의 기본 및 계산 속도를 제공합니다"라는 접근 방식을 가지고 있습니다. 우리는 성능에 대해 열광적이며 성공했습니다. 64비트의 MQL5는 훌륭합니다.

개인적으로 R과 함께 앉았을 때 한 줄에 가능한 많은 강력한 기능이 필요하고 일반적으로 연구를 수행할 수 있는 기회를 제공한다는 것을 깨달았습니다.

따라서 우리는 급선회를 하여 MetaTrader 5를 업그레이드하기 시작했습니다.

  • 이전에 재작성된 Alglib 및 Fuzzy 수학 라이브러리를 표준 배포판에 포함하고 단위 테스트로 다룹니다.
  • R에서 통계 기능의 유사체를 개발하고 연구를 수행하고 테스트를 수행했습니다. 작업은 여전히 진행 중이며 라이브러리는 확장 중입니다.
  • R의 플롯과 유사한 그래픽 라이브러리 Graphics의 첫 번째 베타 버전을 개발했습니다. 빠른 출력을 위해 한 줄 함수를 추가했습니다.
  • 터미널의 출력 창에서 인터페이스를 테이블 형식의 데이터로 작동할 수 있도록 변경하기 시작했습니다. 출력 방향 변경, 불필요한 열 비활성화, 전문가 출력 창에서 글꼴을 고정 폭으로 변경
  • 구조를 포함한 배열을 자동으로 인쇄하는 강력한 ArrayPrint 기능 추가
  • 디스크에 어레이를 빠르게 쓰거나 읽기 위한 FileLoadFileSave 기능 추가


물론 우리는 여정의 시작 단계에 있지만 힘을 적용하기 위한 올바른 벡터는 이미 명확합니다.

 

통합할 때 7단계는 물론 충분하지 않습니다. 다음은 1000입니다.

> pgamma( 0.8 , 0.5 , 1 )
[ 1 ] 0.7940968

#а теперь велосипедное интегрирование:
> integration_steps <- seq( 0 , 0.8 , length. out = 1001 )
> integration_result <- 0
> for (i in 2 :length(integration_steps)){
+ integration_result <- integration_result + dgamma(integration_steps[i], 0.5 , 1 ) * (integration_steps[i] - integration_steps[i- 1 ])
+ }
> integration_result
[ 1 ] 0.7709089
#погрешность ~ 0.02 , но тут способ уже проще некуда, и так сойдёт :) . Бесконечность при x= 0 не мешает.
 
알렉세이 버나코프 :

1) 네, 자세한 답변을 받지 못했습니다. 내려놓긴 했지만.. 내 의견을 강요하진 않지만, 말다툼도 솔직히 지겹다. 이 사람의 말이 우리의 원래 메시지와 거의 그대로 일치했다는 사실에 주의를 기울이고 싶습니다.

자세한 내용이나 확인이 없는 정중한 답변이었습니다. 그리고 그 대답이 Wolfram Alpha와 Matlab과 맞지 않아 문제가 되었습니다.

옆으로 갈 필요가 없습니다. 근본 문제가 명확하게 식별되었습니다.

 
트레이더 박사 :


#погрешность ~ 0.02 , но тут способ уже велосипедней некуда, и так сойдёт :) . Бесконечность при x= 0 не мешает.

경계점을 포함하여 0에서 1까지 함수 1/x를 적분하고 분석 계산 결과와 비교합니다.

Wolfram은 x=0에서의 특이성 때문에 적분이 수렴하지 않을 것이라고 말합니다.

 
양자 :

경계점을 포함하여 0에서 1까지 함수 1/x를 적분하고 분석 계산 결과와 비교합니다.

동일한 코드로 - 7.485471. R은 76.3342로 가서 더 이상 진행하지 않겠다고 했고, 이는 정확한 결과가 아니며 잘못된 내용입니다. Wolfram은 즉시 결과가 수렴하지 않고 대답하지 않았다고 말했습니다.
정답은 얼마인지 모르겠다?

적분 1/x가 발견되지 않았기 때문에 적분 dgamma(x)도 발견되지 않을 것이라고 말하지 마십시오. 이 두 함수는 x -> 0+ 로 무한대 경향이 있지만 다른 속도로 경향이 있으며 이 속도는 적분을 찾을 수 있는지 여부에 영향을 줍니다. 아니면 안

 

-log(x) 기능이 있습니다. x->0에서 무한대가 되는 경향이 있습니다. 마이너스 없이 할 수 있는데, 그러면 내려가는 경향이 있어서 저에게는 너무 불편합니다.

그리고 그녀는 0에서 1까지의 적분을 가지고 있습니다. 무한대는 간섭하지 않습니다.


 
레나트 파트훌린 :

R은 "복잡한 계산을 간단하고 바로 지금"해야 하는 실제 필요성에서 우리가 MetaTrader/MQL에서 얼마나 멀리 떨어져 있는지에 대해 제 눈을 열어준 놀라운 시스템입니다.

...

따라서 우리는 급선회를 하고 MetaTrader 5를 업그레이드하기 시작했습니다.

  • 이전에 재작성된 Alglib 및 Fuzzy 수학 라이브러리를 표준 배포판에 포함하고 단위 테스트로 다룹니다.
  • R에서 통계 기능의 유사체를 개발하고 연구를 수행하고 테스트를 수행했습니다. 작업은 여전히 진행 중이며 라이브러리는 확장 중입니다.
  • R의 플롯과 유사한 그래픽 라이브러리 Graphics의 첫 번째 베타 버전을 개발했습니다. 빠른 출력을 위해 한 줄 함수를 추가했습니다.
  • 터미널의 출력 창에서 인터페이스를 테이블 형식의 데이터로 작동할 수 있도록 변경하기 시작했습니다. 출력 방향 변경, 불필요한 열 비활성화, 전문가 출력 창에서 글꼴을 고정 폭으로 변경
  • 구조를 포함한 배열을 자동으로 인쇄하는 강력한 ArrayPrint 기능 추가
  • 디스크에 어레이를 빠르게 쓰거나 읽기 위한 FileLoadFileSave 기능 추가


물론 우리는 여정의 시작 단계에 있지만 힘을 적용하기 위한 올바른 벡터는 이미 명확합니다.

다른 많은 PL과 마찬가지로 R은 배열 형태로 데이터를 처리하는 기능을 분명히 제공한다는 사실 때문에 MQL에 비해 머신 러닝에 훨씬 더 편리합니다. 사실 머신 러닝을 위한 선택은 2차원 데이터 배열인 경우가 대부분이므로 배열을 사용하려면 다음과 같은 기능이 필요합니다.

  1. 행과 열을 다른 배열에 더 작은 배열로 삽입
  2. 배열의 행과 열을 더 작은 배열로 바꾸기
  3. 배열에서 행과 열 제거(예: 샘플에서 "이상치"가 분명한 예 또는 중요하지 않은 예측 변수 제거)
  4. 배열을 여러 부분으로 나눕니다. 결과적으로 원래 배열에서 두 개 이상의 배열을 얻습니다. 이 배열은 해당 부분입니다(샘플을 훈련 및 테스트 부분으로 또는 더 많은 부분으로 나누는 데 필요합니다(예: Wallking Forward의 경우)).
  5. 균일한 분포의 배열에서 행과 열의 무작위 혼합(샘플의 특정 예는 다른 부분으로, 바람직하게는 이러한 부분에 고르게 분포되어야 함).
  6. 개별 행 또는 열의 데이터를 처리하기 위한 다양한 기능(예: 행 또는 열의 산술 평균, 분산 계산 또는 후속 정규화를 위해 행에서 최대값 또는 최소값 찾기).
  7. 등. 등.

한편, 배열 형태의 샘플을 처리하는 데 필요한 위의 기능은 MQL에서 구현되지 않으며, 기계 학습 알고리즘 개발자의 상당 부분은 이 모든 것이 오랫동안 사용 가능했던 다른 PL을 선호할 것입니다. 또는 그는 AlgLib 라이브러리의 소박한 MLP(지난 세기의 60년대 알고리즘)를 사용할 것입니다. 이 라이브러리에서 내 기억이 도움이 되면 편의상 2차원 배열이 1차원으로 표시됩니다.

물론 랜덤 분포의 밀도 함수도 필요한 함수입니다. 그러나 이러한 기능은 기계 학습 작업에 항상 필요한 것은 아니며 일부에서는 전혀 사용되지 않습니다. 그러나 다차원 배열과 마찬가지로 선택 작업은 머신 러닝 알고리즘의 구현이 어떤 작업 없이 수행할 수 없는 작업입니다. 물론 사소한 XOR에서 알려진 정규화된 데이터를 기억하기 위해 그리드를 훈련하는 작업이 아니라면 말입니다.

 
레나트 파트훌린 :

R은 "복잡한 계산을 간단하고 바로 지금"해야 하는 실제 필요성에서 우리가 MetaTrader/MQL에서 얼마나 멀리 떨어져 있는지에 대해 제 눈을 열어준 놀라운 시스템입니다.

우리(C++ 개발자)는 "모든 것을 스스로 할 수 있고 우리는 낮은 수준의 기본 및 계산 속도를 제공합니다"라는 접근 방식을 가지고 있습니다. 우리는 성능에 대해 열광적이며 성공했습니다. 64비트의 MQL5는 훌륭합니다.

개인적으로 R과 함께 앉았을 때 한 줄에 가능한 많은 강력한 기능이 필요하고 일반적으로 연구를 수행할 수 있는 기회를 제공한다는 것을 깨달았습니다.

따라서 우리는 급선회를 하고 MetaTrader 5를 업그레이드하기 시작했습니다.

  • 이전에 재작성된 Alglib 및 Fuzzy 수학 라이브러리를 표준 배포판에 포함하고 단위 테스트로 다룹니다.
  • R에서 통계 기능의 유사체를 개발하고 연구를 수행하고 테스트를 수행했습니다. 작업은 여전히 진행 중이며 라이브러리는 확장 중입니다.
  • R의 플롯과 유사한 그래픽 라이브러리 Graphics의 첫 번째 베타 버전을 개발했습니다. 빠른 출력을 위해 한 줄 함수를 추가했습니다.
  • 터미널의 출력 창에서 인터페이스를 테이블 형식의 데이터로 작동할 수 있도록 변경하기 시작했습니다. 출력 방향 변경, 불필요한 열 비활성화, 전문가 출력 창에서 글꼴을 고정 폭으로 변경
  • 구조를 포함한 배열을 자동으로 인쇄하는 강력한 ArrayPrint 기능 추가
  • 디스크에 어레이를 빠르게 쓰거나 읽기 위한 FileLoadFileSave 기능 추가


물론 우리는 여정의 시작 단계에 있지만 힘을 적용하기 위한 올바른 벡터는 이미 명확합니다.

이것은 균형 잡힌 놀랍도록 객관적인 R 점수입니다.

토론의 건설적인 부분은 헛되지 않았습니다. R 사용자의 의견과 제안에 귀를 기울이고 플랫폼을 개선하는 데에도 관심이 있습니다.

물론 당신은 여행의 시작 단계에 있지만 어쨌든 R의 "예방 접종"은 MCL을 강화할 것입니다.

당신의 노력에 행운을 빕니다.

 

Burnakov가 말한 관습에 관해서.

완전히 다른 세 가지 경우를 살펴보겠습니다.

1. 0과 같은 상수로 나눕니다.

R에서 우리는 결과를 가지고 있습니다

> 1 / 0
[ 1 ] Inf

이것이 올바른 결과입니까?

인터프리터의 경우 이 결과가 올바른 것으로 간주되어야 합니다. 어떤 이유로든 R 환경을 중지할 수 없기 때문입니다.

컴파일러에 대한 질문이 있습니다. 그리고 예외적인 상황의 발생을 고려하는 것이 옳습니다. 프로그램의 실행이 중단되고 제어가 이 예외적인 상황의 처리로 넘어갑니다. 그렇지 않으면 충돌합니다.

얼마나 다른지 봅시다!

2. 0과 같은 변수로 나눕니다.

> a<- 0
> 1 /a
[ 1 ] Inf

엄밀히 말하면 이 옵션은 이전 옵션과 다릅니다.

함수 1/a는 a=0을 제외하고 모든 곳에서 연속입니다. 이 지점에서 왼쪽의 한계 = -Inf, 오른쪽의 한계 = +Inf.

R은 이것을 이해하지 못하지만, 마이너스 무한대와 플러스 무한대 사이의 차이는 프로그램 코드가 아니라 수학에서 의미가 있기 때문에 그대로 사용할 수 있습니다.


3. 0이 되는 경향이 있는 두 개의 극소량의 나눗셈

> sin (a)/a
[ 1 ] NaN

NaN의 의미는 나에게 전혀 설명이 없습니다. 그러나 항목 2가 주어지면 R이 한계를 그 자체로 이해하지 못한다는 것이 매우 분명합니다.

이것이 프로그래밍 시스템으로서의 R의 버그입니까? 모르겠어. 아마도 R 문서에서 그러한 뉘앙스에 대해 알리는 것이 필요할 것입니다. 그러나 현재 약 130,000개의 기능이 있는 분산 개발로 이것이 어떻게 구현될 수 있습니까? 그게 필요 할까?

지금까지 논의된 내용의 의미에서 다음은 무엇입니까?

결정은 해변에서 이루어집니다.

1. 우리는 R을 취하고 어리석게도 코드를 MKL로 전송합니다. 동시에 다른 R 기능의 위 옵션이 다른 해석을 가질 수 있음을 알고 있습니다.

2. 우리는 내가 나열한 경우에 어떤 값이 허용되는지에 대한 합의를 선언합니다(목록이 완전하지 않을 수 있음). 우리는 R 코드를 주의 깊게 확인하고 설정과 일치하지 않는 경우 설정된 계약에 따라 수정하여 R에서 MKL로 이식합니다. 동시에 개발의 중앙 집중화로 인해 채택된 계약을 일관되게 이행하고 이러한 의미에서 더 나은 시스템을 보유하고 있습니다.