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

 
산산이치 포멘코 :

나는 나무와 숲의 차이점을 이해합니다. (또는 그렇게 생각합니다) 숲은 데이터에 더 많은 불확실성이 있을 때 가장 잘 사용됩니다. 숲이 투표를 통해 결정을 내리기 때문에 덜 안정적인 패턴입니다. 이는 임의의(축소로 인해 독립적인) 트리에서 발생합니다. 아니면 제가 틀렸습니까?

몰라, 나는 결과로 판단한다.

그러나 나는 "adad"옵션이 보이지 않습니다. 화면에도 없습니다. 거기에 "Forest"가 있습니다. 그렇지 않습니까?

순서대로:


나무

'rpart' 패키지는 'rpart' 기능 을 제공합니다.


후원

# 익스트림 부스트

# `xgboost' 패키지는 극단적인 그래디언트 부스트 알고리즘을 구현합니다.


SVM

# 벡터 머신을 지원합니다.

# 'kernlab' 패키지는 'ksvm' 기능을 제공합니다.


선의

# 회귀 모델

# 회귀 모델을 구축합니다.


신경망

#신경망

# nnet 패키지를 사용하여 신경망 모델을 빌드합니다.

라이브러리(nnet, 조용히=TRUE)


그건 그렇고, 나는 당신을 위해 이 일을 했습니다 - 당신은 이 모든 것을 로그에서 직접 볼 수 있습니다. 다른 버전의 딸랑이가 있는 경우 목록이 다를 수 있습니다.

해독해주셔서 감사합니다. 버전 5.1.0이 가장 최신 버전일 것입니다. 이 모든 패키지는 호출될 때 자동으로 설치되며 추가로 "Forest"가 있습니다.

산산이치 포멘코 :

내 주문에 따라 라이브러리가 수정되었습니다. MT5의 테스터가 필요했습니다. 내가 보기엔 너무 게으른 것 같아, 어쩌면 내가 그것을 청소했을지도 모른다.

Vladimir Perervenko 의 기사 보기

네트워크에 관심이 있다면 그는 이 분야에 대한 최신 정보를 가지고 있습니다. R, 고문, 사이트에 사람이 있습니다.

감사합니다. 살펴보겠습니다.

 
산산이치 포멘코 :


그렇다면 R로 파일을 자르려면 어떻게 해야 합니까? 특별한 알고리즘을 사용해야 합니까? 마지막에 어떤 일이 벌어질지 지켜보는 것도 흥미롭다.

색인별(예: [1:2000,], [2001:4000,]). 두 번째 파일이 자연 시간 순서를 위반하지 않는 것이 중요합니다.

저것들. 엑셀로 자르면 되겠죠?

 
막심 드미트리예프스키 :

글쎄,이 방법과 방법 그리고 모든 사람을 위해 마음이 원하는대로 시도하십시오 :) 가장 중요한 것은 이론을 읽는 것을 잊지 않고 솔직한 말도 안되는 소리를하지 않으며 일종의 패키지를 사용하는 것이 어렵지 않습니다. , 그들 중 많은 수가 있고 심지어 온라인에서도 - 필요한 것을 설치할 수 없습니다. 이제 데이터 과학의 붐이 일어나고 "그것"은 어디에나 있습니다.

아카이브를 분석 할 시간이없는 동안 나는 끊임없이 무언가를 괴롭 힙니다.

문제의 사실은 다른 옵션이 다른 결과를 제공한다는 것입니다. 이것이 사실이라면 예측 변수의 품질은 어떻습니까? 평균 옵션을 선택해야한다는 것이 밝혀졌습니다. 모든 곳에서 나쁘지 않은 경우 정상이며 그때서야 네트워크/나무/숲을 조정합니까?

그런데도 트리의 로직을 Expert Advisor로 옮기는 방법을 알고 싶습니다...

 
알렉세이 비아즈미킨 :

저것들. 엑셀로 자르면 되겠죠?

엑셀이 필요 없습니다. 1줄이면 끝입니다.

읽기 - Robert I. Kabakov R의 행동. R 언어로 된 데이터의 분석 및 시각화 인터넷에는 있습니다.

 
유리 아사울렌코 :

엑셀이 필요 없습니다. 1줄이면 끝입니다.

