yellow brick은 머신러닝 결과나 과정, 지표를 시각화하여 볼 수 있어 유용한 패키지이다.


그 중에 하나로 K-Means 군집분석의 군집 갯수를 가늠할 때 사용하는 엘보우 메소드가 있다. 최근에 해당 함수를 이용하려고 하니 에러가 발생한다.
오늘은 yellow brick, elbow method를 이용할 때 발생하는 에러에 대한 대처법을 알아보고자 한다.

 

 

Elbow Method, Assertion Error

 

 

1. 에러 내용

아래와 같이 KelobowVisualizer 함수를 실행했다.

 

 

from yellowbrick.cluster import KElbowVisualizer
from sklearn.cluster import KMeans

model = KMeans()
visualizer = KElbowVisualizer(model, k=(1,10))
visualizer.fit(X)

 

 

결과가 나오기는 하지만 AttributeError: 'KMeans' object has no attribute 'k' 에러가 발생한다. 에러가 나도 결과가 나오는게 신기하다. 결과가 나오니 그냥 넘어가려 했으나, 그래도 뭔가 찝찝하다.

 

 

에러가 났지만 결과는 나왔다

 

 

KMeans에는 입력파라미터 k가 없다. 혹시나 해서 n_clusters로 아래와 같이 바꿔봤지만 여전히 해결되지 않았다.


2. 해결 방법

다른 함수를 이용해서 해결할 수 있었다. yellow brick 패키지에는 elbow method를 위한 또다른 함수 kelbow_visualizer가 있다.

Documentation은 보면 기능은 동일하지만, 더 빠른 방법의 함수라고 한다. KElbowVisualizer와 다르게 한 줄이면 실행이 가능하다.

 

 

from yellowbrick.cluster.elbow import kelbow_visualizer
from sklearn.cluster import KMeans

model = KMeans()
visualizer = kelbow_visualizer(model, X, k=(1,10))

 

 

위 함수를 이용하니 잘 작동한다.

 

 

kelbow_visualizer 실행결과

 

 

오늘은 이렇게 yellow brick, AttributeError: 'KMeans' object has no attribute 'k' 에러 해결 방법에 대해서 알아보았다.

 

필자의 블로그에는 군집 분석과 관련된 다른 포스팅도 많이 있다. 관심 있다면 아래 포스팅을 참조하기 바란다.

 

 

Recommendation 포스팅

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기