Py) ML - Scikit-Learn k-means 에러

Py) ML - Scikit-Learn k-means 에러

Scikit-learn 라이브러리를 사용해서 k-means 군집분석을 실시할 때 발생하는 에러를 해결한 경험을 공유한다.


문제 상황

Scikit-learn 라이브러리를 사용해서 k-means 군집분석을 실시하려고 했을 때 에러가 발생하는 경우가 있다. 다음의 코드와 같이 KMeans() 클래스로 생성한 k-means 객체의 .fit() 메서드를 사용할 때 에러가 발생하였다.

1
2
model_kmeans = KMeans(n_clusters = 7, random_state = 123)
model_kmeans.fit(arr_data)

에러 메세지의 마지막 문구는 다음과 같다.

AttributeError: ‘NoneType’ object has no attribute ‘split’

해결 방법

해당 문제가 발생한 Scikit-learn 라이브러리 버전은 1.3.1로 1.2.2로 다운그레이드를 해도 해결되지 않았으며 해당 문제는 “threadpoolctl” 라이브러리의 버전을 3 이상으로 업그레이드를 해주면 문제가 해결되는 것을 확인하였다. 다음의 코드를 주피터노트북의 셀에서 실행할 수 있다.

!pip install threadpoolctl --upgrade

참고

본 내용은 다음의 게시글을 참고하였다. (2023-10-20 기준)
https://github.com/scikit-learn/scikit-learn/issues/24238

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×