짧은 버전 : 의사 결정 트리를 작성할 수있는 R 패키지를 찾고 있지만 의사 결정 트리의 각 리프는 완전한 선형 회귀 모델입니다. AFAIK, 라이브러리 rpart
는 종속 변수가 각 리프에서 일정한 의사 결정 트리를 만듭니다. rpart
그러한 나무를 만들 수 있는 다른 라이브러리 (또는 내가 모르는 설정)가 있습니까?
긴 버전 : 훈련 데이터 세트를 기반으로 의사 결정 트리를 작성하는 알고리즘을 찾고 있습니다. 트리의 각 결정은 독립 변수 중 하나의 조건에 따라 학습 데이터 세트를 두 부분으로 나눕니다. 트리의 루트에는 전체 데이터 세트가 포함되며 데이터 세트의 각 항목은 정확히 하나의 리프 노드에 포함됩니다.
알고리즘은 다음과 같습니다.
- 트리의 루트 노드 인 전체 데이터 세트로 시작하십시오. 이 노드를 선택하고 이라고 부릅니다 .
- 의 데이터에 대해 선형 회귀 모델을 만듭니다 .
- 경우 의 의 선형 모델이 어떤 임계 값보다 높은 , 그 다음 우리가 완료 , 그래서 마크 5 단계에 잎과 점프로. N θ R 2 N N
- 무작위로 결정을 시도 하고 서브 노드에서 최상의 를 산출하는 결정을 선택하십시오 .
R 2
- 임의의 독립 변수 와 임의의 임계 값 .θ i
- 결정 은 의 데이터 세트 를 두 개의 새 노드 및 로 분할합니다 . N N ~ N
- 및 에 선형 회귀 모델을 작성 하고 계산하십시오 ( 및 ). ~ N R2 R ~ R
- 모든 튜플 에서 최대 . 트리에서 새로운 결정을 내리고 에는 두 개의 새로운 하위 노드 및 있습니다.( V 나 , θ 나 , R , ~ R은 ) 해요 I N ( R , ~ R ) N N ~ N
- 처리가 완료되었습니다 . 아직 처리되지 않은 새 노드 을 선택하고 2 단계로 돌아가십시오. 모든 노드가 처리되면 알고리즘이 종료됩니다.N
그러면 데이터를 더 작은 부분으로 분할하고 각 부분에 대한 선형 모델을 계산하는 의사 결정 트리가 반복적으로 작성됩니다.
3 단계는 종료 조건으로, 알고리즘이 과적 합되는 것을 방지합니다. 물론 다른 가능한 종료 조건이 있습니다.
- 트리에서 의 깊이가 이상 이면 종료
- 의 데이터 세트 가 보다 작은 경우 종료
R 패키지에 그러한 알고리즘이 있습니까?