머신러닝 | 트리 알고리즘 - 결정 트리 (Decision tree model)

2022. 2. 10. 16:28·데이터분석과 머신러닝

한빛미디어 도서 <혼자 공부하는 머신러닝+딥러닝>의 전개를 따른 내용이다.

챕터 5, 트리 알고리즘

* 성능이 좋고 이해하기 쉬운 트리 알고리즘 배우기
* 알고리즘 성능을 최대화하기 위한 하이퍼파라미터 튜닝 실습
* 여러 트리를 합쳐 일반화 성능을 높일 수 있는 앙상블 모델 배우기

 

알고리즘 과목에서 배운 트리 알고리즘..

머신러닝에 적용되는 트리구조???

어떤 실습을 하게될지 궁금하다.

 


# 분류모델 - 로지스틱 회귀모델 vs 결정 트리 모델

 

◆ 로지스틱 회귀모델 :

선형방정식으로 분류기준을 설명한다.

분류기준(계수)는 직관적으로 파악하기 어렵다.

 

◆ 결정 트리 모델 : 

구체적인 수치로 분류기준을 설명한다.

직관적이다. 분류기준을 이해하기 쉽다.

 

 


# 트리 모델 실습

사이킷런에서 DecisionTreeClassifier 클래스를 제공한다. 

Decision Tree 모델을 만들어보자. 

* 이 모델의 장점 : 특성값의 스케일을 맞출 필요가 없다. ( 스케일이 영향을 주지 않는 구조임 ) 

하지만 실습과정상 바로 아래 코드는 scaled input을 사용함

 

 

훈련은 완료했으니 트리 모양도 확인해보자. 

 

 

# 왼쪽: yes / 오른쪽: no
# gini: 불순도
# samples: 샘플 수
# value: 음성, 양성 class의 수 
# 예측클래스: 노드에서 비율이 높은 클래스로 예측한다
 
 

 

실제로 샘플을 예측하기 전에, 가지치기가 필요하다. 

∵ train set으로 fit된 결정트리의 depth가 클수록 과대적합된다. (일반화가 잘 되지 않음)

 

이제부터 이렇게 노드를 분할하는 기준은 도대체 무엇인지에 대해 이야기한다. 

 

 


# 지니 불순도 (Gini impurity)

우리가 이용한 DecisionTreeClassifier에는 criterion 매개변수를 설정가능하다.

이 criterion 매개변수의 default가 gini다. 

gini는 분류기준 수치를 계산하는 criterion중 하나다. 

(* criterion에는 entropy도 있는데, 밑이 2인 로그를 사용한다 ) 

 

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

* 최악의 불순도 : 0.5

* 불순도가 0인 노드: 순수노드

 

 

노드를 분할하는 기준 ?

▶ 부모노드와 자식노드의 불순도차이가 최대가 되도록 분할기준을 정한다. 

▶ 이 불순도차이를 '정보 이득'이라고 한다.

 

 

클래스를 예측하는 과정

▶ 샘플은 트리의 노드를 따라 분류된다.

▶ 가장 마지막에 도달한 노드에서 비율이 높은 클래스로 예측한다.

 


# 특성 중요도 확인하기

이 결정트리라는 분류모델에서 클래스를 분류할 때, 분류의 핵심 역할을 하는 특성이 무엇인지 확인해보자. 

결정트리 모델의 feature_importances_속성에 저장되어있다.

 

두번째 특성인 sugar가 특성 중요도가 가장 높다.

 

 

 


다음 글:

머신러닝 | 교차 검증과 그리드 서치 | 최적의 파라미터를 찾아주는 교차검증 방법

 

 

 

 

 

반응형

'데이터분석과 머신러닝' 카테고리의 다른 글

머신러닝 | 트리의 앙상블 | sklearn 앙상블 모델 4종류 특징 비교  (0) 2022.02.13
머신러닝 | 교차 검증과 그리드 서치 | 최적의 파라미터를 찾아주는 교차검증 방법  (0) 2022.02.11
머신러닝 | 확률적 경사 하강법  (0) 2022.01.30
혼공단 7기 3주차 미션인증  (0) 2022.01.30
로지스틱 회귀 | 선형방정식이 확률p가 되는 과정은?  (0) 2022.01.28
'데이터분석과 머신러닝' 카테고리의 다른 글
  • 머신러닝 | 트리의 앙상블 | sklearn 앙상블 모델 4종류 특징 비교
  • 머신러닝 | 교차 검증과 그리드 서치 | 최적의 파라미터를 찾아주는 교차검증 방법
  • 머신러닝 | 확률적 경사 하강법
  • 혼공단 7기 3주차 미션인증
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
머신러닝 | 트리 알고리즘 - 결정 트리 (Decision tree model)
상단으로

티스토리툴바