从 kmeans 聚类中了解客户属性

Posted

技术标签:

【中文标题】从 kmeans 聚类中了解客户属性【英文标题】:Understand customer attributes from kmeans clustering 【发布时间】:2019-08-21 08:40:44 【问题描述】:

我有一个客户数据集,其中包含关于客户的大约 20-25 个属性,例如:

年龄 性别_F 性别_M 购买次数 loyalty_status_new loyalty_status_intermediate loyalty_status_advanced ...

我已经清理了我的数据集,使其没有任何空值,并且在 pandas 数据框 my_df 中也有一个热编码的分类变量。我已经使用 scikit-learn 的 kmeans 在这个数据集上创建了 2 个集群,但我想了解如何区分哪些客户被聚集到哪些集群中。

    scaler = StandardScaler()
    my_df_scaler = scaler.fit_transform(my_df)
    kmeans = KMeans(2)
    model = kmeans.fit(my_df_scaler)
    preds = model.predict(my_df_scaler)

基本上,我正在寻求一些帮助以获取以下见解:

第 1 组代表年龄和忠诚度值较大的人_status_new

提前致谢!

【问题讨论】:

一种探索性的方法可能是从一个特征开始,看看你在那里找到了什么集群。然后扩展到两个或更多功能。 我宁愿将标准化应用于一个热编码变量。总体而言,对于如何在此处进行聚类,您几乎没有语义意义。也可能是随机点的最近邻居。 【参考方案1】:

如果您有每个客户的集群,您可以按集群计算每个参数的平均值,然后您就会得到答案。您可以更一般地检查每个集群中每个参数的分布,并在集群之间进行比较。

但是,我看到您的参数,您不应该使用 Gender_M 和 Gender_F,因为这些特征是相关的 (Gender_M=1-Gender_F)。

我还看到忠诚度状态新、中级和高级...如果这些参数是从连续变量计算的,您应该保留连续变量,而不是像这样使用三个相关变量。

无论如何,这里有一些链接可以帮助您进行集群: - 射频聚类原理:https://towardsdatascience.com/apply-rfm-principles-to-cluster-customers-with-k-means-fef9bcc9ab16 - 深入了解 KMeans:https://towardsdatascience.com/k-means-clustering-8e1e64c1561c

【讨论】:

以上是关于从 kmeans 聚类中了解客户属性的主要内容,如果未能解决你的问题,请参考以下文章

Kmean聚类聚类中的***术语

用于在 KMeans 聚类中选择适当数量的聚类的轮廓索引

聚类算法 - kmeans

返回 kmeans 聚类中最远的异常值? [关闭]

如何在 python 中的 KMeans 聚类中获得 X 值?

Kmeans聚类算法简介