월간 데이콘 운동 동작 분류 AI 경진대회

Private 7위,Public 점수:0.50262, MLP+LR 각 결과 앙상블

2021.02.23 22:06 6,578 조회 language

결론부터 코드설명을 드리면 서로 다른 2종의 feature를 생성해서 MLPClassifier 및 LogisticRegression 를 튜닝하고 Voting 한 후 각각의 결과를 power mean ensemble 하였습니다.

1. 서로 다른 2가지 종류의 feature에 대한 생성
데이타의 노이즈 감소를 위하여 여러 종류의 필터를 적용해봤지만, 별 소득이 없었습니다. 이후 6개 논문을 확인하고 도움이 될만한 데이타 6개 정보를 추가 생성하게 됩니다. 
기존 6개 정보와 추가된 6개정보를 이용하여 코드공유글을 참고하여 가속도센서와 자이로센서 데이타를 fft() 적용한 후 abs 값과 angle값을 추출하였습니다.  
하나의 데이타는 freq를 20으로 6개의 데이타를 seasonal_decompose 하였으며, 또 다른 데이타는 가속도 센서 3개 값만 freq를 60으로 나머지는 50으로 분해하고, ftt() 결과 값을 50/600을 곱하였습니다.
2가지 종류의 데이타를 이용하여 하나는 max, min, mean, var, skew, mad, quantile 의 통계량으로 feature 생성하고,
다른 하나는 max, min, mean, var, skew, mad, quantile, std 의 통계량으로 feature를 생성합니다.

2. feature selection 
SelectKBest()를 이용하였습니다. SelectKBest() 적용 후 Score가 매우 많이 올랐던 것으로 기억합니다. 

3. Classifier 튜닝
합리적인 BayesSearchCV()를 사용하고 오버피팅을 줄이고자 StratifiedKFold()를 12로 늘리면서 Score는 거의 정점에 다다르게 됩니다.

4. Ensemble
Ensemble은 단일 모델에서는 Voting 을 적용하고 weights를 2:1로 설정하였습니다. 
이후 각각의 모델에서 나온 결과를 power mean ensemble 하였으며 이때 p 값은 1.5를 적용하였습니다.

코드