다단계 / 계층 구조 데이터의 임의 포리스트


13

나는 기계 학습, CART 기술 등을 처음 접했고, 순진한 것이 너무 명확하지 않기를 바랍니다.

Random Forest는 다단계 / 계층 적 데이터 구조를 어떻게 처리합니까 (예 : 교차 수준 상호 작용이 필요한 경우)?

즉, 여러 계층 적 수준에서 분석 단위가 포함 된 데이터 세트 ( 예 : 학교 내에 중첩 된 학생, 학생과 학교에 대한 데이터)

예를 들어, 첫 번째 수준의 개인 ( 예 : 투표 행동, 인구 통계 등의 데이터)이 두 번째 수준의 국가 (국가 수준 데이터 ( : 인구) )에 내포 된 다단계 데이터 집합을 고려 하십시오 .

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

즉 말할 수 voted응답 / 종속 변수이며, 다른 예측 / 독립 변수이다. 예 마진 약간 높은 수준 변수 (가변 (부분 의존성)의 한계 효과 이러한 종류 , population상이한 개인 수준 변수 등), 매우 흥미로운 일 수있다. 이와 비슷한 경우 glm물론 더 적합하지만 변수가 많을 때, 상호 작용 및 / 또는 결 측값 및 / 또는 매우 큰 규모의 데이터 세트 등 glm은 그다지 신뢰할 수 없습니다.

하위 질문 : Random Forest는 이러한 방식으로 이러한 유형의 데이터 구조를 명시 적으로 처리 할 수 ​​있습니까? 관계없이 사용하면 어떤 종류의 편견이 생깁니 까? Random Forest가 적절하지 않은 경우 다른 앙상블 형식 방법이 있습니까?

그룹화 된 데이터의 질문 임의 포리스트 는 아마도 비슷하지만 실제로는 대답하지 않습니다.


안녕하세요 @MikaelAndersson, 제기 한 질문에 대한 해결책을 찾았습니까? 나는 비슷한 상황에 직면하고 있으며 당신의 경험을 듣고 싶습니다. 감사.
초보자 프로그램

답변:


4

랜덤 포레스트는 잘 작동하지만 하이퍼 파라미터를 조정할 때는 특히주의해야합니다 (특히 현실적인 일반화 성능 측정을 원할 경우). 데이터에 "트위닝"이 많기 때문에 기존 OOB 오류 추정치는 매우 낙관적입니다.

적절한 튜닝 및 일반화 추정치를 얻으려면 새로운 데이터의 특성이 무엇인지 이해해야합니다. 새로운 국가에 외삽을하려면 국가별로 계층화 된 샘플링을 수행하는 몇 가지 재 샘플 기반 튜닝 (예 : k- 폴드 교차 검증)을 설정해야합니다.

또한 데이터를 임의 포리스트로 인코딩하는 방법에주의해야합니다. 이 나타납니다 country범주 형 변수입니다. 숫자로 입력하는 것은 다소 거칠지 만 희망은 없습니다 (특히 유용한 것으로 ID를 주문한 경우).


OOB 오류 추정치가 너무 낙관적 인 이유를 조금 더 설명해 주시겠습니까?
dmartin

2
그들의 낙관론은 새로운 데이터가 어떻게 보일지에 달려 있다고 생각합니다. 새 데이터가 다른 카운티에서 온 경우이 임의 포리스트는 OOB 오류가 나타내는 것처럼 성능이 저하 될 수 있습니다. 예를 들어 동일한 카운티 집합의 샘플에서 OOB 오류가 계속 발생하기 때문입니다.
Shea Parkes

3

실제로 randomForest를 미리 정의 된 클래스 계층 구조에 따라 로컬 분류 자로 실행하는 R 패키지에서 작업하고 있습니다. 패키지는 R Forge에서 'hie-ran-forest'아래에 있습니다. 패키지가 이미 작동 중이지만 크랜 테스트 (MAC의 경우) 중 하나가 실패하지만 정확히 왜 그런지 잘 모르겠습니다. 계층 구조에서 각 상위 노드에 대해 실제로 randomForest를 실행하는 것 외에도 패키지에는 예측 함수 및 성능 함수가 포함되어 있습니다. 성능 측정 중 하나는 실제로 계층 적 클래스 구조를 설명합니다.

