데이터분석/Machine Learning

비계층적 군집화과 k평균

늘근이 2017. 8. 13. 08:35

덴드로그램으로 사용하던 계층적 군집방법 말고,

비계층적 군집방법은 다음과 같다.

k-means clustering

Expectation-Maximization

Density-based clustering

Fuzzy clustering

이 중, 제일 유명한것은 k-means clustering.

일단 분석대상인 데이터가 뭉텅이로 있다고 치자. 

데이터의 양상을 좀 보려면 크게크게 나눠서 패턴이 어떻게 되는지 보는게 좋아보인다. 다만 비지도 학습이기 때문에 데이터에 대한 어느정도 합리적인 추측이 필요한데, 몇개의 군집으로 나누면 좋을것인지에 대한 판단은 들어가야되기 때문.

즉, 군집이 몇개 나눠져야 하는지를 사전에 정해야 하는데, 나누고 싶은 계층이 부자 / 중산층 / 서민 과같이 대략적으로 목적이 있으면 그냥 그렇게 하면 되는데, 전혀 감이 없으면 다시 한번 정해야한다.

'엘보우' 기법을 이용하면 상당히 정확한 군집의 동질성과 이질성을 발견하는데 상당한 도움을 주지만 보통은 그냥 샘플이 100개면 루트를 씌워 10개를 일단 해본다거나 하는 대충나누는 방법도 쓰는 듯 보인다.

다만, 군집을 너무 많이 나누면 어떤 모델이 그렇듯이 과적합화의 위험은 피할수없다.


어쨌든 다음과 같은 샘플이 있다고 하자. 도형의 모양은 일단 신경쓰지 않는다.

처음 검은 세점은 군집의 중앙으로써의 처음 대표로 활용할 놈들을 일단 골라낸것이다. 세 군집을 만들기 위한 준비운동이랄까. 임시반장이랄까?

1) 저기서, 동그라미점들은 검은 동그라미점에 제일 가깝다. 네모도 그렇다고 치자. 세모도 그렇다고 치자. 근데 임시반장 점은 정확히 모든 점들의 평균은 아니다.

평균점은 실제로 그자리에 점이 찍혀있을수도 있고 아닐수도 있고, 임시반장점과 자리가 가깝지만 정확히 그 값은 아닐것이다.

2) 그래서 모두 그값으로 반장자리를 넘겨줘야한다.

이제 이점은 실제의 데이터는 아니지만 어쨌든 각각점과 균형을 맞추고 있는 정확한 평균점이기는 하다.

근데 보니까 대표가 되는 값이 바뀌는 동시에 아예 다른 군집으로 넘어가버려야 하는 점이 있다. 가운데 네모점은 아무래도 동그라미와 더 가까운것같다. 그래서 아예 동그라미로 만들어버리자.

가운데 빨간네모가 파란네모로 바뀐것은, 군집이 원래의 동그라미 군집으로 넘어가버렸다는것. 대신 이 점이 넘어가는 동시에 평균값 (대표값)이 다시 바뀌어버린다.

뭔가 영원히 이게 삥삥이 돌거같지 않은가? 어쨌든 k평균을 이용한 군집은 이게 더이상 변화가 없을때까지 컴퓨팅파워를 긁어먹는다.

K 평균을 통한 군집 나누기는 따라서 초기값에 영향을 받고, 군집의 갯수에도 영향을 받기때문에 적절한 결과를 내기 위해서는 여러번 돌리는 것도 필요하다.

R에서는 stats패키지의 kmeans 라는 메서드를 사용하면 된다.

실무적으로 제일 크게 나타나는 문제는 군집마다 상당히 사이즈 차이가 날수있다는 것이다. 어떤 군집은 1명만 포함될수도 있고 (워낙 이상한 놈이라면) 어떤 군집은 전체 데이터의 90%가 넘는 군집이 될수도 있다는 것이다. 몇가지 이상값들을 제거하는 과정이 필요할수도 있을것이다.

그렇다면 어떤 카테고리에 써먹을수있을까?

어떻게든 데이터분석은 돈되는 분야인 마케팅과 밀접한 관계가 있을수밖에 없다.

자동차 메이커가 좋은 자동차를 만들려고 보배드림에서 '자동차매니아' 로 분류되는 사람들만의 조언만 들어서는 상업적으로는 성공할수 없을 것이다. 좋은 자동차를 생산할수는 있을지언정... 실제로는 핸들링, 드리프트, 에어백의 각도, MDPS, 토크, 엔진 이런거랑 상관없이 자동차가 예뻐서 그냥 사는 사람들이 많고 (MINI?, 커리어우먼?). 아니면 그냥 판매량으로 내림차순 정렬한다음 제일 높은 걸 살수도 있다 (SONATA?, 관심없는 일반인). 회장님은 가격순으로 내림차순한다음에 제일 비싼걸 고를수도 있고..(MYBACH) 자동차매니아님들은 가성비 / 간지 / 부자 / 변태 등 또 세부 타입이 있는듯하다.

소비자 시장을 타켓별로 군집화 한다음에 그에맞는 마케팅 전략을 세울때 상당히 쓸모가 있을수 있을 수 있다. 30대 커리어 우먼, 자동차매니아, 관심없는일반인, 체어맨까지..

일단 데이터를 군집화해놓고 보면, 이전까지는 발견하지 못하는 인사이트와 특징들을 발견할수도 있고, 이 특징들에 맞는 마케팅이 들어가면 매출에 상당히 기여할수있지 않겠는가!