부트스트랩 포리스트 튜닝 매개변수, 분할 수 및 예측 공식친애하는 JMP 및 커뮤니티 여러분,
(W10 엔터프라이즈, JMP Pro 15.0.0)
부트스트랩 포리스트 모델링의 조정 매개변수 중 어떤 것이 각 요소의 분할 수에 영향을 미치는지 궁금합니다. 나는 튜닝 테이블 등을 사용하여 피팅을 최대화하기 위해 피팅을 최적화하는 방법(예: 검증 세트에 대한 R^2)에 익숙합니다. 아래에 강조 표시된 6개 매개변수 중 분할 수(열 기여도)에 영향을 미칠 수 있는 매개변수는 무엇입니까?

부트스트랩 포리스트의 보고서 출력을 보면 열 기여에 "분할 수"라는 열이 있습니다. 이러한 분할을 합산하면 포리스트의 총 분할 수가 제공됩니다. 개별적으로 보면 이는 주어진 매개변수에 대해 모델이 분할된 횟수입니다.

그런 다음 데이터 테이블에 저장할 수 있는 공식의 세부사항을 조사하기 시작하면 공식에서 매개변수가 계산되는 횟수와 해당 매개변수의 분할 횟수 사이에 차이가 있을 수 있습니다.
예를 들어, 매개변수에 1000개의 분할이 있는 경우 수식에 두 번 표시되어 총 2000번 표시되어야 합니다. 하지만 항상 그런 것은 아닙니다. 튜닝 매개변수 중 하나 때문인 것으로 의심되지만 확실하지 않습니다. 그렇지 않다면 또 무엇이 이에 영향을 미칠 수 있습니까?
구체적인 예를 제공하기 위해 아래에는 피팅의 열 기여도를 2*분할 수 및 해당 매개변수가 수식에서 계산되는 횟수와 비교하는 스크린샷이 나와 있습니다. 볼 수 있듯이, 매개변수가 수식에 나타나는 횟수(예: X_1의 경우 12626)는 2*분할 횟수(X_1의 경우 12636)와 일치하지 않습니다. 때로는 가깝고 때로는 상당히 큽니다("차이" 열 참조). 또한 흥미로운 점은 차이의 합이 0이라는 것입니다. 따라서 이러한 차이를 유발하는 모든 것은 실제로 총 분할 수를 변경하지 않고 할당 방식만 변경하는 방식으로 "가중치"를 적용합니다.

