커뮤니티 대회 교육

유전체 정보 품종 분류 AI 경진대회

[Private 1위] CatboostEncoder+OverSampling+VotingClassifier

공동작성자

stroke
2023.01.18 01:08 669 조회 language

이번 대회를 하면서 sklearn에 내장된 모든 Classifier 및 Boosting계열 모델, 딥러닝모델(TabNet) 등등을 사용해봤습니다.

실험한 모델이 36개정도 되는데 각각 FeatureSelection 및 Parameter Tuning을 진행하였고 최종 9개 모델을 선별하여 사용했습니다.

딥러닝 모델들 같은 경우는 생각보다 성능이 잘 나오지 않아 사용 모델 목록에서 제외하였습니다.

sklearn에 내장된 모든 classifier 모델들은 all_algorithm을 통해 불러와서 실험을 해보았습니다.

Boosting계열 및 sklearn에 내장된 모델들을 Parameter Tuning 해보았는데 데이터셋이 아무래도 작다 보니 튜닝 전과 후가 거의 차이가 없던것도 특징이었던거 같습니다.

파생변수같은 경우는 SNP_info에 있는 chrom, cm 등등을 Clustering해서 특징 별로 SNP 결합도 해보았고 여러 파생변수를 만들어서 최종 80여개 정도 만들었고 Feature Selection을 진행하여 최종 피처셋을 결정하였습니다.

또한 EDA결과 클래스 불균형이 있는걸로 판단하여 OverSampling, UnderSampling 및 모델에서 class_weight, sample_weight를 조절하는등 여러 실험을 한 결과 BorderlineSMOTE를 사용하는게 가장 좋았습니다.

이번 대회 같은 경우는 데이터셋이 작고 다중 분류인 특성 때문에 앙상블을 진행하지 않으면 생각보다 일반화 성능이 떨어질 것이라 예상하여서 처음부터 방향성을 최대한 많은 모델들을 실험해보는 쪽으로 잡았습니다.

다들 고생하셨습니다.(국민대 화이팅!)

PDF
코드
카즈하
2023.01.18 08:23

고생하셨습니다! 국민대 파이팅

국민대민쑤
2023.01.18 14:26

파이팅!

초밥좋아
2023.01.18 10:01

멋지네요. 잘 보고 갑니다!

국민대민쑤
2023.01.18 14:26

감사합니다.

분데데분
2023.01.18 13:00

감사합니다 잘 봐씁니다.

국민대민쑤
2023.01.18 14:27

감사합니다.

자강사123
2023.01.18 14:07

감사합니다. 잘 봤습니다.
최종모델에서 파라미터 조절도 어떻게 하셨는지 궁금합니다.

국민대민쑤
2023.01.18 14:48

실험할 때는 Optuna를 이용하여 파라미터 조절을 했습니다.
파라미터 조절 같은 경우는 sklearn 내장모델은 sklearn에 나와있는 각각 모델 파라미터들을 찾아서 Optuna로 조절 해주었고 boosting 계열 같은 경우는
CatBoostClassifier(objective='MultiClass', eval_metric="TotalF1:average=Macro")
LGBMClassifier(objective='multiclass') -> fit함수에서 eval_metric을 custom해서 "f1_macro" loss를 줄이는방식으로 학습되게함
XGBClassifier(objective='multi:softmax', num_class=3) 을 고정으로 사용하였고 Optuna로 튜닝한 파라미터는 일반적으로 성능에 영향을 크게 주는 learning_rate, n_estimators, max_depth 같은 파라미터들 위주로 튜닝을 했었습니다.

최종모델은 데이터셋이 작고 분류이다 보니 Optuna 사용 전후가 class_weight 파라미터를 제외하면 기본 모델과 predict 결과 값 차이가 없어서 Optuna를 사용한 코드를  제외하고 모델 기본 파라미터에 seed만 고정해서 제출했습니다.

만약에 데이터셋이 크거나 회귀였다면 파라미터 튜닝 및 시드 앙상블 같은 기법은 필수라고 생각됩니다.

자강사123
2023.01.19 14:26

감사합니다.

동동구
2023.01.18 22:05

감사합니다. 참고하여 공부해보겠습니다!

국민대민쑤
2023.01.19 14:48

감사합니다.

shki
2023.01.19 10:00

한수 배웁니다!

국민대민쑤
2023.01.19 14:48

감사합니다.

로그인이 필요합니다
0 / 1000