강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

잘삽시다님의 프로필 이미지
잘삽시다

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

교차검증 - K-Fold와 Stratified K-Fold의 이해 - 01

안녕하세요. iloc 관련되서 궁금한 점이 있습니다.

해결된 질문

작성

·

183

0

코드를 보는 도중 궁금해서 확인차 질문 드립니다.

iloc(train_index), iloc(text_index) 인자 값이 어떻게 반환되는지 궁금합니다.

아래 코드에서 

print코드 몇 개 추가를 해서 확인을 했습니다.

train_index 기존 타입은 ndarray가 나오고

iloc로 해서 변환된 값으로는 Series 형식인데

그러면 iloc(train_index)에는 실제 iloc(100)으로 위치 인자가 입력되서 갑을 표현 할 때는 index 기준 0~99에 할당된 값을 출력한 부분인지 궁금합니다.

-----------------------------------------------------

추가 코드:

print('train_index :',train_index,type(train_index))

print('test_index:',test_index)

print('label_train:\n',label_train,type(label_train))

print('label_test:',label_test)

------------------------------------------------------

코드 :

from sklearn.model_selection import StratifiedKFold

skf = StratifiedKFold(n_splits=3)

n_iter=0

for train_index, test_index in skf.split(iris_df, iris_df['label']):

    n_iter += 1

    label_train= iris_df['label'].iloc[train_index]

    label_test= iris_df['label'].iloc[test_index]

    print('## 교차 검증: {0}'.format(n_iter))

    print('학습 레이블 데이터 분포:\n', label_train.value_counts())

    print('검증 레이블 데이터 분포:\n', label_test.value_counts())

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

일단 제가 질문을 정확하게 이해하지 못했습니다.

질문 중에 'iloc(train_index), iloc(text_index) 인자 값이 어떻게 반환되는지 궁금합니다' 부분과 '그러면 iloc(train_index)에는 실제 iloc(100)으로 위치 인자가 입력되서 갑을 표현 할 때는 index 기준 0~99에 할당된 값을 출력한 부분인지 궁금합니다.'가  어떤 의미인지 잘 이해를 못했습니다.

먼저 train_index를 skf.split(iris_df, iris_df['label'])의 반환값으로 위치 인덱스 값을 가지는 ndarray 입니다.  그리고 iris_df['label'].iloc[train_index] 는 iris_df['label'] 이 Series이고 여기서  iris_df['label'].iloc[train_index]는 Series에서 train_index가 가리키는 위치 인덱스 데이터를 가져오게 되므로 역시 Series입니다.

원하시는 답변이 아니면 다시 글 업데이트 부탁드립니다.

감사합니다.

잘삽시다님의 프로필 이미지
잘삽시다

작성한 질문수

질문하기