본문 바로가기

데이터와 함께 탱고를

(38)
Random Forest 이 글은 StatQuest with Josh Starmer 의 StatQuest: Random Forest 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. Bagging 기법의 대표적인 모델인 Random Forest 을 이번 글에 정리해보고자 한다. Decison Tree 다음에 항상 등장하는 모델로, 일반적으로 DT 보다 더 좋다. 1. 개념 한 마디로 표현하면 다음과 같다. 여러 개의 Boostrapped Dataset 으로 여러 개의 Decison Tree 를 만든 후, Voting 을 통해 최종 예측값을 출력하는 방법이다. 2. 과정 실제 예를 통해 그 과정을 하나씩 살펴보자. 2.1. Bootstrapped Dataset 만들기 먼저, 다음과 같은 Dataset 이 ..
ML Model Ensemble 과 Bagging, Boosting 개념 1. Model Ensemble Model ensemble 은, 말 그대로 모델들의 앙상블. 즉 여러 모델들을 함께 사용하여 기존보다 성능을 더 올리는 방법을 말한다. 이게 ML(Machine Learing) 모델이면 ML Model Ensemble 이 된다. 2. Ensemble 종류 그럼 구체적으로 어떤 식으로 모델들을 Ensemble 하는지 살펴보자. 2.1. Bagging Bagging은 입력 데이터를 모델 수 만큼 나눈 뒤, 각각 학습시킨다. 이후, Test dataset 을 각 모델에 넣어 예측할 때, 출력되어 나온 예측 값들을 voting 하여, 보다 더 투표를 받은 예측 값이 최종 예측값이 된다. 뭔가 민주주의 공화국 느낌이다. Bagging 의 가장 대표적인 모델이 바로 Random Fo..
Decision Tree 1. 서론 최근, Light Gradient Boosting 을 써보다가, 이 모델이 정확히 뭔지를 이해하고 싶어졌다. 그래도 최소한 내가 쓰는 모델이 어떤 방식으로 동작하는지는 알고있어야하지 않을까 싶어서... 이전에, xgboost 도 혼자 공부하다가 포기했었는데, 이번에 light gbm 까지 리뷰하는 김에 다 공부해봐야겠다. 대충 공부? 리뷰? 해보려는 것들은 다음 순으로 할 예정이다. Decision Tree Ensemble 개념 (Bagging, Boosting) Bagging Random Forest Boosting Adaptive Boosting Gradient Boosting Light GBM XG boost 보면, 모두 Tree 모델 기반으로 고도화 시킨 모델들이다. 그리고 그 첫 번째..
[Predict Future Sales] xgboost 커널 리뷰 이번에 살펴볼 커널은 Feature engineering, xgboost 입니다. Voting 수 2위에다가, RMSE public score 도 0.90684 로, 저번에 리뷰한 커널보다 점수가 높습니다. 전반적인 흐름은 저번과 비슷합니다. 먼저, Feature 를 만드는데 중점을 두고, 모델을 통해 학습하여 예측합니다. 다만 이번에는 저번에 리뷰한 커널보다 Feature 수가 훨씬 많고, 모델도 xgboost 를 사용합니다. 서론 대회 소개 및 목표 한 마디로 말해, 기존의 Sales 데이터를 가지고, 미래의 Sales 량을 예측하는 대회입니다. 정확히는, 2013년 1월~2015년 10월의 모든 shop 내 item들의 하루 단위의 세일즈량이 주어지고, 이후 다음 달(2015년 11월)의 각 sho..
[Predict Future Sales] playground 커널 리뷰 2 이 글은Future Sales Prediction: playground커널의 리뷰입니다. 코드 및 아이디어는 모두 커널의 원 제작자에게 있으며, 이 글은 해당 커널을 좀 더 이해하기 쉽게하기 위한 리뷰입니다. 5. Data Preparation Feature Creation 도 끝났고, 이제 본격적으로 모델을 만들어보려고 합니다. 그 전에, train dataset 을 모델에 들어갈 모양으로 만들어보겠습니다. 최종적으로는 지금까지 만든 모든 feature 들을 모두 합친 데이터프레임을 만들건데, 이 과정 중에 메모리가 매우 많이 사용될 수 있습니다. 따라서, 먼저 데이터프레임을 최대한 메모리 최적화 시켜놔야 합니다. 예를 들면, category feature는 데이터 타입을 category 화 시켜줘야하..
[Predict Future Sales] playground 커널 리뷰 1 이 글은 Future Sales Prediction: playground 커널의 리뷰입니다. 코드 및 아이디어는 모두 커널의 원 제작자에게 있으며, 이 글은 해당 커널을 좀 더 이해하기 쉽게하기 위한 리뷰입니다. 1. Load data and library 가장 먼저 해야할 일은 당연히, 라이브러리들과 데이터를 가져오는 것입니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn import ensemble, metrics sns.set_style('darkgrid') pd.options.display.float_format = '{:,.3f}'.format 기본적인..
[Predict Future Sales] playground 커널 리뷰 0 커널 개요 첫 번째로 리뷰해볼 커널은 Future Sales Prediction: playground 입니다. 대회 커널 중, voting 수도 많고, Public score 도 1.19747 (RMSE 기준) 로, 매우 높은 편입니다. 무엇보다, 다른 커널들보다, 내용이 간결하고 (물론 상대적입니다...) 직관적이라 리뷰해도 괜찮겠다 싶어 골라왔습니다. 각설하고, 핵심만 먼저 소개하면 다음과 같습니다. 모델은 lightgbm 을 사용합니다. 핵심은 Model Features 입니다. 즉 어떤 Feature들을 생성했는지가 관건입니다. 다 떠나서, 그럼 최종적으로 Model 에 들어간 Features만 살펴보면 다음과 같습니다. 기존에 데이터에 존재했던 Features - 'date_block_num' ..
[Predict Future Sales] 대회 및 데이터 소개 1. 대회 개요 한 마디로 말해, 기존의 Sales 데이터를 가지고, 미래의 Sales 량을 예측하는 대회입니다. 정확히는, 2013년 1월~2015년 10월의 모든 shop 내 item들의 하루 단위의 세일즈량이 주어지고, 이후 다음 달(2015년 11월)의 각 shop의 각각의 item 세일즈량의 총 합을 예측해야 합니다. "How to win a data science competition" Coursera course 의 마지막 프로젝트라고도 하는군요. 2. 데이터 데이터들은 다음과 같이 제공됩니다. sales_train.csv - the training set. Daily historical data from January 2013 to October 2015. test.csv - the tes..