소사업을 위한 데이터 분석 마케팅 기법
식자재마트의 실제 고객 데이터를 이용하여 세분화를 적용하는 과정을 살펴보겠습니다. K-means 알고리즘을 돌려서 적절한 군집을 찾고 결과를 어떻게 이용할 수 있을지 아이디어를 제안합니다.
데이터 수집 방법
식자재마트에서는 포인트 적립을 조건으로 고객들의 회원 가입을 유도하여 기본 정보를 얻습니다. 정보는 고객의 전화번호, 연령대, 성별, 가족 수, 자녀의 유무, 소득 수준을 포함합니다. 가능한 자세하고 많은 정보를 얻는 것이 유리합니다. 그러나 설문조사 형식의 경우 소득 같은 항목은 민감한 정보로 생각해서 응답을 안 할 가능성이 높습니다. 어떻게 활용할 것인지를 미리 계획하여 설문조사로 핵심 데이터를 얻습니다. 고객 데이터를 데이터베이스에 등록하고 식자재마트에서 쇼핑을 할 때마다 <언제, 어떤 식자재를, 얼마나 많이, 얼마나 자주 사는지>의 추가적인 데이터를 얻을 수 있습니다. 수집되는 데이터는 재고관리에도 활용됩니다.
K-means 군집분석
K-means는 군집분석 알고리즘에 한 종류로써 상대적으로 간단하고 데이터가 커져도 손쉽게 사용할 수 있어 널리 사용되고 있습니다.
K는 군집 수, means는 군집에 속한 데이터 포인트의 평균을 뜻합니다. K-means의 목표(objective function J)는 군집 내의 분산을 최소화하도록 만드는 것입니다. 데이터를 K개의 군집으로 나누고 할당된 군집의 평균과 포함된 데이터들의 거리 제곱합이 최소가 되도록 계산합니다.
공식을 이해하지 못해도 걱정할 필요는 없습니다. 데이터를 입력하면 알고리즘이 자동으로 계산해주기 때문입니다. 마케터는 결과를 적절히 해석하고 응용할 수 있는 스킬을 익히는게 더 중요합니다.
적절한 군집 수 찾기
군집분석을 돌리면 적절한 군집 수를 결정해야 합니다. 세분화된 고객군을 공략하기 위한 효과적인 마케팅 프로그램을 개발할 수 있는지를 판단합니다. K-means 알고리즘은 군집의 개수를 지정해야 합니다. 군집의 수 즉 k를 바꿔서 여러 번 돌려보아야 합니다. 적절한 군집 수는 마케팅 문제에 따라 달라집니다. 통계적으로 최적의 군집 개수를 정하는 방법은 없습니다.
엘보우 기법은 군집의 수를 정하는데 참고용으로 사용됩니다. 그래프를 그려보고 팔꿈치 모양처럼 꺾이는 부분에 군집수를 적절한 군집 수로 고려합니다.
군집분석 데이터 불러오기
분석을 위해 식자재마트 데이터를 불러옵니다. (이 예제는 파이썬에서 실행하였습니다. 엑셀이나 태블로에서도 내장된 군집분석 알고리즘을 이용할 수 있습니다. 파이썬 전체 코드는 여기를 클릭하면 볼 수 있습니다.)
데이터에는 고객 2212명과 그들의 교육 수준과 소득을 포함한 29개의 특성(변수)이 있습니다. K-means 알고리즘으로 군집을 찾아보겠습니다.
군집수를 찾기 위해 엘보우 기법을 사용하였습니다. 그래프에서는 고객 데이터의 군집을 2개에서 9개까지 시각화하였습니다. 군집 2개로는 고객을 제대로 분류하지 못하고 9개는 관리하기에 너무 많다고 정할 수 있습니다. 팔꿈치처럼 확연하게 꺾이는 부분은 보이지 않습니다. 엘보우 기법은 4개의 군집이 누적 분산과 컴퓨터 연산 비용이 적어진다는 것을 보여주고 있습니다. 4개의 군집은 식자재마트 고객을 분류하여 마케팅 프로그램을 세우기에 적절한 수라고 판단됩니다.
4개로 분류된 군집들을 해석해 보겠습니다. 우선 각 군집별 특성에 평균을 확인할 수 있습니다. 그러나 숫자만으로는 해석이 어려우므로 관심 있는 변수를 선택해서 그래프를 그려 보겠습니다.
가장 큰 관심인 구매금액을 군집별로 비교해 보겠습니다. 그래프를 보면 4개의 군집에 속한 고객들의 평균 구매금액에서 큰 차이가 나는 것을 볼 수 있습니다. 0, 3번은 구매금액이 적고 1,2번은 구매금액이 큽니다. 구매금액만으로 본다면 0,3번과 1,2번을 합쳐서 2개의 군집으로 볼 수 있습니다. 구매금액으로만 보면 2개의 군집도 가능한데 왜 4개의 군집이 만들어졌을까요?
문자로 특정 상품에 할인 코드를 제공하였을 때 구매한 정도를 군집 별로 비교해 보았습니다. 0,1번 군집은 할인 코드 사용률이 1~2회 정도입니다. 2,3번 군집은 할인 코드를 3회 정도 사용하였습니다. 1번과 2번 군집은 구매금액이 크다는 공통점이 있습니다. 그러나 1번은 할인 코드를 제공해도 사용하지 않고 2번은 적극적으로 사용하는 고객들임을 알 수 있습니다.
특정 군집이 다른 군집과 차이가 크게 나는 특성(변수)을 중점적으로 확인합니다. 각 특성과 분류된 군집의 평균을 충분히 확인해봐야 합니다. 군집의 차이가 이해되었다면 각 군집을 한 명의 고객인 것처럼 페르소나를 정의합니다.
마케팅 아이디어
그렇다면 분류된 군집으로 무엇을 할 수 있을까요?
매출을 늘리기 위해 판촉행사를 기획한다고 가정하겠습니다.
0, 1번 군집은 할인 코드를 제공해도 반응하지 않을 것입니다. 1번 군집은 1~2인의 작은 가정이고 와인에 구매비율이 높습니다. 1번 군집에게 우수 고객으로 선정되었다는 감사인사와 함께 와인 할인 코드를 문자로 제공해보면 어떨까요?
2,3번은 판촉행사를 적극적으로 활용합니다. 판촉 이벤트를 주기적으로 제공하여 관심을 끌고 방문량을 늘릴 수 있는 여지가 있습니다.
0번 군집은 구매량도 적고 할인 코드를 제공해도 구매가 적습니다. 또 다른 특징은 9세 미만의 아이가 있는 부모라는 점입니다. 식자재마트가 어린아이들과 함께 쇼핑하기 어려운 공간이다라는 가설을 세우고 추가적인 조사를 해 볼 수 있습니다.
요약
K-means는 가장 널리 쓰이는 군집분석 알고리즘입니다. 군집분석은 반복적으로 돌려봐야 합니다. 적절한 군집의 수는 엘보우기법을 사용하여 도움을 받을 수 있으나 활용 목적에 따라 결정합니다. 페르소나 만들기와 달리 K-means는 알고리즘에 의해 만들어지기 때문에 왜 그렇게 군집되었는지 해석해야 합니다. 겉으로 드러나지 않는 새로운 통찰을 발견할 기회가 있습니다. 분석이 완료되면 데이터에 결과를 추가합니다. 세분화된 군집은 고객을 더 잘 이해하고 공략하기 위한 것이며 사업의 여러 영역에서 사용됩니다.