읽기 - Robert I. Kabakov R의 행동. R 언어로 된 데이터의 분석 및 시각화 인터넷에는 있습니다.

예, 모든 것을 할 수는 없습니다. 저는 R로 프로그래밍하는 방법을 배우는 목표가 없습니다. 예측자를 확인하고 일련의 규칙을 MT5로 변환하는 기능이 필요합니다. 일반적으로 이것이 한 줄이면 그냥 당신에게 쓰지 않는 이유는 무엇입니까? 그 동안 나는 즉석에서 처리했습니다.

 
산산이치 포멘코 :


당신이 미완성인 딸랑이 사진. 최소한 인접한 평가 탭으로 이동하여 결과를 확인해야 합니다.

그러나 가장 중요한 것은 소스 파일을 다른 이름을 가진 두 부분으로 나누는 것입니다(대부분 R에서 이 작업을 수행해야 할 것입니다).

첫 번째 파일 에서 6개 모델을 모두 빌드하고 평가 테스트를 확인하고 유효성을 검사합니다. 그런 다음 R 데이터 집합 필드에 두 번째 파일의 이름을 입력합니다. 그리고 다시 점수를 받습니다. 모든 점수가 일치해야 합니다!

이러한 추정값이 일치하지 않고 두 번째 파일에서 모델의 성능이 근본적으로 더 나쁘면 모델이 과적합되고 과적합이 노이즈(대상 변수와 관련이 없음) 예측 변수의 존재로 인해 발생함을 의미합니다. .


이것은 진실의 순간입니다. 특정 대상 변수와 관련된 예측 변수 집합이 있거나 없거나 둘 중 하나입니다. 그리고 이 슬픈 상황의 어떤 모델도 교정할 수 없습니다. 그런 다음 어리석은 작업은 한 쌍의 "목표 예측자"를 선택하는 데 시작됩니다. 모델은 전혀 흥미롭지 않습니다. 한 쌍을 찾으면 모델은 R의 씨앗일 뿐이며 하루에 12개를 수집하고 당신은 그들로부터 앙상블을 만들 것입니다.

좀 더 자세히 설명 부탁드립니다.

1. "평가" 탭의 "유형" 세트에서 어떤 매개변수를 선택해야 합니까?

2. 두 번째 파일의 이름을 입력하려면 어떻게 해야 합니까? 이 창이 활성화되어 있는데 파일을 선택할 수 없습니다! 그리고 "CSV 파일" - 왜 거기에서 선택할 수 있습니까?


 
알렉세이 비아즈미킨 :

문제의 사실은 다른 옵션이 다른 결과를 제공한다는 것입니다. 이것이 사실이라면 예측 변수의 품질은 어떻습니까? 평균 옵션을 선택해야한다는 것이 밝혀졌습니다. 모든 곳에서 나쁘지 않은 경우 정상이며 그때서야 네트워크/나무/숲을 조정합니까?

그런데도 트리의 로직을 Expert Advisor로 옮기는 방법을 알고 싶습니다...

무엇 때문에? mt5에는 임의의 숲 이 있으므로 작업에 맞게 조정할 수 있습니다. 오류를 관찰하고 테스트 케이스를 제공하고 결과를 관찰하십시오. 유일한 것은 변수의 중요성을 알려주지 않는다는 것입니다.

그러나 +- 알고리즘이 모든 곳에서 동일하다는 점을 감안할 때 R에서 시각화하고 실험한 다음 MT에서 훈련하고 사용할 수 있습니다.

 
알렉세이 비아즈미킨 :

일반적으로 이것이 한 줄이면 그냥 당신에게 쓰지 않는 이유는 무엇입니까? 그 동안 나는 즉석에서 처리했습니다.

Duc, 내가 묻지 않았지만 당신.) 그러나 나는 그것을 필요로하지 않습니다.)

어쨌든 당신은 R과 함께 일할 것입니다.

 
알렉세이 비아즈미킨 :

좀 더 자세히 설명 부탁드립니다.

1. "평가" 탭의 "유형" 세트에서 어떤 매개변수를 선택해야 합니까?

2. 두 번째 파일의 이름을 입력하려면 어떻게 해야 합니까? 이 창이 활성화되어 있는데 파일을 선택할 수 없습니다! 그리고 "CSV 파일" - 왜 거기에서 선택할 수 있습니까?


