-
데이콘 관련 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 하는 것도 고려 가능함
'머신러닝 > FAQ' 카테고리의 다른 글
평가 산식 (metrics) , 데이터 타입에 대한 대응 (0) 2023.04.13 PCA를 활용한 차원 축소 방법 (1) 2023.04.13 Feature Importance를 활용한 피쳐 엔지니어링 (0) 2022.09.01 Scaling - MinMaxScaler (0) 2022.09.01 데이콘 관련 FAQ & Tip (0) 2022.08.25