의사 결정 트리 : 잎사귀 (가장 우선) 및 수준별 나무 통과


14

문제 1 :

나는 나무가 확장되는 방식에 관한 LightGBM설명으로 혼란스러워합니다 .

그들은 말한다 :

대부분의 의사 결정 트리 학습 알고리즘은 다음 이미지와 같이 수준별로 심도별로 트리를 확장합니다.

여기에 이미지 설명을 입력하십시오

질문 1 : 어떤 "가장 많은"알고리즘이 이런 식으로 구현됩니까? 내가 아는 한 C4.5와 CART는 DFS를 사용합니다. XGBoost는 BFS를 사용합니다. 의사 결정 트리에 BFS를 사용하는 다른 알고리즘 또는 패키지는 무엇입니까?

문제 2 :

LightGBM 상태 :

LightGBM은 나무를 잎 방향으로 자라며 (최고 우선), 최대 델타 손실이있는 잎을 선택하여 자랍니다. 동일한 리프를 성장 시키면 리프 방식 알고리즘은 레벨 방식 알고리즘보다 손실을 줄일 수 있습니다.

여기에 이미지 설명을 입력하십시오

질문 2 : 수준별 성장 나무가 모든 잎에 대해 동일한 깊이를 가질 것이라고 말하는 것이 맞습니까?

질문 3 : 질문 2가 맞지 않으면 수평과 잎이 자라는 나무는 순회가 끝날 때 똑같이 보입니다. 올바른 진술입니까?

질문 4 : 질문 3이 맞다면, "리프 방식 알고리즘이 레벨 방식 알고리즘보다 더 많은 손실을 줄일 수있는 방법"은 무엇입니까? 정리 후 알고리즘과 관련이 있습니까?

답변:


11

전체 나무를 키우면 가장 먼저 (잎과), 깊이 (와)와 같은 나무가됩니다. 차이점은 트리가 확장 된 순서 입니다. 일반적으로 나무를 심도까지 자라지 않기 때문에 순서가 중요합니다. 조기 중지 기준과 가지 치기 방법을 적용하면 나무가 매우 다를 수 있습니다. 리프 와이즈는 특정 분기에 따른 손실뿐만 아니라 글로벌 손실에 대한 기여도에 따라 분할을 선택하기 때문에 종종 (항상 그런 것은 아님) 오류 수준이 낮은 트리를 레벨보다 "빠른"학습합니다. 즉, 적은 수의 노드의 경우, 리프 단위는 아마도 레벨 단위보다 성능이 뛰어납니다. 더 많은 노드를 추가하면 중지 또는 제거하지 않고 문자 그대로 동일한 트리를 결국 빌드하므로 동일한 성능으로 수렴됩니다.

참고:

Shi H. (2007). 최고의 의사 결정 트리 학습 (논문, 과학 석사 (MSc)). 와이 카토 대학교, 해밀턴, 뉴질랜드. https://hdl.handle.net/10289/2317 에서 검색 함


편집 : 첫 번째 질문과 관련하여 C4.5와 CART는 모두 첫 번째 질문이 아니라 깊이 우선 예제입니다. 위의 참고 자료와 관련된 내용은 다음과 같습니다.

1.2.1 표준 결정 트리

의사 결정 트리의 하향식 유도를위한 C4.5 (Quinlan, 1993) 및 CART (Breiman et al., 1984)와 같은 표준 알고리즘은 분할 및 정복 전략을 사용하여 각 단계에서 깊이 우선 순서로 노드를 확장합니다. 일반적으로 의사 결정 트리의 각 노드에서 테스트에는 단일 속성 만 포함되며 속성 값은 상수와 비교됩니다. 표준 의사 결정 트리의 기본 아이디어는 먼저 루트 노드에 배치 할 속성을 선택하고 일부 기준 (예 : 정보 또는 Gini 인덱스)을 기반으로이 속성에 대한 분기를 만드는 것입니다. 그런 다음 교육 인스턴스를 루트 노드에서 확장되는 각 분기마다 하나씩 하위 집합으로 분할합니다. 부분 집합의 수는 분기 수와 같습니다. 그런 다음 실제로 도달 한 인스턴스 만 사용하여 선택한 분기에 대해이 단계를 반복합니다. 고정 순서는 노드를 확장하는 데 사용됩니다 (일반적으로 왼쪽에서 오른쪽으로). 노드의 모든 인스턴스가 항상 동일한 클래스 레이블 (순수 노드라고 함)을 갖는 경우 분할이 중지되고 노드가 터미널 노드로 만들어집니다. 이 구성 프로세스는 모든 노드가 순수해질 때까지 계속됩니다. 그런 다음 과적 합을 줄이기 위해 가지 치기 프로세스가 이어집니다 (섹션 1.3 참조).

