머신러닝

[머신러닝 입문]구매 이력 데이터를 이용한 사용자 그룹 만들기

Mi-Flat 2020. 4. 4. 20:26
반응형

안녕하세요 

 

오늘은 구매 이력 데이터를 이용하여 사용자 그룹을 만드는 방법을 알아보겠습니다.

쇼핑몰 같은 경우 연령, 성별, 구매아이템, 구매 횟수, 시기 등 이벤트나 추첨을 할 경우 데이터의 분포도를 고려하게 됩니다. 이러한 구매 이력에 따라 사용자 그룹을 나누는 방법에는 '군집화' 기법이 활용됩니다.

어떠한 기준으로 어떤 방법으로 그룹을 생성하는 지 한 번 알아보겠습니다.

 

'군집화'비슷한 데이터를 구분하여 모으는 방법입니다. 데이터의 개별 특징을 구분하여 패턴을 분석하기보다는 중심점을 기준으로 반복 학습하면서 데이터를 각각 구분합니다. 군집화의 특징은 얼마나 비슷한지 유사성에 따라 구분을 하는데, 그 유사도는 데이터의 피처값을 기준으로 합니다. 미리 정하지 않기 때문에 비지도 학습에 해당합니다. 방법에는 중심 기반 군집화, 계층적 군집화, 밀도 기반 군집화로 나눌 수 있습니다.

 

'중심 기반 군집화' K-중심 군집화는 클러스터 중심점 기준을 정하고 데이터를 모아가며 확장하는 방법입니다. 초기 K개의 중심점을 어떻게 배치하느냐가 중요합니다. 클러스터 중심을 구하는 방법에는 '평균', '중앙값', '최빈값'이 있습니다. 

 

'계층적 군집화'는 클러스터의 계층을 말합니다. 즉 클러스터 하나 당 하나의 데이터를 포함합니다. 방법에는 '분할적 군집화''집괴적 군집화'가 있습니다.

 

집괴적 군집화는 상향식으로 가까운 클러스터를 하나로 합쳐 하나의 클러스터로 합쳐 나가는 방법입니다. 즉 두 개의 클러스터끼리 짝을 지어 최종 하나의 클러스터로 통합하는 것입니다. 반대로 분할적 군집화는 하나의 클러스터를 두 개로 쪼개어 분리합니다. 두 개씩 쪼개기 때문에 마지막까지 분리할 수 없을 때까지 진행합니다. 이러한 방법은 단점은 한 쌍의 데이터로 이루어지지 않았다면 사용하기 어렵다는 것입니다. 

 

집괴적 군집화 방법을 사용할 때는 두 개의 클러스터의 유사도를 판단하여 합치는 데 그 방법에 데이터들 간 최단 거리를 연결하는 '단일 연결법', 데이터들 간 최장 거리를 연결하는 '완전 연결법', 데이터들 간 거리의 평균을 연결하는 '평균 연결법'이 있습니다. 

분할적 군집화 방법에는 대표적으로 'DIANA(분할 분석)'을 사용합니다. 가장 큰 클러스터를 선택한 뒤 가장 이질적인 데이터를 찾아 새로운 중심점을 만들고, 또 새로운 데이터를 중심으로 중심점을 만들어 나가는 식입니다. 한 클러스터에 하나의 데이터를 가질 때까지 진행합니다. 

 

'밀도 기반 군집화'는 데이터 밀도가 높아지는 방향으로 데이터를 묶는 방법입니다. 대표적으로 '평균 이동 군집화''DBSCAN(디비스캔)'이 있습니다.

 

평균 이동 군집화는 임의의 초기 중심점에서 탐색 반경을 정하여 데이터의 밀도를 계산하여 높은 곳으로 옮겨 갑니다. 일반적으로 데이터가 정규분포를 다른다고 가정하여 평균 주변에 데이터가 많다고 생각하여 반경 안 평균점을 기준으로 새로운 중심점을 지정합니다.

 

DBSCAN은 클러스터 중심의 데이터 수와 가장자리의 데이터 수의 차이를 이용합니다. 구분 방법으로 '중심 포인트', '경계 포인트', '노이즈 포인트'가 있습니다. 중심 포인트는 반경 안에 일정 개수 이상의 데이터가 있는 데이터, 경계 포인트는 경계선 근처에 위치한 데이터가 있는 데이터, 노이즈 포인트는 반경 외에 위치한 데이터를 말합니다. 

 

'유사도 계산' 은 유사도가 클수록 거리가 가까워지고, 작을 수록 거리가 멀어집니다. 이러한 유사도를 측정하는 대표적인 척도인 '거리' 중 '민코프스키 거리'와 '마할라노비스 거리'에 대해 알아보겠습니다. 

 

'민코프스키 거리' 중 특수한 경우가 유클리드 거리로, 거리를 구하는 방법 중 X좌표와 Y좌표 두 좌표만 있을 경우 최소 거리르 계산할 때 제약이 있는 경우 '맨해튼 거리'를 구하고, 최소 거리를 제약 없이 구할 경우 '유클리드 거리'를 구합니다. 

 

'마할라노비스 거리'는 두 점 사이의 거리르 계산할 때 데이터의 분포를 고려하는 거리입니다. 각 데이터의 단위가 다른 경우 공분산을 고려하여 계산해야 합니다. 공분산이란 두 변수가 얼마나 연관성이 있는지 나타내는 값입니다. 공분산을 고려한다는 것은 각 데이터의 값의 증감에 따라 변하는 관계를 거리 계산에 포함하는 것입니다. 거리 계산에 데이터의 분포 및 공분산을 사용한 거리를 마할라노비스 거리라고 합니다.  

 

여러 기준으로 묶음으로 데이터를 표현할 수 있는 군집화에 대해 알아보겠습니다. 

패턴 분석 보다는 비슷한 것끼리 분류하는 기법으로 다양한 분야에서 사용될 수 있는 기법입니다. 

각각의 계산 방법이나 응용 분야에 대해서도 향후 알아보도록 하겠습니다.

 

감사합니다.

반응형