본문 바로가기

ASHRAE7

[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 확장 이번에는 Lightgbm이 아닌 다른 모델을 활용하여 다양성을 부여해보도록 하겠습니다. 지금은 Lightgbm이 tree 계열에서 가장 좋은 성능을 보이는 모델이지만 이전에는 Xgboost 만한 모델이 없었습니다. 최근에는 Xgboost가 Lightgbm에 비해 성능이 조금 떨어지고 CPU 학습시 속도도 오래걸리는 경향이 있지만 GPU를 활용한 학습이 가능하다는 점에서 아직까지 많은 사람들이 찾고 있습니다. Lightgbm도 GPU 를 활용한 적합이 가능은 하지만 Kaggle에 올라오는 경험담에 의하면 안정적인 결과를 내지 못하는 것 같다고 합니다. 그래서 저는 Lightgbm으로 학습 할 때 CPU만 활용하고 있고 Xgboost는 GPU 학습시킬 때 활용하고 있습니다. Xgboost 결과를 아래에서 같.. 2019. 12. 8.
[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.
[ASHRAE - Great Energy Predictor III] 데이터 파악하기 이번에는 ASHRAE 대회에서 제공된 데이터 구조 및 컬럼 속성 에 대해 간단하게 파악해보고자 합니다. 보통 저는 캐글 대회를 시작하면 공개 Kernel로가서 Vote 수가 가장 많은 데이터 시각화 또는 Starter Code라고 적혀 있는 커널을 고르고 필사를 하면서 데이터의 구조와 컬럼 속성을 파악합니다. 아래 작성된 내용은 공개커널1 / 공개커널2 을 참조하여 작성했습니다. ㅁ 구조 및 속성 - 데이터는 세 종류로 제공됩니다. 이 중 타겟 컬럼은 Train 테이블의 "meter_reading" 값이며 "meter" 컬럼에 의해 Electricity/Chilledwater/Steam/Hotwater 로 측정 영역이 구분됩니다. 날씨 정보 / 건물 정보 / 건물 전력측정치(Target) ㅁ EDA(Ex.. 2019. 12. 5.