inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

KFOLD의 For 구문 작성시 DATAFRAME 적용 질문

216

김민재

작성한 질문수 1

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
features와 lable 인자가 DataFrame 형태로 넣었을 때
해당 코드를 돌려보면 accuaracy 값이 3번 모두 1.0이 나옵니다.
DataFrame을 인자로 받을 때는 인덱싱을 어떻게 진행해야되는지 알고 싶습니다.

featues = iris_df[ :, :-1 ]

labels = iris_df["label"]

for train_index, test_index in skfold. split( features, labels ) :

X_train, y_train = features. iloc[train_index], labels. iloc[train_index]

X_test, y_test = features. iloc[test_index], labels. iloc[test_index]

dt_clf.fit(X_train,y_train)

pred= dt_clf.predict(X_test)

accuracy= np.round(accuracy_score(y_test, pred),4 )

 

python 통계 머신러닝 배워볼래요?

답변 2

0

김민재

강사님 안녕하세요! 

아래와 같이 코드 작성하여 실행하였습니다.

어제는 cv_accuacy 값이 모두 1이 나왔는데 오늘은 정상작동하는 걸로 보입니다(에디터 문제인지... )

>>> [0.98, 0.92, 0.92]

질문1. KFOLD에서 pandas DataFrame을 인자로 받을 때 아래 코드로 만들어 보았는데 이렇게 수행하여도 무방한지 알고 싶습니다. 

질문2. 해당 강의 13:37에 나오는 예제에서 skf.split( )의 인자로 feature 값을 iris_df로 넣어주셨는데, Label 값이 포함된 DataFrame을 넣어도 결과 값에는 차이가 없는지 궁금합니다. iris_df는 위에서 DataFrame을 만들때 Label 값을 포함한걸로 보여서, 순수하게 feature값만 추출하려면 iris_df.iloc[ : , :-1]로 해야하는건 아닌가해서 여쭤봅니다. 

 

감사합니다

 

 

import pandas as pd

import numpy as np

import sklearn

from sklearn.datasets import load_iris

from sklearn.tree import DecisionTreeClassifier

from sklearn.model_selection import train_test_split, KFold, StratifiedKFold

from sklearn.metrics import accuracy_score

 

iris = load_iris()

dt_clf = DecisionTreeClassifier( random_state=11 )

cv_accuracy = []

 

# 판다스 데이터로 변환

iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)

iris_df["label"] = iris.target   # iris_df에 label 항목 포함

features_pd = iris_df.iloc[:,:-1]

label_pd = iris_df["label"]

 

n_iter = 0

skfold = StratifiedKFold(n_splits=3)

 

for train_index, test_index  in skfold.split(features_pd, label_pd):

    # split( )으로 반환된 인덱스를 이용하여 학습용, 검증용 테스트 데이터 추출

    X_train, y_train = features_pd. iloc[train_index], label_pd. iloc[train_index]

    X_test, y_test = features_pd. iloc[test_index], label_pd. iloc[test_index]

    dt_clf.fit(X_train, y_train)

    pred = dt_clf.predict(X_test)

    accuracy = np.round(accuracy_score(y_test, pred),4 )

    cv_accuracy.append(accuracy)

 

print(cv_accuracy)

0

권 철민

해결이 되었다니 다행입니다. 

네, 질문 1,2 모두 그렇게 하셔도 무방합니다. 

감사합니다. 

0

권 철민

안녕하십니까, 

전체 코드를 제가 돌려 볼수 있게 정제해서 다시 올려 주십시요.  그리고 featues = iris_df[ :, :-1 ] 는 수행되지 않는 코드 입니다.

 

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

50

2

안녕하세요 열심히 수강중인 학생입니다

0

86

2

정수 인덱싱

0

86

2

넘파이 오류

0

108

2

11강 numpy의 axis 축 질문 드립니다.

0

106

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

93

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

76

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

83

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

73

2

5강 강의 오류가 있어요.

0

90

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

81

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

75

3

파이썬 다운그레이 후 사이킷런 재설치

0

128

2

좋은 강의 감사합니다.

0

79

2

scoring 함수 음수값

0

72

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

108

2

분류 평가 정확도 예측

0

87

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

114

1

카카오톡 채널 있나요

0

118

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

193

2

pca 스케일링 관련하여 질문드립니다.

0

109

2

주피터 대신 구글 코랩

0

184

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

155

2

실루엣 스코어..

0

91

2