[머신러닝] Decision Trees

Colacan·2022년 3월 2일
1

[머신러닝]

목록 보기
4/8

결정트리

  • 선형회귀처럼 특성해석에 좋다.

  • 다른 모델에 비해 성능이 떨어지지만 해석에 좋음.

  • 샘플에 민감해서 트리구조가 잘 바뀌는 단점이 있음

  • 회귀,분류모델 둘다 이용가능

  • 다음에 배울 앙상블 방법의 기초가 됨

사이킷런 파이프라인

  • 전처리과정을 중복코드를 최소화하여 쉽게 연결할 수 있다.

  • 코드가 간결해지고 가독성이 증가한다.

  • 파이프라인의 named_steps 속성을 사용해서 각 스텝에 접근 가능하다.

결정트리모델

  • 데이터가 가진 특성을 기준으로 분류해나가는 특성

  • 분류과정은 새로운 데이터가 특정 말단 노드에 속한다는 정보를 확인한 뒤 말단노드의 빈도가 가장 높은 범주로 데이터를 분류한다.

  • 다음 강의에서 여러 트리모델을 사용하는 앙상블 기법인 랜덤포레스트와 그레디언트부스팅트리모델 학습 예정

결정트리 학습 알고리즘

  • 결정트리 학습은 노드를 어떻게 분할하는가에 대한 문제임

  • 결정트리의 비용함수 정의, 그것을 최소화하도록 분할하는 것이 목표

  • 트리학습에 자주쓰이는 비용함수
    1) 지니불순도 : 계산이 빠르기에 디폴트로 사용한다.
    2) 엔트로피 : 좀 더 균형잡힌 트리를 만들 수 있다.

  • 불순도
    1) 여러 범주가 섞여있는 정도를 말함
    2) 45%,55%의 샘플은 불순도가 높다
    3) 80%,20%인 샘플은 위의 경우보다 불순도가 낮다. purity(순수도)는 높음

  • 정보획득 (imformaion gain)
    1) 특정한 특성을 사용해 분할했을 때 엔트로피의 감소량
    2) 분할전 노드불순도 - 분할후 자식노드들의 불순도

사이킷런 DesicionTreeClassifier를 통한 결정트리 구현

  • 결정트리의 장점 : 이전의 회귀모델에 비해서 전처리를 덜 신경쓸수 있다. (스케일러를 제외하고 진행가능)

  • 학습데이터의 정확도가 명확히 높으면서 검증세트의 정확도가 다수범주의 비율과 같게 나올 경우 (확실한 과적합)

  • 트리의 형태는 export_graphviz를 통해서 확인가능하다.

  • 루트노드는 가장 impormation gain이 큰 것을 이용

트리모델의 과적합 해결

  • 트리의 복잡도를 낮추어 일반화유도

  • 자주 사용하는 하이퍼파라미터
    1) min_samples_split : 노드에서 분기를 만들기 위해 최소한 얼마나 되는 샘플이 존재해야하는지 설정
    2) min_samples_leaf : 리프노드에 얼마나 샘플이 존재해야하는지 설정
    3) max_depth : 트리의 전체적인 깊이를 조절
    공식문서에서 이외의 방법들 확인 가능

특성중요도

  • 트리모델을 파이프라인에서 가져와 확인가능

  • 전체 특성들의 중요도 합이 1이되도록 정규화되어있음

  • 결정트리모델은 선형모델과 달리 비선형, 비단조, 특성상호작용의 특징을 가지고 있을 때도 이용이 가능하다.

  • ipywidget의 interact를 통해서 변화를 시각적으로 볼 수 있다.

오늘의 참고자료

1) https://www.learndatasci.com/glossary/gini-impurity/
2) https://gdcoder.com/decision-tree-regressor-explained-in-depth/
3) http://www.r2d3.us/visual-intro-to-machine-learning-part-1/
4) https://christophm.github.io/interpretable-ml-book/interaction.html#feature-interaction
5) https://christophm.github.io/interpretable-ml-book/tree.html#advantages-2
6) https://www.youtube.com/watch?v=LDRbO9a6XPU
7) https://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cart
8) https://victorzhou.com/blog/intro-to-random-forests/

profile
For DE, DA / There is no royal road to learning

0개의 댓글