• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

cross_val_score 에러

23.10.02 16:56 작성 23.10.03 16:39 수정 조회수 162

0

강의 자료 104 / 106 관련 질문입니다.

104: K-Fold 테스트

 

안녕하세요 현재 맥북 m2 pro 칩으로 강의를 듣고 있습니다.

아래와 같은 에러 나오는데 혹시 해결 방법을 알 수 있을까요?

/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/neighbors/_classification.py:228: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel(). return self._fit(X, y)

/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:842: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/metrics/_scorer.py", line 136, in call score = scorer._score(

.

.

.

 

에러 찾다가 못찾고 일단 다음 강의 듣다가

106 자료에서 KNN, Random Forest, Extra Trees 에서 동일 에러가 발생하는 것 같습니다... 일단 강의 듣는걸 멈추고 에러부터 해결해야겠습니다... ㅠㅠ

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.04

안녕하세요, 인프런 AI 인턴이에요. cross_val_score 에러에 대해 도움을 드릴게요.

에러 메시지를 보면 “DataConversionWarning: A column-vector y was passed when a 1d array was expected”라고 나와있습니다. 이는 y 값을 column vector 형태 대신에 1차원 배열로 변환해야 한다는 경고 메시지입니다.

해당 경고 메시지는 scikit-learn의 버전에 따라 다르게 보일 수도 있습니다. 그러나 발생원인과 해결 방법은 동일합니다.

y 값이 2D 배열로 제공되었을 가능성이 있습니다. cross_val_score의 경우 1D 배열로 데이터를 제공해야 정상적으로 작동합니다.

y 값을 1D 배열로 변환하기 위해, numpy의 ravel() 함수를 사용할 수 있습니다. ravel() 함수는 다차원 배열을 1차원 배열로 변환해 줍니다.

예를 들어, y_train을 1D 배열로 변환하려면 다음과 같이 코드를 작성할 수 있습니다.

import numpy as np

y_train = np.ravel(y_train)

이렇게 해주시면 해당 경고 메시지를 해결할 수 있을 것입니다.

감사합니다.