【问题标题】:Understand customer attributes from kmeans clustering从 kmeans 聚类中了解客户属性
【发布时间】: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

提前致谢!

【问题讨论】:

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

标签: python pandas scikit-learn cluster-analysis k-means


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 2017-08-30
    • 2014-01-27
    • 2013-11-18
    • 1970-01-01
    • 2018-05-15
    • 2015-07-27
    • 2016-02-02
    • 2015-02-20
    相关资源
    最近更新 更多