inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

decision node 의 조건

143

허귀석

작성한 질문수 20

0

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

통계 python 머신러닝 배워볼래요?

답변 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

허귀석

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

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

14

2

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

74

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

79

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

108

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2