2016-09-14 6 views
0

저는 목표 변수로 이익을 내고 약 100 개의 다른 예측 변수 (일부 바이너리, 일부 연속 및 일부 문자)가있는 데이터 세트를 가지고 있습니다.의사 결정 트리를 사용하여 이익과 같은 연속 변수를 극대화하십시오.

이익이 최대가되는 (그리고 선호되는 것은> 0) 버킷 (또는 엔드 노드)을 줄 수있는 R에 의사 결정 트리 패키지가 있습니까?

현재 저는 partykit 패키지의 ctree를 사용하고 있습니다. 분할 된 나무는 항상 예측 변수를 잘 분할하지만 최종 노드는 언제나 부정적인 이익을 가져옵니다.

또한 노드 끝에서 결과를 이해하는 데 어려움이 있습니다. 이들은 'N ='및 '오류 ='경향이 있습니다. 대신 '이익 ='을 얻을 수있는 방법이 있습니까? 그래서 가장 좋은 최종 노드가 무엇인지 확인할 수 있습니까?

많은 감사, 첫째

답변

0

간단한 것 : 각 터미널 노드의 인쇄 결과를 이해. 다음의 간단한 (특히 유용하지)를 고려 ctreecars의 정지 dist ANCE에 따라 달라집니다 방법 모델들이 speed :이 노드 5에서 누구의 평균 dist을 중지 speed > 1719 관찰이 있다는 것을 예를 들면 의미

library("partykit") 
ctree(dist ~ speed, data = cars) 
## 
## Model formula: 
## dist ~ speed 
## 
## Fitted party: 
## [1] root 
## | [2] speed <= 17 
## | | [3] speed <= 12: 18.200 (n = 15, err = 1176.4) 
## | | [4] speed > 12: 39.750 (n = 16, err = 3535.0) 
## | [5] speed > 17: 65.263 (n = 19, err = 9015.7) 
## 
## Number of inner nodes: 2 
## Number of terminal nodes: 3 

또는 9015.7의 제곱의 합에 해당하는 65.263이었습니다.

따라서, 목표 변수의 평균은합니다 (nerr 전에) 먼저 주어 당신이 가장 관심을 가질 것입니다. 당신이 후 평균 예측이 가장 높은 터미널 노드를 선택할 수있는 대상 변수를 극대화하기 위해.

마지막으로, 이익 극대화에 직접적으로 기여한 트리 방법을 알지 못합니다. 표준 트리 메서드는 특정 방식으로 동질성 인 터미널 노드를 찾습니다. (여기서는 대략 일정한 평균 목표 값으로).

+0

이상적으로 말하자면, 5 가지 속성의 특정 변수가 나뉘어 질 때 시나리오를 원합니다. 의사 결정 트리는 각 순열에서 수익을 합산하고 합계 이익의 차이가 가장 큰 두 개의 양동이로 변수를 나눕니다. 이 작업을 수행하는 함수가 있습니까? – Tammboy

+0

그런 다음 각 변수를 반복하여 가장 큰 이익 차별화 변수를 찾습니다. 그러면 노드 1이됩니다 ... – Tammboy

+0

신뢰할 수있는 대답을 위해보다 정확하게 공식화해야합니다. 표준 회귀 나무가 당신이하고 싶은 것과 아주 가깝습니다. 그러나 그것은 매우 다른 것일 수도 있습니다. 지금은 확실하지 않습니다. –

관련 문제