나는 공식에서 매개변수 X_11이 2*분할 횟수보다 276배 더 많이 발견된다는 사실이 매우 흥미롭다고 생각합니다. 나에게 이것은 일부 분할에서 X_11을 균등하게 결정하는 것이 아니라 다른 매개변수를 결정한다는 것을 의미합니다. 그리고 총 분할 수가 일정하게 유지되는 방식으로 이 작업을 수행합니다. 분할당 샘플링된 용어 또는 최소 분할 크기와 관련이 있을 수 있습니까? 몇 가지 수동 테스트를 시도했지만 둘 중 하나가 분할 수에 어떤 영향을 미치는지 확인할 수 없었습니다.
그런데 수식을 Word에 복사하고 매개변수 X_1, X_2 등을 간단히 계산합니다. 수식의 크기와 트리 수를 고려하면 수동으로 검색하여 찾을 수 있는 방법이 없습니다. 원인이 무엇입니까? 안타깝게도 텍스트 탐색기나 JMP 내에서 이와 유사한 도구를 사용하여 공식을 평가할 수 있는 방법이 없습니다.
JMP 개발자나 커뮤니티 모델러의 피드백을 주시면 감사하겠습니다.
감사해요,
DS
Re: 부트스트랩 포리스트 튜닝 매개변수, 분할 수 및 예측 공식안녕 @바이런_JMP ,
예, 분할 횟수는 알고리즘이 특정 변수에 대해 트리를 분할하기로 선택한 횟수라는 것을 이해합니다. 열에 기록된 수식을 좀 더 자세히 살펴보면 열 기여도에 보고되는 분할 수가 항상 수식에서 X 요소가 계산되는 횟수의 정확히 1/2인 것은 아닙니다.
트리 결정은 (예를 들어) 다음과 같다고 생각할 수 있습니다.
If(누락됨(X_1) | X_1 <=32, 41, 35)
이것이 각 결정의 경우라면 X_1이 수식에 나타나는 횟수는 정확히 2*해당 요소와 관련된 분할 수일 것으로 예상할 수 있습니다.
그러나 대신 의사결정 트리가 다음과 더 유사하다면:
If(누락됨(X_1) | X_3 > 16, 20, 18)
그러면 해당 변수에 대해 트리가 분할되는 횟수가 수식에 나타나는 횟수와 다른 상황이 발생할 수 있습니다. 의사결정 트리가 구축될 때 무엇이 이를 촉진할 수 있습니까?
원본 게시물의 특정 상황에서는 X_1, X_2 및 X_7 요인이 서로 균형을 이루어 '차이' 열에 더해진 값의 합이 0이 되는 것을 볼 수 있습니다. 차이점을 합산하면 다른 모든 X 요소에 대해서도 마찬가지입니다.
따라서 이 경우 요인 X_1은 실제로 기여 열의 분할 수 열에 보고된 것보다 공식에서 5배 더 적게(차이/2) 사용됩니다. 마찬가지로 X_2와 X_7의 경우 공식에서 각각 124배 더 많이 사용되고 119배 더 적게 사용됩니다. 이를 더하면 5 + (-124) + 119 = 0이 됩니다.
유익한 정보가 누락되었을 수 있나요? 우연이라기엔 너무 '완벽'하네요, IMHO. 튜닝 프로세스의 어느 부분이 이에 대한 책임이 있는지 알 수 없습니다.
귀하의 질문에 관해서는:
1. DOE 공간 채우기 균일 옵션을 사용하여 최소 60개 실행(변경할 요인 수의 10배)으로 구성된 대규모 세트를 생성합니다. 그런 다음 DOE를 수백 번 복제하고 실행합니다. RAM을 모두 소모하지 않도록 스크립팅을 통해 수행합니다. 실행하는 데 며칠이 걸릴 수 있습니다.
2. 원본 데이터 테이블을 가져와서 훈련/테스트 데이터 세트를 80/20으로 분할합니다. 그런 다음 원본 데이터 테이블을 훈련 전용 테이블과 테스트 전용 테이블로 분할했습니다. 저는 훈련 테이블을 사용하고 데이터 세트의 약 0.18~0.25 사이에서 무작위 홀드아웃을 사용하여 모델 적합성을 검증합니다. 다시 말하지만, 조정을 위한 최적의 값을 찾고 검증 부분으로 사용할 수 있도록 이 모든 작업을 스크립팅을 통해 수행합니다. 나는 종종 정확한 80/20 훈련/검증 분할이 약간 벗어난 것(예: .79/.21)만큼 최적이 아니라는 것을 발견합니다. 검증 세트에서 좀 더 나은 R^2를 얻을 수 있는 경우가 많습니다.
감사해요,
DS
Re: 부트스트랩 포리스트 튜닝 매개변수, 분할 수 및 예측 공식이것은 매우 만족스러운 답변이 아닐 수도 있지만 분할 횟수는 변수가 분기를 분할하기에 가장 좋은 위치였던 횟수를 계산한 것일 뿐입니다.
변수를 몇 번이나 분할할 수 있는지에 대한 제어는 실제로 없습니다.
아마도 몇 가지 질문이 여러분에게 돌아올 것입니다.
1. 터닝 테이블을 어떻게 구축하고 있으며 얼마나 많은 런을 사용합니까?
2. 조정할 때 전체 데이터 세트를 기준으로 조정합니까, 아니면 임의의 하위 집합을 기준으로 조정합니까?
-하위 집합에서 데이터의 어느 부분을 사용합니까(사용하는 경우)
수식에 사용된 매개변수 이름에 대한 귀하의 관찰은 흥미로웠습니다. 그 점은 좀 살펴볼 수도 있겠네요.