이 패키지는 클래스 계층의 각 부모 노드에서 로컬 분류 자로 임의 포리스트를 먼저 실행하여 교차 수준 상호 작용을 해결합니다. 다음 예측 함수는 각 케이스가 각 로컬 분류 자에서 수신 한 백 오브 투표의 비율을 검색합니다. 그런 다음 두 가지 방법으로 투표 비율을 명확하게 분류 할 수 있습니다. 1. 단계적 과반수 규칙-나무 뿌리에 가장 가까운 지역 분류 자부터 시작하여 가장 높은 비율의 투표를받은이 분류 자의 자식을 선택합니다. 그런 다음 선택한 노드의 모든 하위 항목을보고 관련 지역 분류 기준에서 가장 많은 표를 얻은 하위 항목을 다시 선택하십시오. 터미널 노드에 도달 할 때까지 계속하십시오. 2.

투표 비율을 곱한 비율은 일반 무작위 포레스트가 생성 한 투표 비율과 비교할 수 있습니다.


2
패키지가 "교차 수준 상호 작용"을 해결한다는 것을 명확히 할 수 있습니까? 그렇다면 어떻게 그렇게합니까? 패키지가 존재한다고 말하는 것은 큰 대답이 아닙니다 (여기서 중요하지는 않지만 CV는 고품질 ML 정보의 영구 저장소를 빌드하려고합니다. 패키지가 존재한다는 사실은 그렇지 않습니다. 확실히 그 기준에 부합).
궁 - 분석 재개 모니카

사용자 페이지에 대한 링크가있는 사용자 이름은 여기에서 작성한 모든 게시물에 자동으로 첨부됩니다. 따라서 게시물에 서명 할 필요가 없습니다. 실제로는 서명하지 않는 것이 좋습니다. 사람들이 귀하에게 연락 할 수있게하려면 사용자 페이지에 방법 (예 : 이메일 주소)을 게시 할 수 있습니다.
gung-복직 모니카

@YoniGavish에게 감사합니다. 답변을 수정하고 해당 정보를 추가해보십시오.
gung-복직 모니카

그게 더 나은가요?
Yoni Gavish

네, 그렇게 할 것입니다, @YoniGavish, +1. 사이트에 오신 것을 환영합니다.
gung-모니 티 복원

3

단일 분류 트리에서 이러한 그룹은 다른 범주 형 변수와 동일하게 코딩됩니다. 이것은 종종 이진 코딩 또는 정수를 사용하여 수행됩니다. 둘 중 하나를 사용하는 데는 다른 주장이 있습니다. 이진 코딩을 사용하는 경우 임의 포리스트에서 특정 그룹에 대해 일부 그룹이 포함 / 제외됩니다. 따라서에 대한 표시기가있을 수 country_2있지만 그렇지 않습니다 country_3. 그룹 변수를 정수로두면 순서도 결과에 영향을 줄 수 있습니다. 그것은 무엇을 의미 하는가 country > 5country < 12? 국가를 새로운 정수로 무작위로 다시 레이블을 지정하면 어떻게 변경됩니까?

트리를 성장시키는 각 단계에서 알고리즘은 기준을 최적화하는 분할을 찾고 있습니다. 그룹간에 큰 차이가있는 경우 그룹화 변수가 중요하지만 중간 정도만 중요하고 트리를 제거하면 변수가 본질적으로 제외 될 수 있습니다.

대부분의 다른 머신 러닝 알고리즘과 마찬가지로 CART 및 임의 포리스트는 계층 적 회귀 모델에서 기대하는 방식으로 그룹 내 관측치 간의 종속성을 반드시 설명하지는 않습니다. 이 경우 이다 관찰 사이의 의존성이, 그것은 그룹화 변수를 사용하는 많은 나무의 생성을 통해 임의 숲 알고리즘에 의해 포착해야한다. 그러나 다른 변수가 더 큰 차이를 나타내면 그룹화 변수가 무시 될 수 있습니다.

귀하의 경우에는, country과는 population동일 선상 완벽하다. 모델에서 두 변수를 모두 사용하여 얻은 정보는 없습니다. 따라서 임의 포리스트 모델이 데이터에서 이러한 변수를 처리하는 방법에 대해 생각할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.