1. 아무거나. 이것은 모델에 대한 다른 평가이며 각각 고유한 의미가 있습니다. 래틀은 초기 데이터 준비, 모델링, 모델 평가와 같은 기계 학습에 대한 체계적인 지식을 초보자에게 제공하기 때문에 정확합니다. 세 가지 부분을 모두 최소한 기본 수준에서 마스터했다면 숫자를 연주하는 것에서 더 의미 있는 행동으로 넘어가는 것이 합리적입니다.

2. R Dataset은 파일 r입니다. 데이터 탭에서 초기 데이터가 RData 파일로 로드되었음을 의미합니다. 이것은 R 관점에서 작업 공간입니다. 이 작업 공간에는 두 개의 데이터 프레임이 준비되었습니다. 하나는 모델 학습 및 테스트용이고 다른 하나는 다음과 같습니다. 동일한 R 데이터 세트.

가장 쉬운 방법은 완성된 엑셀 파일을 업로드하고, 로그를 다운로드하고, R로 나가서 R에서 받은 데이터 프레임을 둘로 나누는 것입니다.

그렇지 않을 수 있습니다.

R 자체를 열고 Excel 파일을 로드합니다. 이것은 한 줄입니다. 그런 다음 수신된 데이터 프레임을 둘로 나눕니다.

그러나 훈련된 모델의 두 번째 파일에 대한 실행은 MANDATORY입니다.

 
막심 드미트리예프스키 :

무엇 때문에? mt5에는 임의의 포리스트가 있으므로 작업에 맞게 조정할 수 있습니다.

또는 +- 알고리즘이 모든 곳에서 동일하다는 점을 감안할 때 R에서 시각화하고 실험한 다음 MT에서 훈련하고 사용할 수 있습니다.

"Deductor Studio" 프로그램에서는 모든 것을 시각적으로 명확하게 볼 수 있습니다. 트리, 규칙 - R에서는 아직 이것을 볼 수 없으며 MT5에서는 더욱 그러하지 않을 것입니다(즉, 모든 것을 할 수 있지만 얼마나 많이 비용을 지불해야 합니다...). 그래서 임의의 포리스트를 MT5에 연결하기 위해 어떻게든 alglib 라이브러리를 사용해야 한다는 것이 밝혀졌습니다.

여기에서 R에서 C4.5 알고리즘 http://datascientist.one/algorithm-c4-5/ 에 대한 코드를 찾았습니다. MT5에서 구현하기가 매우 어렵습니까?

C45 <- function(data,x){
   result.tree <- NULL
   if ( IsEmpty(data) ) {
                node. value <- "Failure"
                result.tree <- CreateNode(node. value )
                 return (result.tree)
        }
         if ( IsEmpty(x) ){
                node. value <- GetMajorityClassValue(data,x)
                result.tree <- CreateNode(node. value )
                 return (result.tree)
        }
         if ( 1 == GetCount(x) ){
                node. value <- GetClassValue(x)
                result.tree <- CreateNode(node. value )
                 return (result.tree)
        } <br>

       gain.ratio <- GetGainRatio(data,x)<br>
     best.split <- GetBestSplit(data,x,gain.ratio)

     data.subsets <- SplitData(data,best.split)
     values <- GetAttributeValues(data.subsets,best.split)
     values.count <- GetCount(values)

     node. value <- best.split
    result.tree <- CreateNode(node. value )
         idx <- 0
     while ( idx<=values.count ){
        i       dx <- idx+ 1
                newdata <- GetAt(data.subsets,idx)
                 value <- GetAt(values,idx)
                 new .x <- RemoveAttribute(x,best.split)
                 new .child <- C45(newdata, new .x)
                AddChildNode(result.tree, new .child, value )
   }

    result.tree
        }
Алгоритм C4.5
Алгоритм C4.5
  • 2016.05.06
  • datascientist.one
Алгоритм C4.5 строит классификатор в форме дерева решений. Чтобы сделать это, ему нужно передать набор уже классифицированных данных. А что такое классификатор? Классификатор – это инструмент, применяемый в data mining, который использует классифицированные данные и на их основании пытается предсказать, к какому классу стоит отнести новые...
사유: