한빛미디어 도서 <혼자 공부하는 머신러닝+딥러닝>의 전개를 따른 내용이다.
챕터 5, 트리 알고리즘
* 성능이 좋고 이해하기 쉬운 트리 알고리즘 배우기
* 알고리즘 성능을 최대화하기 위한 하이퍼파라미터 튜닝 실습
* 여러 트리를 합쳐 일반화 성능을 높일 수 있는 앙상블 모델 배우기
알고리즘 과목에서 배운 트리 알고리즘..
머신러닝에 적용되는 트리구조???
어떤 실습을 하게될지 궁금하다.
# 분류모델 - 로지스틱 회귀모델 vs 결정 트리 모델
◆ 로지스틱 회귀모델 :
선형방정식으로 분류기준을 설명한다.
분류기준(계수)는 직관적으로 파악하기 어렵다.
◆ 결정 트리 모델 :
구체적인 수치로 분류기준을 설명한다.
직관적이다. 분류기준을 이해하기 쉽다.
# 트리 모델 실습
사이킷런에서 DecisionTreeClassifier 클래스를 제공한다.
Decision Tree 모델을 만들어보자.
* 이 모델의 장점 : 특성값의 스케일을 맞출 필요가 없다. ( 스케일이 영향을 주지 않는 구조임 )
하지만 실습과정상 바로 아래 코드는 scaled input을 사용함
훈련은 완료했으니 트리 모양도 확인해보자.
실제로 샘플을 예측하기 전에, 가지치기가 필요하다.
∵ 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 |