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

1. ML 학습 프로세스
- 모델 객체 생성 : DecissionTree, Xgboost 등…
- 모델 객체의 fit 메서드로 학습
- 학습 완료 → 모델 객체의 pred 메서드로 예측
- input : X_test
- output: pred
- 정확도 측정으로 모델 평가
2. 추가 활용 기법
KFold 교차 검증
- 객체 생성 → n_split 파라미터로 Fold수 지정
- 객체의 split 메서드를 통해 각 Fold에 해당되는 train, test 인덱스 추출
- for문으로 각 fold에 해당하는 train, test 인덱스 호출
- for문 내에 모델 학습 및 정확도 측정 코드 입력
- 불균형 레이블 → StratifiedKFold사용 (split 메서드에서 라벨 컬럼 추가 입력 필요)
- cross_val_score (기본적으로 StratifiedKFold 방식)
- 각 Fold 학습 및 검증 시 모델에 누적 학습되는 것이 아니라 매번 새로운 모델 생성
- 결과를 바탕으로 모델 일반화 성능을 확인하고, 하이퍼 파라미터 튜닝 등의 모델 개선에 활용
GridSearchCV
- 객체 생성
- input : 학습 모델, 파라미터 딕셔너리, CV 횟수 등
- 객체의 fit 메서드로 학습
- 객체의 cvresults 속성 → 각 조합별 점수 및 순위 확인 가능
- bestparams, bestscore : 최적 파라미터 조합 및 점수
- bestestimator : 최적 모델 (해당 객체로 predict 메서드 사용 가능)
LabelEncoding
- 트리계열에서 사용 O : 숫자의 크기에 대한 영향이 없기 때문
- 선형회귀 같은 알고리즘에서는 사용 X
- 특정 컬럼만 선택해서 fit_transform 가능
Min-Max Scaler / Standard Scaler
- Scaler 객체 생성
- fit + transform 메서드로 처리
- 변환되면 numpy ndarray로 반환
- fit_transform 메서드는 학습 + 변환 → 학습데이터 셋 에서만 사용
- 테스트 데이터 셋에서는 학습데이터 셋으로 학습이 완료된 Scaler 객체의 transform 메서드만 사용해서 스케일링을 수행해야 함
- 특정 컬럼만 선택해서 스케일링 가능