DATA ANALYSIS/Python 오류 해결

[오류 해결/sklearn] DataConversionWarning: A column-vector y was passed when a 1d array was expected.

쏘니(SSony) 2023. 5. 25. 11:00

모델을 돌리다보면 심심찮게 오류가 발생한다.

이건 warn이라 모델이 알아서 하긴 하는데 오류는 최대한 안 보는게 좋으니 해결해보자.

 

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().

데이터를 1차원 배열로 넣어달라.

ravel()을 이용하면 된다.

 

상당히 친절하다.

 

하지만 이렇게 대충하면 오류가 생긴다.

 

현재 내 데이터에서 y_train은 Dataframe 형태이다.

왜냐면 내가 그렇게 만들었기 때문이다.

 

 

RandomForestClassifier(n_estimators=100).fit(X_train_scaled, y_train.values.ravel())

이렇게 데이터프레임에서 values를 이용해 뽑아내고, 그것을 ravel() 해주면 된다.

 

RandomForestClassifier(n_estimators=100).fit(X_train_scaled, y_train.values.flatten())

같은 역할을 하는 flatten()을 사용해도 된다.

 

 

[ 함수 정리 ]

ravel(), flatten()

  • 다차원 배열(array)을 1차원 배열(array)로 평평하게 펴주는 numpy 함수

reshape()

  • 1차원 배열(array)을 다차원 배열(array)로 만들어주는 numpy 함수