1.2.2 최고의 의사 결정 트리

부스팅 알고리즘 (Friedman et al., 2000)과 관련해서 만 평가 된 것으로 보이는 또 다른 가능성은 고정 순서 대신 노드를 가장 우선 순위로 확장하는 것입니다. 이 방법은 각 단계에서 "최상의"분할 노드를 트리에 추가합니다. "최상의"노드는 분할 가능한 모든 노드 (즉, 터미널 노드로 표시되지 않음) 사이의 불순물을 최대한 줄이는 노드입니다. 이로 인해 표준 깊이 우선 확장과 동일한 완전히 자란 트리가 생성되지만 교차 유효성 검사를 사용하여 확장 수를 선택하는 새로운 트리 정리 방법을 조사 할 수 있습니다. 가지 치기 전과 가지 치기는이 방법으로 수행 할 수 있으며,이 두 가지를 공정하게 비교할 수 있습니다 (섹션 1.3 참조).

최우선 의사 결정 트리는 표준 심도 우선 의사 결정 트리와 유사한 분할 및 정복 방식으로 구성됩니다. 최상의 트리 구성 방법에 대한 기본 아이디어는 다음과 같습니다. 먼저 루트 노드에 배치 할 속성을 선택하고 몇 가지 기준에 따라이 속성에 대한 분기를 만듭니다. 그런 다음 교육 인스턴스를 루트 노드에서 확장되는 각 분기마다 하나씩 하위 집합으로 분할합니다. 이 논문에서는 이진 결정 트리 만 고려되므로 분기 수는 정확히 두 개입니다. 그런 다음 실제로 도달 한 인스턴스 만 사용하여 선택한 분기에 대해이 단계를 반복합니다. 각 단계에서 확장에 사용할 수있는 모든 하위 집합 중에서 "최상의"하위 집합을 선택합니다. 이 구성 프로세스는 모든 노드가 순수하거나 특정 수의 확장에 도달 할 때까지 계속됩니다. 그림 1. 도 1은 가상 이진 최고 우선 트리와 가상 이진 깊이 우선 트리 간의 분할 순서의 차이를 도시한다. 가장 먼저 트리에서 다른 순서를 선택할 수 있지만 깊이 우선의 경우 순서는 항상 동일합니다.


첫 번째 질문에도 대답 해 주시겠습니까?
Jekaterina Kokatjuhha

내 답변을 업데이트했습니다. 짧은 버전은 C4.5와 CART 모두 깊이 우선이 아니라 깊이 우선의 예라는 것입니다.
David Marx

나의 첫번째 질문은 best-first 또는 DFS의 정의 나 설명에 관한 것이 아닙니다. 저는 C4.5와 CART가 DFS라고 스스로 말했습니다. 첫 번째 질문은 "어떤"가장 많은 "알고리즘이 레벨 단위로 구현됩니까? [...] 의사 결정 트리에 BFS를 사용하는 다른 알고리즘 또는 패키지는 무엇입니까?"
Jekaterina Kokatjuhha

1
"깊이 우선"트리 성장 수평입니다. 내가 말하려고했던 것입니다. 내가 당신을 위해 강조한 발췌문을 읽으십시오. 여기에서 그래프 순회 DFS 및 BFS를 "깊이 우선"및 "최상의 우선"트리 성장과 혼동하지 마십시오. 그것들은 같지 않으며, 깊이 우선 성장은 당신이 "DFS"가 아니라 "BFS"라고 부르는 것을 말합니다.
David Marx

그것이 내가 항상 놓친 중요한 요점이었습니다. 감사합니다.
Jekaterina Kokatjuhha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.