JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?저는 수년간 다양한 데이터 세트(연속형 및 명목형 반응 변수 모두)에 부트스트랩 포레스트를 사용해 왔으며, 해당 알고리즘의 설정을 전반적으로 이해하고 있습니다. 보통 기본값을 사용합니다. 제가 이해하는 랜덤(부트스트랩) 포레스트는 각 트리가 무작위로 선택된 요인과 무작위로 선택된 관측치(복원가능)를 사용하여 실행된다는 것입니다. 과거에 개별 트리를 살펴보면 변수가 몇 개만 사용하고 트리가 매우 희소한 트리를 가진 트리가 있는 반면, 훨씬 더 복잡한 트리도 있었습니다. 저는 강의할 때 이를 활용하여 개별 트리가 종종 무의미한 경우가 있음을 보여주었습니다. 좋은 예측을 생성하는 것은 평균화입니다.
하지만 JMP Pro 18에서 부트스트랩 포레스트를 실행하면 제가 사용하는 모든 데이터 세트에 수백 개의 분할을 가진 트리가 모두 표시됩니다. 예전에는 분할이 10개 미만인 트리가 몇 개 있었지만, 이제는 단순한 트리가 하나도 없습니다. 모델 구현 방식이 바뀌었나요?
예측 모델링 및 머신 러닝Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?안녕하세요 @dlehman1
Bootstrap Forest 플랫폼은 부트스트랩 표본(복원 포함)에 맞춰진 여러 의사결정 트리를 평균화하여 앙상블 모델을 구축합니다. 각 트리의 각 분할은 부트스트랩 포레스트 에서 추출한 예측 변수의 무작위 부분집합을 고려합니다.
훈련 샘플 선택과 기능 하위 집합 선택에서 이러한 무작위성을 적용하면 약간 다른 훈련 데이터를 기반으로 여러 개의 독립적인 트리를 생성하여 과적합 위험을 줄이고, 정확도와 노이즈에 대한 견고성을 개선하며, 각 트리의 각 분할에서 하위 집합 기능 선택을 통해 누락된 값, 이상치 및 상관된 기능/공선성을 처리할 수 있습니다.
원래 질문과 관련하여, 제 컴퓨터에 JMP 17이 더 이상 설치되어 있지 않아 결과를 비교할 수 없습니다. Bootstrap Forest 실행 시 사용되는 기본 하이퍼파라미터에 대한 제이엠피 17 과 제이엠피 18 설명서를 보면 기본 설정에는 차이가 없어 보입니다.
개별 트리가 너무 복잡해 보이면 일부 기본 하이퍼매개변수를 수정할 수 있습니다.
- 트리당 최소 분할 : 기본적으로 10으로 설정되어 있지만, 데이터 세트가 작을 때는 항상 이 값을 2로 줄이는 경향이 있습니다. 트리당 최소 분할 값이 크면 개별 트리가 복잡해지는 경향이 있는데, 이는 유익하지 않을 수 있으며 과대적합될 가능성이 있습니다.
- 트리당 최대 분할 수 : 기본적으로 2000개이지만, 개별 트리당 최대 분할 수가 2000개라는 것은 너무 많은 수입니다(앞서 언급한 것과 유사한 문제가 발생할 수 있습니다). 저는 데이터셋 크기와 작업의 복잡성에 따라 이 값을 100~1000 정도로 줄이는 경향이 있습니다.
- 최소 크기 분할 : 기본적으로 5(후보 분할을 위한 최소 샘플 수)로 설정되어 있지만, 작은 데이터 세트에서는 관련이 없을 수 있습니다(과적합의 위험이 높아질 수 있지만 이 숫자를 줄일 수도 있음). 반면 더 큰 데이터 세트에서는 각 개별 트리의 견고성을 높이기 위해 이 값을 늘릴 수 있습니다.
- 조기 중단 : 검증 세트를 사용한 경우 이 옵션을 선택해야 합니다. 이렇게 하면 새 트리를 생성해도 검증 지표가 개선되지 않으면 트리 생성이 중지됩니다.
질문에 더 정확하고 확실한 답변을 드리지 못해 죄송합니다. 차이점을 보여주는 스크린샷이나 데이터 세트 등이 있으신가요? 디버깅에 도움이 될 수 있을 것 같습니다.
최상의,
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?설명하신 내용은 제가 정확히 이해하고 있는 부분이며, 튜닝 매개변수가 구축되는 트리에 어떤 영향을 미치는지 잘 알고 있습니다. 이전 예시는 찾을 수 없지만, 개별 트리가 의미가 없다는 것을 수업에서 보여준 적이 있습니다. 독립적인 트리의 평균화가 부트스트랩 포레스트를 좋은 예측 변수로 만드는 것입니다. 하지만 설명에서 결과 트리와 상충되는 부분은 "각 트리의 각 분할은 예측 변수의 무작위 부분 집합을 고려한다"는 부분입니다. 각 트리의 예측 변수는 무작위 선택뿐만 아니라 선택되는 개수에 따라 다를 것으로 예상합니다. 이는 부트스트랩 포레스트에서 얻었던 결과와 일치하는 것 같습니다. 어떤 트리는 예측 변수를 2개, 어떤 트리는 10개를 사용했습니다. 이제 모든 트리가 동일한 분할 개수를 갖는 것으로 보입니다(그리고 각 트리에서 유사한 개수의 예측 변수를 사용합니다). 그리고 제가 살펴본 모든 데이터 세트(약 1만~10만 행)에서 분할 개수는 수백 개 정도입니다. 예전에는 갈라짐이 몇 개밖에 없는 나무가 있었는데, 요즘은 그런 나무가 없네요. 그래서 질문드립니다.
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?안녕하세요 @dlehman1 ,
저는 Diamonds Data.jmp(회귀 작업)와 Mushroom.jmp(분류 작업)의 두 가지 샘플 데이터 세트를 사용해보았습니다.
회귀 문제에서는 저도 같은 느낌을 받았습니다. 하이퍼파라미터를 사용하더라도 개별 트리가 상당히 복잡했습니다. 하지만 분류 문제에서는 다양한 깊이와 복잡도를 가진 더 간단하고 만족스러운 개별 트리를 얻었습니다.

