ElasticSearch에 저장된 고객 데이터 클러스터링


10

고객 프로필에 저장되어 있습니다. 클러스터. 이 프로파일은 이제 이메일 구독을위한 대상 그룹을 만드는 데 사용됩니다.

대상 그룹은 이제 탄력적 검색면 검색 기능을 사용하여 수동으로 구성됩니다 (예 : 자동차 한 대와 어린이 세 대를 가진 23 세의 모든 남성 고객 확보).

데이터 과학, 기계 학습, 클러스터링 등을 사용하여 흥미로운 그룹을 자동으로 검색하려면 어떻게 해야합니까?

프로그래밍 언어는이 작업에 유용한 도구 인 것 같지만 그룹 검색 방법론을 구성 할 수는 없습니다. 하나의 솔루션은 어떻게 든 가장 큰 고객 클러스터를 찾아 대상 그룹으로 사용하는 것이므로 질문은 다음과 같습니다.

비슷한 고객의 가장 큰 클러스터를 자동으로 선택하려면 어떻게해야합니까 (현재 알 수없는 매개 변수와 유사)?

예를 들어, 내 프로그램은 elasticsearch에 연결하고 고객 데이터를 CSV로 오프로드하고 R 언어 스크립트를 사용하면 많은 고객이 남성이없고 다른 많은 고객이 자동차를 가지고 있고 눈 색깔이 갈색임을 알 수 있습니다.


1
"흥미로운 그룹"의 의미는 무엇입니까? 미리 정의 된 중요한 기능 목록이 있습니까?
yatul

흥미로운 그룹은 일부 임계 값보다 큰 그룹으로 다른 가능한 클러스터보다 훨씬 큰 그룹입니다.
Konstantin V. Salikhov

1
데이터 준비 단계를 수행하는 방법이 명확하지 않습니다. 그러나 en.wikipedia.org/wiki/Anomaly_detection에 설명 된 알고리즘을 살펴 봐야 합니다. 내가 당신이라면 SVM 방법을 먼저 확인했습니다
yatul

SVM에 대해 읽었으며 기존 데이터 세트에 대한 수동 교육 후 새로 생성 된 데이터의 분류에 대해 더 많이 생각합니다. 기존 데이터를 클러스터링하고 비정상적으로 큰 클러스터를 찾는 것이 아닙니다. 내가 맞아? 내가 그렇다면이 방법은 내가 원하는 것이 아닙니다.
Konstantin V. Salikhov

답변:


6

이를 위해 사용할 수있는 알고리즘 중 하나는 k- 평균 군집 알고리즘 입니다.

원래:

  1. 세트 m_1, ..., m_k에서 k 개의 데이터 포인트를 무작위로 선택하십시오.
  2. "수렴까지":

    1. k 개의 군집에 데이터 점을 지정합니다. 여기서 i 군집은 m_i가 현재 평균과 가장 가까운 점의 집합입니다.
    2. 각 m_i를 군집 i에 지정된 모든 점의 평균으로 바꿉니다.

이 알고리즘을 여러 번 반복 한 다음 각 군집 i의 점과 중심 m_i 사이의 거리를 최소화하는 결과를 선택하는 것이 좋습니다.

물론 여기서 시작하려면 k를 알아야합니다. 그러나 교차 검증을 사용하여이 매개 변수를 선택할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.