Python 튜토리얼

Lv4 모델링 5/8 파이썬 python stratified k-fold 란 ?

2021.08.25 11:53 5,722 Views

이전에 Lv3에서 K-fold 교차검증에 대해서 배웠습니다.  👉Lv3 | 모델링 | 교차 검증 정의 K-Fold👈

k-fold 교차검증에 대해 간단히 설명하면 학습 데이터 셋을 학습 데이터와 검증 데이터로 나눠 반복해서 검증 및 평가 하는 것을 의미 합니다.


k-fold 의 문제점


k-fold의 경우 데이터 셋을 일정한 간격으로 잘라서 사용합니다.

그러다 보니 target의 비율이 일정하지 않게 테스트 셋에 들어 갈 수 있습니다.

만약 target이 0, 1, 2 세가지로 이뤄져 있는데, 이 상황에서 데이터를 잘라서 학습 할 때 0, 1만 답으로 가지고 있는 학습데이터를 가지고 학습을 했을때는 당연하게도 모델은 2라는 답을 도출 할 수 없을 것입니다 .

마찬가지로 1, 2만 가지고 학습을 진행한다면 0이라는 답을 도출 할 수 없을 것입니다. 이러한 점이 k-fold의 치명적인 문제점입니다.



stratified k-fold


k-fold의 문제점인 target 데이터의 비율을 일정하게 유지 하지 못하는 것을 일정 하게 유지하며, 교차 검증을 진행 하는 것을

stratified k-fold 라고 합니다.👴


stratified k-fold의 사용법은 다음과 같습니다.

from sklearn.model_selection import StratifiedKFold   #sklearn 에서 라이브러리 호출

skf = StratifiedKFold  (n_splits = 5) # n_splits 는 나눌 fold의 갯수.

for train_idx, valid_idx in skf.split(X,y):
    

   # 인덱스를 이용해 학습 데이터 셋과 검증 데이터 셋으로 나눔

    train_df = train.iloc[train_idx]
    valid_df = train.iloc[valid_idx]
                            .
                            .
                            .


다음 시간에는 stratified k-fold와 light gbm 을 이용해  와인 품질 분류 실습을 진행 해보도록 하겠습니다.👩‍💻👨‍💻


감사합니다. 👋👋


↩️ 오늘의 파이썬 리스트

#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선  #데이터분석 #데이터사이언티스트 #코랩 #Python  #colab #kaggle #pandas #numpy #sckit-learn # read_csv #스케일링 #k-fold # stratified k-fold

로그인이 필요합니다
0 / 1000
그린티
2021.09.12 20:28

done

다욤
2021.09.20 01:58

done

Holte
2021.10.12 09:20

왼쪽눈썹왁싱
2021.11.01 20:32

페드로
2021.11.16 15:59

done!

changhyeon
2021.12.30 17:25

done

dbnoid
2022.01.19 09:16

hijihyo
2022.01.27 14:06

acebed
2022.03.10 21:08

done

kimgugu
2022.03.28 13:51

Kdata
2022.05.03 14:42

krooner
2022.05.19 23:33

Y2J
2022.07.14 16:19

Choijyun
2022.08.01 14:01

done

highllight
2023.02.12 22:39

김시옷
2023.05.28 16:28

done+