Page 30 -
P. 30
캐글에서 LightGBM은 매우 자주 사용하는 기법 중 하나로, 주요 장점은 다음과 같습니다.
● 실행 속도가 다른 기법들(같은 그레이디언트 부스팅 결정 트리인 XGBoost나 뉴럴 네트워
크 계통의 기법 등)보다 빠릅니다.
● 결측치나 카테고리 변수가 포함된 상태에서도 모델을 학습시킬 수 있습니다.
LightGBM 라이브러리를 설치하고 불러오기
아나콘다(윈도)의 커맨드 프롬프트 혹은 맥의 터미널에서 LightGBM의 라이브러리를 설치합니다.
명령 프롬프트/터미널
pip install lightgbm==2.3.1
LightGBM 라이브러리를 불러옵니다(코드 3-53, 맥 환경에서 임포트(import)할 때 오류가 발생한
다면 터미널에서 brew install libomp를 실행해 보세요).
코드 3-53 LightGBM 라이브러리 불러오기
import lightgbm as lgb
과적합과 과소적합
이제 LightGBM으로 앞서 만든 데이터를 학습시킬 차례이지만, 그전에 먼저 일반적인 머신 러닝
에서 중요한 사항 몇 가지를 짚고 넘어가도록 하겠습니다.
학습 데이터의 목적 변수(예를 들어 생존 여부)를 예측하고자 여러 가지 설명 변수(예를 들어 연
령, 성별, 티켓 등급 등)를 사용하여 모델을 만들고 테스트 데이터에 적용하는 것이 일반적인 머신
러닝 흐름입니다. 그런데 테스트 데이터에는 목적 변수가 빠져 있으므로 테스트 세트만으로는 얼
마나 정확하게 예측되었는지 검증할 수 없습니다. 학습 데이터는 모델 작성에 이미 사용되었으므
로 학습 데이터로 예측 정확도를 검증하는 것 역시 적절하지 않습니다. 모델 학습에 사용된 데이
터는 모델이 이미 알고 있는 데이터일 뿐 미지의 데이터가 아니기 때문입니다.
학습 데이터를 너무 과하게 학습하여 학습 데이터에만 지나치게 적절한 모델도 마찬가지입니다.
이미 알고 있는 데이터에만 최적화되어 있을 뿐 미지의 데이터는 정확하게 예측하지 못합니다. 이
렇게 학습이 과하게 진행된 것을 과적합(overfitting)이라고 합니다. 학습이 불충분하게 진행되는 과
소적합(underfitting)을 피하면서 과하게 학습되는 과적합이 발생하지 않도록 튜닝하는 것이 머신
132