따라서 이 질문은 JMP 버전 간에 부트스트랩 포레스트 알고리즘이 변경될 가능성에 대한 질문에 직접적으로 답하는 것은 아닙니다(이 질문에 대한 가장 좋은 답변은 JMP 기술 담당자( @마크_베일리 )에게 달려 있을 수 있습니다). 하지만 저는 개별 트리의 복잡성은 작업에 필요한 정밀도(매우 많은 수의 클래스에 해당하는 회귀 대 분류)와 사용 가능한 데이터(양과 질)에 연결되어 있다고 생각합니다.
이 답변이 여전히 도움이 되기를 바랍니다.
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?다른 예시를 첨부했습니다. 버섯 데이터 세트와 크기가 비슷하고, 분류 모델이 유사하며, 변수 개수도 비슷합니다(단, 연속형 요인이 몇 개 있는 반면 버섯 요인은 모두 명목형입니다). 부트스트랩 숲의 트리는 모두 수백 개의 분할을 가지고 있습니다. 아직도 이해가 안 갑니다.
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?저는 이 플랫폼을 직접 지원하지 않으므로, 지금 당장 설명해 드리거나 도움을 드릴 수 없습니다. 또한 현재 JMP 19의 새로운 플랫폼과 기능 개발을 완료하는 데 전념하고 있으므로, JMP 지원팀( support@jmp.com )에 문의하시는 것이 가장 빠른 해결책이 될 것으로 생각합니다. 의견이 있으시면 여기에 답장해 주시기 바랍니다.
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?안녕하세요 여러분,
저희 테스트 결과, 현재까지 JMP 17과 18 버전 간에 방법론적 차이가 있다는 증거는 발견되지 않았습니다. 현재 발생하는 동작과 관련하여 추가 질문이나 우려 사항이 있으시면 support@jmp.com 으로 문의해 주시기 바랍니다. 가능하다면 트리 분할 동작이 예상과 어떻게 다른지 보여주는 예시를 첨부해 주시면 감사하겠습니다. 계속해서 테스트하고 추가 조사를 진행하겠습니다.
-JMP 기술 지원
Re: JMP Pro18에서 부트스트랩 포레스트가 변경되었나요?JMP 지원이 다시 들어왔습니다! 다른 결과가 나온 이유는 다음과 같습니다.
"분할당 샘플링된 용어"에 대한 "이전" 기본값(16 이전)은 floor(nX/4)였으며, 여기서 nX는 입력된 X 변수의 개수입니다.
JMP 17에서 JMP 18로 동작 방식이 바뀐 줄 알았는데, 더 이전 버전에서도 그런 현상이 나타나는 것 같습니다. 제 예시에서는 분할당 샘플링된 항의 기본값이 1인 반면, JMP 18(그리고 17, 16, 15도 마찬가지인 듯)에서는 기본값이 5라는 사실을 미처 알아채지 못했습니다. 이것이 차이를 설명해줍니다.