集群存储在ElasticSearch中的客户数据


10

我在集群中存储了一堆客户资料。这些配置文件现在用于为我们的电子邮件订阅创建目标组。

现在,目标群体是通过使用Elasticsearch多面搜索功能手动形成的(例如,让所有23岁的男性顾客拥有一辆汽车和3个孩子)。

如何使用数据科学,机器学习,集群或其他方法自动搜索有趣的组?

编程语言似乎是完成此任务的好工具,但我无法形成这种群体搜索的方法。一种解决方案是以某种方式找到最大的客户群并将其用作目标组,因此问题是:

如何自动选择相似客户的最大集群(按目前尚不知道的参数相似)?

例如:我的程序将连接到elasticsearch,将客户数据卸载到CSV,然后使用R语言脚本将发现很大一部分客户是没有孩子的男性,而另一大部分客户是汽车,并且眼睛是棕色。


1
您在“有趣的群体”下是什么意思?您是否有一些预定义的重要功能列表?
yatul 2014年

有趣的组是任何大小大于某个阈值且比其他可能的群集大得多的组。
Konstantin V. Salikhov

1
目前尚不清楚如何执行数据准备步骤。但是您应该查看en.wikipedia.org/wiki/Anomaly_detection中描述的算法。如果我是你,我已经检查SVM方法首先
yatul

我已经阅读了有关SVM的文章,我认为它更多地是关于对现有数据集进行手动训练之后对新创建的数据进行分类的,而不是关于对现有数据进行聚类和发现异常大的聚类的。我对吗?如果我是这种方法不是我想要的。
Konstantin V. Salikhov

Answers:


6

可用于此目的的一种算法是k-均值聚类算法

基本上:

  1. 从您的集合m_1,...,m_k中随机选择k个数据点。
  2. “直到收敛”:

    1. 将您的数据点分配给k个聚类,其中聚类i是点集,其中m_i是您当前均值中最接近的点
    2. 用分配给群集i的所有点的平均值替换每个m_i。

优良作法是重复几次此算法,然后选择使每个聚类i的点与中心m_i之间的距离最小的结果。

当然,您必须知道k才能从这里开始;不过,您可以使用交叉验证来选择此参数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.