TIL

TIL - 코드카타, 머신러닝 심화 1주차

pys6341 2025. 1. 27. 17:33

def solution(s):
    length = len(s)
    mid = length // 2
    
    if length %2 == 0:
        return s[mid-1:mid+1]
    else:
        return s[mid]

 


 

데이터 분리

 

과대적합 

데이터를 너무 과도하게 학습한 나머지 해당 문제만 잘 맞추고 새로운 데이터를 제대로 예측 혹은 분류하지 못하는 현상

 

 

과적합 원인

  • 모델의 복잡도
  • 데이터 양이 충분하지 않음
  • 학습 반복이 많음(딥러닝의 경우)
  • 데이터 불균형(정상환자 - 암환자의 비율이 95: 5)

 

해결 - 테스트 데이터의 분리

 

  • 학습 데이터(Train Data): 모델을 학습(fit)하기 위한 데이터
  • 테스트 데이터(Test Data): 모델을 평가 하기 위한 데이터
  • 함수 및 파라미터 설명
    • sklearn.model_selection.train_test_split
      • 파라미터
        • test_size: 테스트 데이터 세트 크기
        • train_size: 학습 데이터 세트 크기
        • shuffle: 데이터 분리 시 섞기
        • random_state: 호출할 때마다 동일한 학습/테스트 데이터를 생성하기 위한 난수 값. 수행할 때 마다 동일한 데이터 세트로 분리하기 위해 숫자를 고정 시켜야 함
      • 반환 값(순서 중요)
        • X_train, X_test, y_train, y_test

 

 

교차 검증

데이터 셋을 여러 개의 하위 집합으로 나누어 돌아가면서 검증 데이터로 사용하는 방법

 

  • K-Fold Validation
    • 정의: Train Data를 K개의 하위 집합으로 나누어 모델을 학습시키고 모델을 최적화 하는 방법
    • 이때 K는 분할의 갯수
      • Split 1: 학습용(Fold 2~5), 검증용(Fold1)
      • Split 2: 학습용(Fold1, 3~5), 검증용(Fold2)
      • Split 5까지 반복 후 최종 평가

특징

  • 데이터가 부족할 경우 유용함

 

  • 함수
    • skelarn.model_selection.KFold
    • sklearn.model_selection.StrifiedKFold: 불균형한 레이블(Y)를 가지고 있을 때 사용

 

데이터 분석 프로세스

 

'TIL' 카테고리의 다른 글

심화 프로젝트 3일차  (1) 2025.02.06
심화 프로젝트 2일차  (0) 2025.02.05
TIL - 코드카타, 머신러닝 심화(~1-7)  (0) 2025.01.24
TIL - 코드카타, 머신러닝 기초  (0) 2025.01.23
TIL - 코드카타, 머신러닝 기초(~1-12)  (0) 2025.01.22