본문 바로가기

LGBM5

[ASHRAE - Great Energy Predictor III] Best Weight 찾기 이번 포스팅에서는 Cross Validation 결과 Merge 할때 Weight를 어떻게 하면 좋을지 고민한 내용입니다. [Cross Validation, 최적의 Weight 찾기 : 1.1 -> 1.09 ] - 주어진 데이터를 Building_id 별로 Meter_reading 값을 산출하여 보면 최근 실적기준으로 추이가 변한 Building을 찾을 수 있었습니다. 빌딩의 옵션이 변했거나 주변 환경이 변한 이유일 것이라고 추정이 되는데, 이를 모델에 반영 하면 더 성능이 좋아질 것이라는 기대에 CV 결과를 단순 평균이 아닌 가중 평균을 진행했습니다. 데이터를 3 Folds로 분류하고 학습한 뒤 Inference 단계에서 모두 같은 비율로 평균을 내어 제출 했을 때 LB 1.1을 얻었고 최적의 비율을 .. 2019. 12. 15.
[ASHRAE - Great Energy Predictor III] Hyperparameter Optimaization 이번 포스팅에서는 Hyperparameter Tuning을 통한 LB Score를 향상시키는 방법에 대해 알아보겠습니다. 제가 사용하는 Hyperparameter 를 찾아가는 방법은 세가지 입니다. - Grid Search , Random Search, Bayesian Optimization Functions Grid Search는 Parameter 별로 값을 지정해주고 이를 조합하여 최적의 조합을 찾아가는 방식이고 Random Search는 Parameter 별로 범위를 지정해주고 그 안에서 Random 하게 값을 뽑아서 조합하는 방식입니다. 일정 시간 안에 결과를 내야하는 경우에는, Grid Search < Random Search 가 더 좋은 결과를 내는 경향이 있다고 알려져 있습니다만, 둘다 이전.. 2019. 12. 14.
[ASHRAE - Great Energy Predictor III] Leakage 된 데이터 활용하기 이번에는 Leakage 된 데이터를 활용하여 Score를 올려본 방법과 결과를 공유하도록 하겠습니다. 이 대회는 심각한 Data Leakage가 있었습니다. 현재까지는 Site 5개(0,1,2,4,15) 데이터의 시간대별/meter_type별 Meter_reading 값이 오픈되어 있습니다. 이는 캐글에서 대회 주관자가 오픈한 것이 아니라 다른 대회 혹은 다른 Site에서 데이터 분석을 위해 올려놓은 데이터를 참가자들이 크롤링하여 정리한 것입니다. 아래에서 이야기하겠지만 Leakage 된 데이터는 LB Score에 0.1정도 영향을 미칩니다. Leak Dataset은 총 5개 입니다. (참조 : https://www.kaggle.com/yamsam/ashrae-leak-data-station) ASHRA.. 2019. 12. 9.
[ASHRAE - Great Energy Predictor III] Model 성능 향상시키기 이번에는 제가 Model 성능을 향상 시키기 위해 사용한 방법들을 살펴보겠습니다.(Base : LGBM) 이전 포스팅에서 리뷰했던 Baseline 모델의 성능은 LB = 1.3 입니다. (Github 코드 : 바로가기) 1. Feature Engineering : 1.3 → 1.13 - 앞선 Baseline에서 활용한 Feature 외에 몇 가지 Feature를 더 만들어서 반영했습니다. 아래 과정을 통해 LB Score를 0.17 향상시켰습니다. 첫번째는 isholiday 입니다. 건물의 전력소모량을 예측하는 문제이니 당연히 고려되어야 할 요소가 바로 휴일입니 다. 휴일에는 Education 이나 Office로 활용하는 건물은 휴일에는 전력 소모량이 줄어들 것이기 때문입니다. 비슷하게 생각하여 주말도 .. 2019. 12. 8.
[ASHRAE - Great Energy Predictor III] Baseline 구축하기 공개 커널을 필사하여 어느 정도 데이터에 대한 감을 잡았으니 이제 Baseline 모델을 구축하고자 합니다. 바닥부터 데이터만 가지고 모델링을 해가는 방법이 있지만 이렇게 할 경우 정말 많은 삽질을 해야하기에 저는 이미 참가자들 사이에서 검증된 공개 Baseline 커널을 가져와 조합하여 만들었습니다. github code : baseline / 공개커널1 / 공개커널2 Baseline은 LightGBM(LGBM)으로 구축하여 속도와 정확성을 한번에 잡아보고자 했으며, 추후에 모델 다양성을 확보하기 위해 Xgboost 와 Catboost로 확장하여 진행할 예정이고 시간이 된다면 Ridge, Lasso로도 확장해보고자 합니다. 데이터 용량이 매우 크기 때문에 LGBM으로 학습하여도 8 Core 16 Thr.. 2019. 12. 7.