머신러닝
-
평가 산식 (metrics) , 데이터 타입에 대한 대응머신러닝/FAQ 2023. 4. 13. 12:18
평가 산식은 일반적으로 예측 결과를 제출한 후에 right answer 와 prediction(예측값)의 차이에 대한 성능 지표이다. 위의 언급한 내용과 같이 평가에 대한 내용이라서 예측을 하는 참여자 입장에서 평가산식의 중요도는 최초에는 크지 않다. 다만 평가산식이 중요시하는 가치에 따라서 예측결과의 편향성을 고려해야하는 전제로 본다면 중요할 수 있는데 최초의 baseline의 제출에 있어서는 크게 중요시하지 않는다. 평가산식을 활용할 경우는 분류 문제에서 precision , recall 등의 편향성을 띈 산식을 사용하는 경우 ex) precision이면 predict probability를 아주 높게 하면 됨 , recall이면 모두 positive로 예측하면 됨 또는 , cross validati..
-
PCA를 활용한 차원 축소 방법머신러닝/FAQ 2023. 4. 13. 10:18
오랜만에 포스팅을 올립니다. PCA를 활용한 차원 축소는 일반적으로 정형데이터 feature(columns) 갯수가 많아 overfitting될 가능성이 있는 경우 해당 차원(일반적으로 feature 갯수 = 차원 갯수)에 대한 정보는 소실되지 않으면서 차원을 줄일 수 있는 방법이다. (자세한것은 구글에 PCA를 검색하면 쉽게 개념에 대해 접할 수 있음) 이번에는 아주 간략하게 PCA를 구현하는 파이썬 코드를 통해 만들어보고자 한다. 데이터는 데이콘의 전복나이예측경진대회의 데이터를 활용하였고, 방법은 어느 데이터든 동일하다. 참고로 featrue갯수가 많다는것은 보통 50개 이상 정도의 정형데이터의 차원에서 한번 try 해보는것을 추천한다. import pandas as pd import numpy as..
-
데이콘 관련 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을 통해 데이터 분..
-
Feature Importance를 활용한 피쳐 엔지니어링머신러닝/FAQ 2022. 9. 1. 11:26
Feature를 선정하기 위해서는 여러가지 기준이 필요하다. 머신러닝 모델의 하이퍼파라미터를 통해 예측률을 높이는것 보다 적절한 feature engineering을 통해 전처리를 하는것이 훨씬 더 큰 영향을 준다.(일반적으로) 따라서 이번에는 feature importance에 대해 알아보도록 한다. feature importance는 통상 머신러닝 학습 모델에서 제공해주는 parameter로 모델을 선언하고 충분한 학습 후에 확인 가능하며 , 모델에 따라 조금 상이한 점이 있기 때문에 그런 부분을 감안해서 분석 및 활용하는것을 추천한다. Feature Importance 활용 방법 1) 모델 선언 및 학습 2) 모델 내의 feature_importance_ 를 통해 주요한 feature 추출 3) 주..
-
Scaling - MinMaxScaler머신러닝/FAQ 2022. 9. 1. 06:34
이번 포스팅에서는 자주 문의가 들어오는 scaling에 대해 알아보고자 한다. MinMaxScaler는 모든 value를 0~1 (0:min , 1:max)로 변환하여 scaling이 상대적으로 큰 feature에 의해 나머지 feature가 무시되는 bias한 상황을 방지하기 위한 전처리방법 중 하나이다. 일반적으로 데이터의 분포도가 한쪽으로 쏠려있는 경우에도 종종 사용한다. 1개의 feature(columns)에 대해서만 scaling 하는 경우 train["Columns_A"] ### train데이터가 있다고 가정하고 Columns_A 컬럼을 MinMax Scaling 해보자 from sklearn.preprocessing import MinMaxScaler ### 스케일러를 불러온다 scaler ..
-
Ensemble 활용방안 2편(Multiple Classification , Voting Classifier)머신러닝/Ensemble 활용방안 2022. 9. 1. 06:19
이번에는 지난 포스팅에서 다루었던 binary classification & regression 외의 추가적인 ensemble에 대해서 다뤄 보고자 한다. 1) Multiple Classification Target Value가 0,1 이 아니라 여러개일 경우에 앞서 언급한 Ensemble 활용방안 1편의 내용을 그대로 활용하면 안된다. 항상 문제를 정확히 파악 및 이해 후 전략적으로 접근을 하는것이 예측률을 높이는 중요한 방법임을 명심하자 Target이 Multiple classification(타겟값이 여러개)일 경우 예를들어 Target value list = [0,1,2,3,4,5]라고 가정해보자 rf_clf cat_clf xgb_clf lgbm_clf ensemble pred (예측값) 0 1 ..
-
Ensemble 의 기본머신러닝/Ensemble 활용방안 2022. 8. 25. 12:20
이번에는 Ensemble(앙상블)에 대해 정리해보고자 한다. Ensemble은 Assemble의 불어이다. 거두절미하고 본론으로 들어가면 , 2개 이상의 모델의 결과를 조합해서 최적을 만들어내는 방식으로, 회귀/분류 모델마다 약간의 상이한점이 있다. 본 포스팅에서는 sklearn에서 일반적으로 제공하는 VotingClassifier의 활용보단 Customizing한 방법을 설명하고자 한다. 추후 Voting의 'soft voting' , 'hard voting' 등등 다양한 개념들을 포스팅하고자한다. Regression(회귀)문제에서의 Ensemble은 대수적으로 더하고 나누고 비율을 선정하는 경우가 많다. cat_reg = CatBoostRegressor() cat_reg.fit(X_train ,y_t..
-
데이콘 관련 FAQ & Tip머신러닝/FAQ 2022. 8. 25. 08:46
제출파일을 만들 때 , index = False 꼭 잊지 말기 submission.to_csv("submission_횟수_방법.csv" , index = False) subplot 플로팅하기 (histogram) import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize = (40,40)) ## 해당 셀에서 실행될 fig size 설정 cols = train.columns for i in range(len(cols)): plt.subplot(8 , 3 , i +1) ### cols가 24개보다 크면 8:행 , 3:열 값 키워줘야함 plt.title(cols[i] , fontsize = 25) plt.hist(train[cols[i]]..