2. 목차
1
2
3
STEP 1
STEP 2
STEP 3
https://dacon.io 2
Data Preprocessing
FE & FS & Model
Conclusion & Discussion
Data Preprocessing
Feature engineering
& Feature selection
& Model
Conclusion & Discussion
• Feature engineering
• Feature selection
• Model & evaluation
• Conclusion
• Discussion
• Rolling mean
• Binning
3. https://dacon.io 3
Background
Reference : https://www.pinterest.co.kr/pin/579416308282876234/
• 물질에따라 반응하는 에너지의 크기는 다르고 이 에너지의 크기는 파장에 반비례
• 반응한 만큼 빛은 흡수되고(산란..등 제외) 흡수된 빛은 물질의 흡광계수, 거리, 농도에 비례함
• 다양한 빛의 세기, 파장을 입사하여 농도 예측 가능
4. https://dacon.io 4
1. Data preprocessing
NA
• Dst 에서 20%로 일정하게 분포
• 다양한 결측치 삽입 및 활용을 시도 하였지만 그대로 두는게 제일 좋은 성능
5. https://dacon.io 5
1. Data preprocessing
1. Rolling mean
• Rolling mean을 통해 파장별로 생성되는 피쳐의 노이즈를 줄이는 효과
• Dst 피쳐에 NaN 값이 많은데 이를 rolling mean을 통해 NaN을 채우는 효과
• Window size = [3, 5]
• Src, dst rolling mean후 이후의 추가적인 피쳐엔지니어링 진행
Reference : https://towardsdatascience.com/machine-learning-part-19-time-series-and-
autoregressive-integrated-moving-average-model-arima-c1005347b0d7
6. https://dacon.io 6
1. Data preprocessing
2. Binning
• Binning을 통해 파장별로 생성되는 피쳐의 노이즈를 줄여주는 효과
• Binning size = [ 10, 20, 30, 40, 50, 100]
• Binning 후 이후의 추가적인 피쳐엔지니어링 진행
7. https://dacon.io 7
2-1. Feature engineering
1. dst/src
2. log(dst/src)
3. log(dst/src)/rho
4. Binning , Rolling 후에 1,2,3 피쳐 추가 생성
5. 3번으로 생성된 피쳐로 각 피크의 비율 및 차이 피쳐 추가 생성
( motivation : 근적외선 분광법을 이용한 폐플라스틱 분리선별기술개발, 최형기 )
6. y끼리의 상관관계를 나이브하게 비율로 고려하여 피쳐 생성 ex) 𝑦1 = 𝛼 ∗ 𝑦2
8. https://dacon.io 8
2-2. Feature selection
• 모델을 학습 시킨 후, 변수를 하나씩 값을 섞고 valid score확인 후 선택
• 5fold에서 모두 2번이상 bad_feaure로 선택시 삭제
1. Permutation test
9. https://dacon.io 9
2-3. Model & Evaluation
1. LightGBM
5fold, 3 seed ensemble
• 5fold로 cv를 통해 hyperparameter search(나이브하게 진행)
• dart 사용
• 3seed model
10. https://dacon.io 10
3. Conclusion & Discussion
Conclusion
• 투과도, 흡광도, rho를 나눈 농도와 비례하는 피쳐 생성
• 노이즈를 줄여주기 위해 binning, rolling 수행
• Dst의 NaN 값을 rolling mean으로 대체
• 파장별 log(dst/src)/rho 피크값들의 비율, 차이로 피쳐 생성
• y끼리의 상관관계 고려한 피쳐 생성
Discussion
• Dst에 NA가 많을 수록 validation set에서 성능잘 나오지 않음을 확인했고 채우
려 노력했지만 실패
• NN, knn, kmeans 등을 시도해봤지만 실패했고, NaN 때문에 성능을 뽑기 어렵
다고 생각했지만 1등 코드를 보고 배움
• y끼리의 상관관계를 다양하게 고려해줄 경우 성능 향상 예상
• Ca, Na 의 성능이 좋지 못한데, 흡수파장 영역이 dataset에 비해 낮기때문?