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

알고리즘 | 유전체 | 분류 | Macro F1 Score

  • moneyIcon 상금 : 300 만원
  • 1,377명 마감

 

AutoML로 성능을 올려보자! (feat.pycaret, H2O, LightAutoML, TPOT)

2023.01.13 09:21 3,380 조회 language

요즘 Dacon이나 kaggle ML Task 공모전 상위권 소스코드를 보면 AutoML을 활용해 몇줄 안되는 코드만으로도 좋은 성능을 보여주고 있습니다. 
그래서 제가 직접 구글링을 통해 정보를 찾아 봤을 때 많이 언급되고 사용하기 쉬운 4가지 pycaret, H20, TPOT, LightAutoML 실습까지 진행해봤습니다.

AutoML을 사용하는 것이 목적이였기 때문에 변수를 생성하거나 건드리지 않았고 그냥 Train 전체 컬럼 그대로 파이프라인에 집어넣고 학습을 진행했습니다.

베이스라인에 비해 4가지 AutoML 라이브러리 모두 성능이 크게 향상됐고 파이프라인 탐색 시간을 높게 잡은 TPOT 라이브러리 결과는 0.98111로 Feature Engineering 없이 좋은 성능을 보여주고 있습니다. 다른분들의 글을 보니 모델을 아무리 바꿔도 0.97에서 성능이 향상되지 않으시는 분들이 많으신거 같은데 아마 모델링으로만 올릴 수 있는 성능의 최대치가 0.98~이라고 생각하고 있습니다. 
지금까지 대회를 진행하시면서 직접 생성하신 파생 변수나 전처리를 진행한 변수로 AutoML 라이브러리를 이용하시면 더 좋은 성능이 나올 것이라 생각합니다. 
그리고 추후에 다른 ML 대회에서도 이 라이브러리들을 잘 사용한다면 좋은 성적을 거두실 수 있을거라고 생각합니다.

AutoML 라이브러리를 통해 학습을 진행한 과정과 설명이 필요하신 분들은 아래 블로그 링크에서 참고해주시면 될 것 같습니다.
https://mz-moonzoo.tistory.com/5 

남은 대회 화이팅..!
+++)  umap, t-sne, pca + umap , pca + t-sne를 활용하는 것도 괜찮은 성능이 나오는 것을 확인했는데 코드 정리를 못해서.. 활용해보시는 것도 좋을 듯합니다.

코드
로그인이 필요합니다
0 / 1000
카즈하
2023.01.13 09:26

마지막 submit['class']=submit['class'].apply(lambda x: 'A' if x == 0 else ( 'B' if x == 1 else 'C' )) 부분과 PCA, tsne, umap부분은 제거해주시면 됩니다.

vet_Q
2023.01.13 17:27

감사합니다. 도움이 많이 될 것 같습니다

카즈하
2023.01.13 19:08

네네 화이팅 하세여 ㅎㅎ

byc3230
2023.01.14 12:05

TPOT 돌리면 0.97 나오네요 ㅠㅠ 똑같이 했는데 0.98 재현이 안됩니다 ㅠㅠ

카즈하
2023.01.14 16:15

네 저 코드대로 하면 아마 0.97이고 다른 라이브러리 모두 0.97로 나오실텐데 
TPOT 라이브러리로 0.98나왔을 때 저는 파이프라인 서치시간 파라미터를 1000이런식으로 늘려서 거의 2일동안은  최적의 파이프라인을 찾기 위해 코드가 돌아갔습니다. 글에서는 시간상의 관계로 좀 적게 파라미터를 설정했는데 값을 늘리시면 0.98 모델을 찾으실 수 있으실꺼에요! 시간이 좀 오래 걸리시겠지만...

다른 라이브러리도 탐색 시간을 늘리시면 더 좋은 파라미터와 모델 조합을 찾아낼 수도 있습니다!

다냐니라
2023.01.15 16:18

좋은 글 감사드립니다! 질문이 하나 생겨 여쭤봅니다. 혹 , 'umap, t-sne, pca + umap , pca + t-sne를 활용하는 것도 괜찮은 성능이 나오는 것을 확인했는데 ...' 라고 해주셨는데, t-sne 차원축소를 feature로 사용하셨나요??  아니면, pca로 차원축소를 하시고 t-sne로 분포만 보신건가요?  
t-sne는 pca와 다르게 train data 학습을 통해 test data를 축소할 수 없는걸로 알고있어서요! 

카즈하
2023.01.15 17:27

sklearn - tsne는 fit_transform만있고 transform이 없어서 feature로 사용하지는 않고 분포만 확인한게 맞습니다!
feature로 사용한것은 pca, pca+umap + umap 이렇게 세가지 조합이였던걸로 기억합니다!

2023.06.09 11:02

안녕하세요, 대회로 공부하던 중에 도움 많이 되었습니다! 혹시 제가 이 글을 보고 공부한 내용을 출처 표시한 상태로 제 티스토리나 깃헙에다가 업로드해도 될까요? 기록해두고 싶어서요!

카즈하
2023.06.09 14:46

도움이 되셨다니 다행입니다 ㅎㅎ! 네네 편하게 활용하셔도 좋으실 것 같습니다!