sklearn 라이브러리의 k-NN 클래스 사용시 발생하는 특수한 에러 해결 방법을 다룬다.
문제 상황
sklearn 라이브러리의 KNeighborsClassifier()
를 사용하여 만든 모델 객체를 기반으로 예측값 산출을 위해 다음의 코드와 같이 KNeighborsClassifier()
클래스로 생성한 k-NN 객체의 .predict()
메서드를 사용할 때 에러가 발생하였다.
1 | model_knn = KNeighborsClassifier(n_neighbors = 5) |
.predict()
메서드를 사용하는 경우 다음과 같은 “Attribute” 에러가 발생하며 코드 실행이 되지 않는다.
AttributeError: Flags object has no attribute ‘c_contiguous’ when using KNeighborsClassifier predict
AttributeError: Flags object has no attribute ‘c_contiguous’
해결 방법
해당 에러는 sklearn 1.3.0 버전 때문에 발생한 문제로 다른 버전으로 재설치를 하면 해결이 될 수 있다. 대표적인 해결 방법은 버전을 1.2.2로 다운그레이드 하는 것이며 주피터노트북 환경에서 다음의 코드를 실행하면 된다.
!pip uninstall scikit-learn
!pip install scikit-learn==1.2.2
참고
본 내용은 다음의 게시글을 참고하였다. (2023-08-24 기준)
https://github.com/scikit-learn/scikit-learn/issues/26768