작성
·
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