- Decision Tree란?
화이트박스 모델이다.
예/아니오에 대한 질문을 던지면서 정답을 찾는다. 스무고개라고도 많이 한다.
지도분류학습에서 가장 유용하게 사용되는 기법 중 하나이다.
학습된 규칙에 따라 데이터를 분류(classification)하거나 회귀(regression)한다.
화이트박스 : 결정트리, 직관적이고 결정 방식을 이해하기 쉽다.
블랙박스 : 랜덤 포레스트, 신경망, 어떻게 예측이 도출되었는지 파악하기 어렵다.
분류 트리 : 결과 값이 정수(범주형)
회귀 트리 : 결과 값이 실수(수치형, 연속형) 예시를 알아볼까?!!!!!!!!!
이진 분류(Binary Classification) : 이거, 아니면 저거
다중 분류(Multi-label Classification) : A,B,C 중 어디?
회귀 : x값에 비교해 y값이 어떤가
- 용어
루트노드(최상위), 부모노드, 자식노드, 리프노드(자식을 가지지 않는 노드), 중간노드
Root node, Intermediate node, Terminal node라고도 한다. - 불순도
결정트리가 최적의 질문을 찾기 위한 기준. 사이킷런은 지니 불순도와 엔트로피 불순도를 제공한다.
DecisionTreeClassifier의 criterion 매개변수의 기본값은 'gini'이고 entropy로 지정 가능하고, DecisionTreeRegressor의 기본값은 mse이다.
지니 불순도가 조금 더 계산이 빠르다. 하지만 지니는 빈도 높은 클래스를 한쪽 가지로 고립시키는 경향이 있지만, 엔트로피는 조금 더 균형 잡힌 트리를 만든다.
3-1. 지니 불순도
- 집합에 이질적인 것이 얼마나 섞였는지를 측정
- CART 알고리즘에서 사용
- 한 집합에서 한 항목을 뽑아 무작위로 추정할 때 틀릴 확률
- 집합에 있는 모든 항목이 같다면, 지니 불순도는 최솟값(0) == 집합은 완전 순수하다.
3-2. 엔트로피 불순도
분자의 무질서함을 측정하는 것으로 열역학의 개념. 세트가 한 클래스의 샘플만을 담고 있다면 엔트로피가 0이 된다.
3-3. 정보이득
부모노드와 자식노드의 불순도차이.
데이터를 분할하기 전과 후의 변화(불확실성이 얼마나 해소되었는지).
정보 이득이 최대화되도록 학습.
노드를 순수하게 나눌수록 정보 이득이 커진다.
결정트리는 정보 이득이 높은 속성을 기준으로 분할한다.
- 가지치기
불순도를 낮추기 위해서 기존 데이터에 의존해 계속해서 의사결정을 구분하면 과대적합이 일어난다. 이를 막기 위해 가지치기(Pruning)을 하게 되고, 깊이를 줄이는 것은 가지치기 방법 중 하나. 사이킷런에서는 사전 가지치기만을 제공.
가지치기와 관련하여 https://tensorflow.blog/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/2-3-5-%EA%B2%B0%EC%A0%95-%ED%8A%B8%EB%A6%AC/ - 특성 중요도(feature importance)
결정 트리에 사용된 특성이 불순도를 감소하는데 기여한 정도 - 장점, 단점
장점
결과를 해석하고 이해하기 쉽다.
자료를 가공할 필요가 거의 없다.(전처리 간소화)
수치와 범주형 데이터에 모두 적용 가능하다.
화이트박스 모델
안정적이다.
대규모의 데이터셋에서도 잘 동작한다.
단점
과적합의 발생 -> 가지치기 필요
정보 획득량이 편향되는 문제https://ko.wikipedia.org/wiki/%EA%B2%B0%EC%A0%95_%ED%8A%B8%EB%A6%AC_%ED%95%99%EC%8A%B5%EB%B2%95
- 남은 공부
분류 및 회귀 트리(Classification And Regression Tree, CART) - 탐욕적 알고리즘 - 참고
https://blog.naver.com/qja1264/222884937512 결정트리 키워드
https://easyselfstudy.tistory.com/57 불순도와 트리 생성 원리
https://analysis-flood.tistory.com/100 화이트박스와 블랙박스, 지니와 엔트로피
유튜브 김성범 채널 의사결정나무모델2(분류나무)
댓글