2. 목차
1
2
3
STEP 1
STEP 2
STEP 3
https://dacon.io 2
데이터 전처리 & EDA
모델 구축 & 검증
결과 및 결언
데이터 전처리
모델 & post 모델
결론
• 선형 보간
• 파장 고려
• 차이 feature 추가
• PCA/ICA 추가
• Feature 바탕 각 농
도 예측 모델
• 예측된 농도를 포함
하여 다시 post 모델
로 모델링
• 최종 6위
• 개선할 점
3. https://dacon.io 3
1. 데이터 전처리
- 결측치의 경우 가장 가까운 왼쪽과 오른쪽의 숫자를 바탕으로 선형 보간을 사용함
- Src가 0인 경우 dst도 0으로 설정
- dst가 음수인 경우 결측치로 설정
- 0으로 나누는 것을 방지하기 위해 epsilon = 1e-25로 둠
- Dst feature에 대해 wave length를 고려하여, exp(wave_length* A)를 곱해줌
- 이 때 A = 1/500 혹은 80 혹은 100 으로 조절하는 것이 결과가 좋았음
- Dst/src 를 ratio로 정의하여 ratio 자체를 사용하는 것과 log(ratio)를 같이 사용함
- 변수의 다양성을 위해 보간법을 사용한 뒤 wave_length 보정하는 것과 wave_length 보정
한 뒤에 선형 보간을 하는 것을 둘다 사용함
- log(ratio) 의 경우, 두 개의 wave length에 해당하는 값의 차이를 추가로 구하여 feature에
추가 (np.roll을 이용하여 바로 옆 뿐만 아니라 멀리 떨어진 값의 차이도 같이 구하여
feature에 추가함)
- Dst data, log(ratio) 데이터의 경우 PCA, ICA를 이용하여 적은 수의 dim에 대해 추가적인
feature를 추가해줌
4. https://dacon.io 4
2. 계층적 모델 구성
- 총 2개의 모델을 구성 (model, post model)
- 첫번째 모델은 전처리된 feature를 바탕으로 각 종류의 농도를 구함
- 이 때 먼저 구한 종류의 농도는 feature가 됨: 예를 들어 처음에는 전처리된 feature
만으로 hhb농도를 구하고, 전처리된 feature + 예측된 hhb농도로 hbo2를 구하고,
전처리된 feature feature + 예측된 hhb농도 + 예측된 hho2농도를 바탕으로 ca를 구
하는 등의 단계적 방법임.
- 두번째 모델(post model)은 전처리된 feature + 첫번째 모델에서 구한 농도들을 모두
feature로 써서 다시 각 종류의 농도를 예측함
- 10- fold cross validation 사용하여 10개의 모델을 앙상블함.
- 두 모델 모두 Lightgbm regressor를 사용함
- 하이퍼 파라미터는 아래와 같음 (왼쪽: 첫번째 모델, 오른쪽: 두번째 모델)
5. https://dacon.io 5
3. 결론
- Trainining 용 데이터의 경우 overfitting이 잘 되는 것을 관찰하여 test data 에 대한 성능을
높이기 쉽지 않았음.
- 최종 리더보드 결과: 0.80126 (mae)
- 딥러닝 (컨볼루션 혹은 RNN) 을 사용하였으면 더 좋았을 것 같다.
- 소스코드:
https://dacon.io/competitions/official/235608/codeshare/1320?page=1&dtype=recent&ptyp
e=pub