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 함수