XGBoost 트리 '시작 기능 중단'

Aug 21 2020

저는 XGBoost 알고리즘을 배우는 데 상당히 익숙하며 알고리즘이 먼저 트리를 깨뜨릴 기능을 어떻게 아는지에 대해 질문했습니다.

내 이해는 다음과 같습니다 (틀린 경우 수정하십시오).

각 나무는 단일 잎으로 시작하고 모든 잔차는 해당 잎으로 이동합니다. 그런 다음 유사성 점수를 계산하고 일부 기능 특성간에 분할하려고합니다. 예를 들어, 하나의 기능인 높이 만 있다고 가정합니다. 각각의 x 값이 높이라고하면 잔차를 나눌 수 있습니다.$180cm$ 또는 높이 < $180cm$. 그런 다음 새 잎에 대한 유사성 점수와 이득을 계산하고 나무 아래로 계속 진행하십시오.

내 질문은 이제 키, 나이, 체중, 교육 등과 같은 두 가지 이상의 기능이 있다고 말합니다. 알고리즘은 초기 잔차를 어디에서 깨뜨릴 지 어떻게 알 수 있습니까? 가능한 모든 기능에 대해 계산하고 최상의 이득을 찾습니까? 대용량 데이터 세트가 모든 기능을 통과 한 다음 어느 정도 임계 값에서 깨뜨리고 비교하는 데 오랜 시간이 걸릴 것이라고 상상할 수 있습니다.

아니면 임의의 기능에서 시작하여 임의의 숲처럼 내려가나요? 저는 알고리즘 내에 트리 당 기능의 백분율을 설정할 수있는 매개 변수가 있다는 것을 알고 있으므로이 백분율을 지정하면 내 질문에 추가하여 기능을 선택하는 방법과 해당 기능을 선택한 후에는 하나는 잔차의 초기 잎을 끊기 위해 선택합니다.

편집 : 알고리즘이 처음 출판 된 논문을 읽으려고했지만 개념화하고 이해하기가 너무 어렵다는 것을 알았습니다.

답변

1 CarlosMougan Aug 21 2020 at 13:43

각 나무는 단일 잎으로 시작하고 모든 잔차는 해당 잎으로 이동합니다. 그런 다음 유사성 점수를 계산하고 일부 기능 특성간에 분할을 시도합니다. 예를 들어, 우리는 높이라는 하나의 특징 만 가지고 있다고 가정합니다. 각각의 x- 값이 height> 180𝑐𝑚 또는 height <180𝑐𝑚이면 잔차를 나눌 수 있습니다. 그런 다음 새 잎에 대한 유사성 점수와 이득을 계산하고 나무 아래로 계속 진행하십시오.

  • 여기서는 의사 결정 트리를 설명하는 것 같습니다. 이 튜토리얼을 보고 좀 더 이해하세요

내 질문은 이제 키, 나이, 체중, 교육 등과 같은 두 가지 이상의 기능이 있다고 말합니다. 알고리즘은 초기 잔차를 어디에서 깨뜨릴 지 어떻게 알 수 있습니까? 가능한 모든 기능에 대해 계산하고 최상의 이득을 찾습니까? 큰 데이터 세트가 모든 기능을 통과 한 다음 어느 정도 임계 값에서 깨뜨리고 비교하는 데 시간이 오래 걸릴 것이라고 상상할 수 있습니다.

  • 다시 의사 결정 트리와 그 복잡성에 대해 이야기하고 있지만 큰 데이터 세트의 경우 계산 비용이 너무 많이 듭니다. 이를 피하기 위해 샘플링, 기능 선택 또는 양자화 와 같은 몇 가지 전략이 사용됩니다.

아니면 임의의 기능에서 시작하여 임의의 숲처럼 내려가나요? 저는 알고리즘 내에 트리 당 기능의 백분율을 설정할 수있는 매개 변수가 있다는 것을 알고 있으므로이 백분율을 지정하면 내 질문에 추가하여 기능을 선택하는 방법과 해당 기능을 선택한 후에는 하나는 잔차의 초기 잎을 끊기 위해 선택합니다.

  • 랜덤 포레스트는 트리 분할마다 무작위 기능 선택을 수행합니다. 나무는 탐욕스럽게 자라므로 가능한 모든 분할을 시도하고 최선을 선택합니다. 원본 논문이 너무 어려웠다면 랜덤 포레스트에 대한이 튜토리얼을 따라 해보세요