인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

허귀석님의 프로필 이미지
허귀석

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

시각화를 통한 결정 트리 모델의 구조 이해

decision node 의 조건

작성

·

122

0

decision node 의 조건, ex <= 2.45 , 는 어떻게 만들어 지는 것인지요? decision tree 알고리즘에서 자동으로 만들어 지는 것 같은데 어떻게 내부적 알고리즘이 있는 것인지 궁금합니다.

답변 2

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

decision node의 split 조건 대상은  모든 feature들의 개별 값들이 될 수 있습니다. 

1. Decision tree 알고리즘은 가장 먼저 최적의 분할 조건(즉 해당 분할 조건으로 최적의 지니계수/정보 이득이 될 수 있는)이 될 수 있는 맨 처음 분할 조건을 찾는데, 이때 모든 feature들의 개별 값을 차례로 대입하면서 지니계수/정보이득을 계산하게 되며 이들 중 최적의 feature와 그때의 feature값을 기준으로 분할 조건을 결정합니다.

가령 예를  들어 아이리스 데이터 세트가 2개의 feature와 5개의 레코드로 되어 있다고 가정하고, Petal_length:[0.1, 0.2, 0.3, 0.3, 0.4], Petal_width:[0.5, 0.2, 0.2, 0.5, 0.4] 라고 한다면 Petal_length가 가지는 고유값 유형은 0.1, 0.2, 0.3, 0.4로 4개, Petal_width가 가지는 고유값 유형은 0.2, 0.4, 0.5로 3개가 있을 수 있습니다.

이 경우 Decision tree 알고리즘은 첫번째 feature인 Petal_length의 0.1, 0.2, 0.3, 0.4 값을 차례로 대입하면서, 그리고 이어서 두번째 feature인 Petal_width의 0.2, 0.4, 0.5를 또 차례로 대입하면서 지니계수/정보이득을 계산하고 그중 최적의 값을 기준으로 분할 조건을 결정하게 됩니다.

일반적으로 feature가 N개가 있으면 각 N개 feature들의 고유값만큼 반복적으로 지니계수/정보이득을 계산하게 됩니다. 여기 예에서는 총 7번을 계산하게 됩니다. (Petal_length 4번, Petal_width 3번)

2. 이렇게 분할 조건을 결정하게 되면 해당 조건보다 작은 데이터들은 왼쪽 노드로, 큰 데이터들은 오른쪽 노드로 위치하면서 개별 노드들은 다시 재귀적인 방식으로 1번과 같은 분할 조건을 찾으면서 트리를 만들어 갑니다. 

가령 예를 들어 위의 첫번째 분할 조건이 petal_length가 0.1 일때 가장 최적의 지니계수/정보 이득을 나타낸다면 이를 기준으로 petal_length <= 0.1 인 데이터 값들은 트리의 왼쪽으로, petal_length > 0.1 인 데이터 값들은 트리의 오른쪽으로 이동하게 되며, 이렇게 분할된 개별 노드들은 다시 재귀적으로, 하이퍼 파라미터 조건에 맞는 최종 리프 노드가 만들어 질때 까지 분할을 수행합니다.

감사합니다.

0

허귀석님의 프로필 이미지
허귀석
질문자

강사님, 자세한 설명 너무 감사드립니다. 답변이 늦었습니다. 갑자기 다른 일로 바쁜 나머지.. 위 내용을 아직 충분히 숙지하지 못했으나 시간을 갖고 더 공부하겠습니다.

허귀석님의 프로필 이미지
허귀석

작성한 질문수

질문하기