티스토리 뷰

머신러닝

9. 결정 트리

0307kjb 2022. 4. 23. 18:40

과대적합!

 

 

 

Gini는 지니 불순도를 의미한다. 

다음은 지니 불순도의 계산법이다.

지니 불순도 = 1 - (음성 클래스^2 + 양성 클래스^2)

 

지니 불순도의 경우 1,0은 순수노드라 하며, 0.5면 최악이다.

이유는 1, 0같은 경우 양성 또는 음성 클래스로 완전히 분류되었다는 소리이기 때문에 0.5는 완전 분류가 되지 않았다는 소리기 때문이다.

 

부무와 자식 노드 사이의 불순도 차이를 정보 이득라고 한다.

 

사이킷런에는 또 다른 불순도 기준이 있는데 DecisionTreeClassifier 클래스에서 criterion='entropy'를 지정하여 엔트로피 불순도를 사용할 수 있다.

차이점은 지니 불순도 처럼 제곱의 형태가 아닌 밑이 2인 log를 사용하여 곱한다.(차이는 조금 남..)

 

가지치기

 

무한정 뻗어나가는 트리가 과대적합 되기전에 어느정도 규제를 둘 필요가 있다.

깊이 3을 통해 전보다 과대적합을 일어나는 것을 방지했다. 그래도 과소적합 문제가 있긴 하다.

훈련 세트를 나눌 때 여러가지 sugar, alcohol, pH를 사용하는 것을 볼 수 있다.(흐려서 안보임 ㅠㅠ)

 

그런데, -0.802라는 음수로 된 당도들 어떻게 표현해야 할까.

불순도를 기준으로 샘플을 나눌 때 클래스별 비율을 가지고 계산하는데 이것은 스케일이 계산에 영향을 끼치지 않는다는 것이 포인트다.

 

실제로도 스케일이랑 상관 없는 것을 볼 수 있다.

 

 

어떤가! 설명을 제대로 할 수 있지 않겠는가!

당도가 1.625보다 크고 4.325보다 작으며 알코올 도수가 11.025이하면 음성이며 나머지는 양성이라는 것을 알 수 있다.

그리고 어떤 특성이 가장 유용한지 나타내는 특성 중요도 또한 계산해준다.

 

이렇듯 결정 트리는 찾고자 하는 목표의 정확도를 높일수도 있으며 시각적으로 데이터 분석또한 가능하다는 점에서 유리하다.

'머신러닝' 카테고리의 다른 글

10. 교차 검증과 그리드 서치  (0) 2022.04.24
8. 확률적 경사 하강법  (0) 2022.04.20
7. 로지스틱 회귀  (0) 2022.04.18
6. 특성 공학과 규제 ( 회귀 )  (0) 2022.04.17
5. 선형 회귀  (0) 2022.04.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함