ch02 앙상블 기법- RandomForest(3)

학습 내용

01. 랜덤 포레스트의 배경와 원리에 대해 알아본다.

02. 랜덤 포레스트의 파라미터에 대해 알아본다.

03. 트리에서 사용하는 변수의 중요도에 대해서 체크해보고 알아본다.

04. 의사결정트리와 선형회귀를 그래프를 통해 확인하고 알아본다.

목차

01 앙상블 기법
02 집값 데이터를 활용한 랜덤 포레스트 분석

http://dataaspirant.com/2017/06/26/random-forest-classifier-python-scikit-learn/ 참조

01 앙상블(Ensemble) 기법

앙상블(ensemble)란?

의사결정트리는 과적합되는 현상이 발생한다. 어떻게 해야 할까?

가. 랜덤 포레스트(random forest)

이렇게 하면 트리 모델의 예측 성능이 유지되면서 과대적합이 줄어든다는 것이 수학적으로 증명됨.

기본 아이디어

나. 랜덤 포레스트 구축

02 집값 데이터를 활용한 랜덤 포레스트 분석

5개의 랜덤 포레스트 모델을 생성

캐글 코리아 2차 대회 데이터 셋 데이터

컬럼명 의미 값(기타)
ID 집을 구분하는 번호
date 집을 구매한 날짜
price 집의 가격(Target variable)
bedrooms 침실의 수
bathrooms 화장실의 수
sqft_living 주거 공간의 평방 피트(면적)
sqft_lot 부지의 평방 피트(면적)
floors 집의 층 수
waterfront 집의 전방에 강이 흐르는지 유무 (a.k.a. 리버뷰)
view 집이 얼마나 좋아 보이는지의 정도
condition 집의 전반적인 상태
grade King County grading 시스템 기준으로 매긴 집의 등급
sqft_above 지하실을 제외한 평방 피트(면적)
sqft_basement 지하실의 평방 피트(면적)
yr_built 지어진 년도
yr_renovated 집을 재건축한 년도
zipcode 우편번호
lat 위도
long 경도
sqft_living15 2015년 기준 주거 공간의 평방 피트(면적, 집을 재건축했다면, 변화가 있을 수 있음)
sqft_lot15 2015년 기준 부지의 평방 피트(면적, 집을 재건축했다면, 변화가 있을 수 있음)

Price와의 상관계수 확인

3개의 특징을 선택 후, 데이터 전처리

5개의 트리

5개의 모델 각각에 대한 정확도 평가

100개 모델에 각각에 대한 정확도 평가 - 10개단위 출력으로 확인

확인 : 각각의 모델 자체는 높은 성능을 내는 것이 아니다.

실습

Conclusion

(가) 회귀와 분류에 있어, 랜덤 포레스트는 현재 가장 널리 사용되는 머신러닝 알고리즘이다.
(나) 랜덤 포레스트는 성능이 매우 뛰어나고 매개변수 튜닝을 많이 하지 않아도 잘 작동한다.
(다) 만약 의사결정을 간소하게 해야 한다면 단일 트리를 사용할 수 있다.
(라) 랜덤 포레스트는 n_jobs를 이용하여 여러개의 코어를 이용하여 병렬 처리를 통해 속도 향상을 시킬 수 있다.
(마) 랜덤 포레스트는 트리가 많을 수록 random_state 값의 변화에 따른 변동이 적다.
(바) n_estimators는 클수록 좋다. ( 더 많은 트리는 과대 적합을 줄여준다.) 다만, 시간과 메모리의 문제가 발생
(사) max_features는 일반적으로 기본값을 쓰는 것이 좋다.
     * 분류는 max_features=sqrt(n_features), 회귀는 max_features=n_features

실습해 보기 3

데이터 셋 : 유방암 데이터 셋
from sklearn.datasets import load_breast_cancer

위의 데이터 셋을 이용하여 모델을 만들어보자.
(1) 랜덤 포레스트를 이용하여 훈련 세트 정확도, 테스트 세트 정확도를 확인해 보자.
(랜덤 포레스트 트리의 개수 = 5개, random_state=0, 최대 변수 선택 = 4)

도전 실습

교육용으로 작성된 것으로 배포 및 복제시에 사전 허가가 필요합니다.
Copyright 2021 LIM Co. all rights reserved.