[ML/DL] Machine Learning 기본 (1)

Jk Lim·2023년 8월 31일
0

ML/DL

목록 보기
1/2

1. ML 학습 프로세스

  1. 모델 객체 생성 : DecissionTree, Xgboost 등…
  2. 모델 객체의 fit 메서드로 학습
    • input : X_train, y_train
  3. 학습 완료 → 모델 객체의 pred 메서드로 예측
    • input : X_test
    • output: pred
  4. 정확도 측정으로 모델 평가
    • input: y_test, pred

2. 추가 활용 기법

KFold 교차 검증

  1. 객체 생성 → n_split 파라미터로 Fold수 지정
  2. 객체의 split 메서드를 통해 각 Fold에 해당되는 train, test 인덱스 추출
  3. for문으로 각 fold에 해당하는 train, test 인덱스 호출
  4. for문 내에 모델 학습 및 정확도 측정 코드 입력
    • 불균형 레이블 → StratifiedKFold사용 (split 메서드에서 라벨 컬럼 추가 입력 필요)
    • cross_val_score (기본적으로 StratifiedKFold 방식)
    • 각 Fold 학습 및 검증 시 모델에 누적 학습되는 것이 아니라 매번 새로운 모델 생성
    • 결과를 바탕으로 모델 일반화 성능을 확인하고, 하이퍼 파라미터 튜닝 등의 모델 개선에 활용

GridSearchCV

  • 최적파라미터 찾기 + 교차검증(CV)
  1. 객체 생성
    • input : 학습 모델, 파라미터 딕셔너리, CV 횟수 등
  2. 객체의 fit 메서드로 학습
    • input : X_train, y_train
  3. 객체의 cvresults 속성 → 각 조합별 점수 및 순위 확인 가능
  4. bestparams, bestscore : 최적 파라미터 조합 및 점수
  5. bestestimator : 최적 모델 (해당 객체로 predict 메서드 사용 가능)

LabelEncoding

  • 트리계열에서 사용 O : 숫자의 크기에 대한 영향이 없기 때문
  • 선형회귀 같은 알고리즘에서는 사용 X
  • 특정 컬럼만 선택해서 fit_transform 가능

Min-Max Scaler / Standard Scaler

  • Scaler 객체 생성
  • fit + transform 메서드로 처리
  • 변환되면 numpy ndarray로 반환
  • fit_transform 메서드는 학습 + 변환 → 학습데이터 셋 에서만 사용
  • 테스트 데이터 셋에서는 학습데이터 셋으로 학습이 완료된 Scaler 객체의 transform 메서드만 사용해서 스케일링을 수행해야 함
  • 특정 컬럼만 선택해서 스케일링 가능

0개의 댓글