군집분석이 물류에 어떻게 적용될 수 있을까
고객 맞춤형 서비스의 시대, 여전히 군집분석이 중요한 까닭은
글. 신광섭 인천대 동북아물류대학원 교수
경영학이나 마케팅을 전공하지 않은 분이라도 STP(Segmentation-Targeting-Positioning) 전략에 대해서는 한 번쯤 들어보았을 것입니다. STP는 그만큼 잘 알려져 있고 널리 사용되는 전략 중 하나입니다. 이번 글에서는 STP 전략의 첫 번째 단계인 S(Segmentation), 즉 ‘시장세분화’와 관련된 데이터 분석 기술에 대해 이야기해보고자 합니다.
위키피디아를 보면 시장세분화의 핵심이 ‘고객의 특성을 기준으로 전체 시장을 몇 개의 하위 그룹으로 묶는 것’이라고 나와 있습니다. 전자상거래의 발달로 글로벌 시장이 하나로 통합되고 있습니다. 하지만 그렇다고 하더라도 하나의 전략으로 전체 고객을 만족시킬 수는 없습니다. 시장은 통합되었지만 고객의 수는 늘었고, 고객의 요구사항 역시 다양해졌습니다. 고객의 특성도 국가, 성별, 연령대, 직업군에 따라 천차만별입니다. 따라서 중요한 것은 이토록 다양한 고객을 ‘적절히’ 세분화하는 것입니다.
데이터분석에서는 각 사례(데이터를 하나의 표로 구성했을 때 하나의 행을 사례(Case) 혹은 옵저베이션(Observation)이라고 부른다.)의 특징을 설명하는 여러 변수를 기준으로 전체를 몇 개의 하위 그룹으로 묶는 것을 ‘군집분석’ 혹은 클러스터링(Clustering)이라고 부릅니다. 여기서는 간단한 예제를 통해 군집분석 수행 방법을 살펴보고, 이를 물류산업에 어떻게 활용할 수 있을지 생각해보고자 합니다.
사례로 보는 군집분석 방법
아래 그래프는 전기를 공급하는 23개 회사의 연료비(Fuel Cost)와 매출액(Sales)을 기준으로 만들어진 것입니다.(이 그래프에는 나와 있지 않지만 고정간접비(Fixed Charge), 투자수익률(RoR: Rate of return on capital), 총비용(Cost), 연간부하율(Load Factor), 수요증가율 (Demand Growth Rate), 핵발전비율 (Nuclear) 등의 정보도 확보된 상황입니다.) 우리는 이 그래프에 나타난 사례들을 몇 개의 소그룹으로 묶을 수 있을까요? 대부분의 사람들은 그래프에 표시된 것처럼 좌측 상단(높은 매출액, 낮은 연료비), 가운데(중간 정도의 연료비, 중간정도의 매출), 그리고 우측 하단(높은 연료비, 낮은 매출) 정도로 사례를 묶을 것입니다.
▲ 매출액과 연료비의 상관관계1
하지만 위 그래프는 우리가 현재 확보한 8개의 정보 중 연료비와 매출액 사이의 관계만을 고려한 것입니다. 각 그룹의 경계 역시 모호합니다. 따라서 그래프의 사례를 세 개의 그룹으로 나누는 것이 타당하다고 장담할 수는 없습니다.
k-Means Clustering을 활용한 군집분석
어떻게 하면 조금 더 신뢰도 높은 결과를 얻을 수 있을까요? 군집분석에서 가장 널리 사용되는 방법으로 ‘k-Means Clustering’이라는 것이 있습니다. 다음의 그림은 k-Means Clustering의 과정을 간략하게 보여주고 있습니다.
▲ k-Means Clustering을 활용한 군집분석
그 과정은 다음과 같습니다. 우선 그래프 위에 k개의 ‘중심점’(Centroid, 그래프에서는 +로 표시)을 무작위로 배치합니다. 그 다음 모든 점(데이터분석에서는 사례(Case) 혹은 옵저베이션(Observation)으로 표현하나, 여기서는 이해를 돕기 위해 점(point)으로 표현했다.)과 k개의 중심점 사이의 ‘유사도(Similarity)’를 측정합니다. 유사도는 각 점을 구성하는 변수의 유형에 따라 다르겠지만, 일반적으로 숫자형(Numerical) 변수는 유클리드 거리(Euclidean Distance)를 기준으로, 목록형(Categorical) 변수는 자카드 유사도(Jaccard Similarity)와 같은 정보의 중첩 정도를 기준으로 평가합니다. 쉽게 중심점과 각 점과의 ‘거리’를 유사도로 생각해도 무방합니다. 거리를 측정한 뒤에는 각 점과 가장 가까운 중심점을 찾습니다. 그리고 중심점을 기준으로 군집을 만들어 점을 할당합니다. 모든 점에 대한 군집 할당이 완료되면, 각 군집의 정중앙으로 중심점의 위치를 이동시킵니다. 이 과정을 중심점의 위치가 더 이상 일정 수준 이상 변하지 않을 때까지 반복합니다.
여기서 우리가 우선적으로 결정해야 할 것은 ‘몇 개(k)의 중심점을 사용할 것인가?’입니다. 즉 몇 개의 군집으로 나눌 것인지를 우선 결정해야만 나머지 과정을 진행할 수 있습니다. 최적의 군집수를 결정하기 위해서는 다양한 k값을 설정하고, 각각의 성능을 비교해야 합니다. 성능에 대한 평가를 내리기 위해서는 군집 내에 점들이 얼마나 밀집돼 있는지(Cohesion), 각 군집 사이의 거리가 얼마나 떨어져 있는지(Separation)를 측정합니다.
위 사례에서 군집의 수를 2개부터 23개까지 늘리면서 군집 내 밀도를 기준으로 측정한 결과 최적의 군집수 k는 3으로 나타났습니다. 그 결과는 아래 그래프와 같습니다. 아래 그래프에서 군집은 색깔로 구별돼 있고, 점들 가운데 표시된 ‘+’는 각 군집의 중심점을 뜻합니다. 우리는 ‘매출액과 연료비의 상관관계1’ 그래프에서 각 사례를 세 개의 군집으로 나눌 수 있다고 어림짐작했습니다. 분석 결과 그것은 타당한 것으로 드러났습니다. 다만 아래 그래프에서 우리는 가운데 영역에서 두 번째와 세 번째 군집이 혼재되어 있는 모습을 확인할 수 있습니다. 이는 연료비와 매출 정보 외 나머지 6개 변수 역시 반드시 고려해야만 한다는 것을 의미합니다.
▲ 매출액과 연료비의 상관관계2
지금부터는 각 군집을 대표하는 중심점의 상대적 비교를 통해 각 군집의 특징을 파악해 보겠습니다. 아래 그림은 전체 여덟 개 변수별로 세 개의 중심점이 어떤 차이를 보이는지 보여주고 있습니다.
▲ 세 군집의 상대적 비교
그래프를 보면 첫 번째 군집과 세 번째 군집이 서로 상반된 경향을 보이고 있는 것을 확인할 수 있습니다. 두 번째 군집은 대부분 변수에 대해 나머지 두 군집의 중간 정도의 수준을 보입니다. 물론 중심점이 반드시 해당 군집을 대표한다고는 할 수 없습니다. 하지만 개별 군집 사이의 상대적 비교를 통해 우리는 다양한 시사점을 얻을 수 있을 것입니다. 가령 위 사례에서 세 번째 군집을 구성하는 회사는 핵발전 시설을 이용하지 않으며(Nuclear=0), 매출, 수요증가율, 비용이 상대적으로 높습니다. 반면 첫 번째 군집은 연료비가 높고 매출은 상대적으로 낮기 때문에 수익이 낮은 기업일 것으로 해석할 수 있습니다.
군집분석, 물류에 어떻게 적용할까
앞서 이야기한 대로 군집분석은 시장을 세분화하는 데 가장 널리 쓰이는 방법 중 하나입니다. 개별 고객의 특성 정보를 바탕으로 유사한 고객을 하나로 묶고 나면 중심점 분석 등을 통해 여러 정보를 얻을 수 있기 때문입니다. 군집분석의 활용이 마케팅 영역에만 국한되지 않는 것은 물론입니다. 공급사슬 계획 수립의 가장 첫 단계는 ‘고객의 요구사항을 파악하는 것’입니다. 즉 우리는 시장을 세분화하고 각 시장의 특징을 이해한 뒤 고객의 요구사항이나 미래 수요를 예측하는 데 군집분석의 결과를 활용할 수 있습니다.
고객을 이해하고 수요를 파악하는 것 외에 고객 정보를 바탕으로 물류서비스의 운영 계획을 수립하는 데에도 군집분석이 활용될 수 있습니다. 다음 그림은 인천 지역 일대의 화물배송 경로를 단순 행정 구역 중심으로 설계한 결과입니다.
▲ 인천 지역 화물배송 경로1
동일한 위치를 방문해야 하는 경우를 k-Means Clustering을 활용해 방문 계획을 다시 수립한 결과는 아래와 같습니다. 현실적인 분석을 위해 한 번에 차량이 방문할 수 있는 최대 고객의 수를 제한했고, 유사도는 고객의 위치를 기준으로 측정했습니다. 그 결과 투입된 차량의 대수(16대에서 14대로)가 감소했을 뿐 아니라, 차량의 이동거리(66.08km에서 56.61km로) 역시 감소하는 것으로 나타났습니다. 이처럼 실제 물류현장에서 운영 계획을 수립하는 데도 군집분석을 유용하게 활용할 수 있습니다.
▲ 인천 지역 화물배송 경로2
개인 맞춤형 서비스? 그럼에도 군집분석
지금까지 군집분석을 어떻게 수행하는지, 그리고 현장에서 이를 어떻게 활용할 수 있는지 살펴보았습니다. 유유상종이라는 말이 있습니다. 성향이 비슷한 고객은 비슷한 것을 요구하고 비슷하게 행동할 확률이 높습니다. 하지만 ‘성급한 일반화의 오류’를 범하진 말아야겠습니다.
군집뿐 아니라 각 군집에 속한 사례 하나하나도 중요합니다. 군집 내 사례들 사이의 분포 역시 중요한 의미를 가집니다. 따라서 실제 활용 가능한 결과를 도출하기 위해서는 보다 더 많은 고객 정보를 확보해야 하며, 개별 고객을 설명하는 정보(변수) 역시 가능한 많이 확보해야 합니다. 뿐만 아니라 군집분석을 성공적으로 수행하기 위해서는 수많은 시행착오를 거쳐야 하고, 많은 시간과 자원을 투입해야만 합니다.
최근에는 시장세분화를 우선시 하는 접근법을 회의적으로 보는 사람도 늘었습니다. 데이터를 모으고, 그것을 바탕으로 분석과 해석을 하는 데 많은 시간과 자원을 투입하기보다는 개별 고객이 원하는 바에 따라 맞춤형 제품 혹은 서비스를 제공하는 게 더욱 효과적이라는 것입니다. 실제로 우리는 온라인 스토어에서 고객에게 맞춤형 상품을 추천하거나 고객의 요구에 따라 일회성 서비스를 제공하는 것을 쉽게 목격할 수 있습니다. 그러나 그렇다고 하더라도, 시장세분화가 더 이상 무의미하다고는 할 수 없습니다. 개인화된 서비스를 제공하기 위해 고객이 원하는 바를 사전에 파악하려면, 과거 고객의 성향과 패턴을 분석해야만 하고 이를 위해서는 군집분석을 통한 시장 및 고객 세분화가 당연히 필요합니다.
필자는 군집분석의 적용 가능 영역이 고객 중심의 분석부터 물류현장 및 공급사슬 운영계획 수립까지 다양하다고 생각합니다. 비슷한 것들끼리 모아서 보면, 이전까지 안 보이던 것들이 보이는 마법 같은 일이 종종 일어나기 때문입니다.