• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

마지막 셀에서 오류가 납니다.

22.05.16 22:20 작성 조회수 210

0

dt_clf = DecisionTreeClassifier(random_state = 156)
 
skfold = StratifiedKFold(n_splits=3)
n_iter = 0
cv_accuracy = []

# StratifiedKFold의 split() 호출시 반드시 레이블 데이터 셋도 추가 입력 필요
for train_index, test_index in skfold.split(features, label):
# split()으로 반환된 인덱스를 이용하여 학습용, 검증용 테스트 데이터 추출
X_train, y_train = features[train_index], features[test_index]
X_test, y_test = label[train_index], label[test_index]
# 학습 및 예측
dt_clf.fit(X_train, y_train)                                                              
pred = dt_clf.predict(X_test)

# 반복 시 마다 정확도 측정
n_iter += 1
accuracy = np.round(accuracy_score(y_test, pred), 4)
train_size = X_train.shape[0]
test_size = X_test.shape[0]

print('\n#{0} 교차 검증 정확도: {1}, 학습 데이터 크기: {2}, 검증 데이터 크기: {3}'.
format(n_iter, accuracy, train_size, test_size))
print('#{0} 검증 세트 인덱스:{1}'.format(n_iter, test_index))
cv_accuracy.append(accuracy)

# 교차 검증별 정확도 및 평균 정확도 계산
print('\n## 교차 검증별 정확도:', np.round(cv_accuracy, 4))
print('## 평균 검증 정확도:', np.mean(cv_accuracy))
 
이런 코드를 작성했더니 dt_clf.fit(X_train, y_train)에서
ValueError: Unknown label type: 'continuous-multioutput'이라는 오류가 납니다.
 
이런 오류는 왜 발생하는 것이고 어떻게 해결하나요?
 
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

소스 코드 수정이 잘못되었군요.  아래의 skfold.split() for loop 내에서 학습과 검증 데이터를 추출로직에서

y_train값을 추출할 때 features에서 test_index를 가져오는 군요. label에서 가져 오셔야 합니다. 

 

X_train, y_train = features[train_index], features[test_index]

=> 는 아래와 같이 변경되어야 합니다.

X_train, y_train = features[train_index], label[train_index]

 

감사합니다.