머신러닝을 위한 사이킷런 활용 팁 - 머신러닝 모델 선택 및 K-Fold 교차 검증

2022. 2. 13. 18:48·프로젝트/코드프레소 체험단

Model Selection API

 - Scikit-learn API

 - 최적의 머신러닝 모델 탐색

 - 모델 구성 및 학습에 필요한 다양한 API 제공(데이터 셋 분리, 교차 검증 분할 및 평가, 하이퍼 파라미터 튜닝, etc)

 

머신러닝 모델 개발 과정
1. Training 데이터셋으로 모델 학습
2. 학습된 모델을 Validation 데이터셋으로 검증
3. 검증 결과, 성능이 좋지 않으면 모델을 튜닝한 후 Training 데이터셋으로 재학습
4. 만족할만한 성능이 나올 때까지 1부터 3까지 반복
5. 최종적으로 최적화된 모델(Optimized Model)을 Testing 데이터셋으로 모델의 서비스 가능 여부를 확인

Training Data Set : 머신러닝 모델의 학습에 사용되는 데이터셋

Validation Data Set : 학습된 머신러닝 모델에서 성능 개선 지표로 사용되는 데이터셋

Testing Data Set : 학습된 머신러닝 모델의 서비스 가능 여부를 최종 확인하는 데이터셋

Data Set

 

 * Cross Validation(교차 검증)을 해야하는 이유
Testing 데이터셋만을 이용하여 모델 성능 개선을 이룰 때. (Validation 데이터셋 없이)
-> Testing 데이터에만 최적화된 모델이 만들어짐
-> 최종적으로 모델의 서비스 가능 여부를 확인하는 테스트 데이터의 효과가 사라짐

Training 데이터셋에서 Validation 데이터셋을 분리하여 성능 개선을 이룰 때.
-> 데이터의 분포가 편향될 수 있음
-> 정확한 검증이 되지 않음

 

따라서, 여러 셋으로 구성된 Validation Data Set을 통해 성능 개선을 해야한다.

 

K-Fold Cross Validation(K겹 교차 검증)

 - 가장 보편적으로 사용되는 교차검증 방법

 - K개의 데이터 Fold(train과 validation 데이터셋의 묶음)를 만들어 학습과 검증 평가를 반복 수행

 - 데이터 Fold들의 평가 지표를 평균낸 값이 K-Fold 평가 지표

 - 교차검증을 편리하게 수행하기 위해 Scikit-learn에서 제공되는 API : KFold, StratifiedKFold, cross_val_score

K-Fold Cross Validation

 

Stratified K Fold Cross Validation

 - cross_val_score의 방식

 - 회귀분석 : 연속된 숫자 값을 예측하기 때문에 label 데이터의 분포는 의미 없음. K Fold를 사용한 Cross Validation 수행

 - 분류분석 : 반드시 Stratified K Fold를 사용한 교차검증을 수행해야 함

 

'프로젝트 > 코드프레소 체험단' 카테고리의 다른 글

머신러닝을 위한 사이킷런 활용 팁 - 머신러닝 모델의 최적 파라미터 탐색  (0) 2022.02.13
머신러닝을 위한 사이킷런 활용 팁 - K-Fold 교차 검증 실습  (0) 2022.02.13
파이썬으로 구현하는 머신러닝 - 완강 후기  (0) 2022.02.13
파이썬으로 구현하는 머신러닝 : 비지도학습 - LDA 실습  (0) 2022.02.12
파이썬으로 구현하는 머신러닝 : 비지도학습 - 선형판별분석(LDA)의 개념  (0) 2022.02.12
'프로젝트/코드프레소 체험단' 카테고리의 다른 글
  • 머신러닝을 위한 사이킷런 활용 팁 - 머신러닝 모델의 최적 파라미터 탐색
  • 머신러닝을 위한 사이킷런 활용 팁 - K-Fold 교차 검증 실습
  • 파이썬으로 구현하는 머신러닝 - 완강 후기
  • 파이썬으로 구현하는 머신러닝 : 비지도학습 - LDA 실습
KimCookieYa
KimCookieYa
무엇이 나를 살아있게 만드는가
  • KimCookieYa
    쿠키의 주저리
    KimCookieYa
  • 전체
    오늘
    어제
    • 분류 전체보기 (576)
      • 혼잣말 (88)
      • TIL (3)
      • 커리어 (24)
        • Sendy (21)
        • 외부활동 기록 (2)
      • 프로젝트 (186)
        • 티스토리 API (5)
        • 코드프레소 체험단 (89)
        • Web3 (3)
        • Pint OS (16)
        • 나만무 (14)
        • 대회 (6)
        • 정글 FE 스터디 (16)
        • MailBadara (12)
        • github.io (1)
        • 인공지능 동아리, AID (5)
        • 졸업과제 (18)
        • OSSCA 2024 (1)
      • 크래프톤 정글 2기 (80)
      • IT (169)
        • 코딩 (4)
        • CS (18)
        • 에러 (5)
        • 블록체인 (23)
        • Front-End (40)
        • 알고리즘&자료구조 정리 (3)
        • 코딩테스트 (3)
        • BOJ 문제정리 (41)
        • WILT (12)
        • ML-Agents (4)
        • 강화학습 (1)
        • Android (0)
        • LLM (2)
      • 전공 (1)
        • 머신러닝 (1)
      • 자기계발 (20)
        • 빡공단X베어유 (2)
        • 독서 (15)
  • 블로그 메뉴

    • 홈
    • 방명록
    • Github
    • Velog
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    졸업과제
    센디
    프로그래머스
    블록체인
    Flutter
    리액트
    파이썬
    핀토스
    Pint OS
    딥러닝
    docker
    나만무
    알고리즘
    OS
    numpy
    해커톤
    글리치해커톤
    자바스크립트
    부산대
    react
    JavaScript
    니어프로토콜
    MailBadara
    크래프톤정글
    pintos
    코드프레소
    NEAR Protocol
    머신러닝
    사이드프로젝트
    RNN
  • hELLO· Designed By정상우.v4.10.3
KimCookieYa
머신러닝을 위한 사이킷런 활용 팁 - 머신러닝 모델 선택 및 K-Fold 교차 검증
상단으로

티스토리툴바