ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이콘 관련 Tip(High scoring)
    머신러닝/FAQ 2022. 9. 1. 11:48

    지극히 주관적인 포스팅입니다.

    참조만 해주시면 감사드립니다.

     

    단시간에 높은 점수를 받는 하나의 방법입니다.

     

    EDA 관점 (1)
    최초 데이터 확인하고 train / test set이 10~100만개(행 기준) , 40개 이상 열 , 5~100MB 급의 데이터 일 경우는 
    pycaret 비추천(모든 모델을 돌리는 방식이라 느림)

     

    Preprocessing 관점 (2)
    가벼운 RandomForest 모델 / 결측치 제거 , 라벨링 등의 최소한의 전처리를 통한 예측 값 도출 -> submission & 리더보드 체크 
    Regression(회귀)문제이면 y 값은 반드시 log1p 처리 후 expm1을 통해 복구 후에 리더보드 제출해야함
    1. 데이터 전처리 Select Or Drop
      1) subplot을 통해 데이터 분포도 확인
        - 한쪽으로 쏠린 경우 - MinMaxScaling  & Log & StandardScaling
        - 너무 특정 좁은 범위에서만 데이터가 몰려있는 경우(변별력 없을 경우 많음)
        - classification - hist만 보는게 낫고(기초적 관점) , regression이면 hist + scatter 같이 보는것을 추천 
        - scaling / log / labeling 후 feature 갯수가 전체 4-50개면 일단 select 관점 , 그 이하면 drop 관점에서 고민하는것을 추천
      2) train.corr() 
        - 상관계수를 통해 추가적으로 feature engineering 
      3) 1),2)에서 뚜렷하게 특징이 나타나지 않을땐 가벼운 모델로 먼저 돌린 후에  feature_importance 까지 체크해서 선정

     

    Modeling 관점 (3)
    데이터가 가볍다면 Pycaret을 통해 상위 모델 선정
    그것이 어렵다면 보편적으로 RandomForest로 먼저 baseline확인 후 boost 기반인 
    xgboost , lightgbm , catboost 활용 후 
    하이퍼파라미터는 optuna를 통해서 최적화 

     

    Ensemble 관점 (4) 
    Regression이면 예측값을 더해서 평균을 구하는것을 추천 
    Classification이면 Binary인 경우 threshold를 정해서 예측값 산출(본 포스팅에 있음)
    Multiple인 경우엔 VotingClassifier 또는 더해서 평균의 올림,반올림,내림을 통해서도 가능하나
    VotingClassifier를 추천 

     

    번외로 Top급의 인공지능 모델 하나의 성능이 지나치게 우수하다면 ,

    해당 모델의 Random State 만 수정(optuna를 통해 하이퍼파라미터 튜닝이 끝났다고 가정한 경우) 

    해서 여러개의 모델을 만들어 ensemble 하는 것도 고려 가능함

     

     

Designed by Tistory.