通过 kmeans 聚类了解客户属性
Understand customer attributes from kmeans clustering
我有一个客户数据集,其中包含关于客户的大约 20-25 个属性,例如:
- 年龄
- gender_F
- gender_M
- num_purchases
- 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 代表年龄值较大且 loyalty_status_new
的人
提前致谢!
如果您有每个客户的聚类,您可以按聚类计算每个参数的平均值,您就会得到答案。您可以更普遍地检查每个集群中每个参数的分布,并在集群之间进行比较。
然而,正如我看到的您的参数,您不应该使用 Gender_M 和 Gender_F,因为这些特征是相关的 (Gender_M=1-Gender_F)。
我还看到忠诚度状态新的、中级的和高级的...如果这些参数是从连续变量计算的,你应该保留连续变量而不是像这样与三个相关变量一起使用。
无论如何,这里有一些链接可以帮助您进行聚类:
- rfm聚类原则:https://towardsdatascience.com/apply-rfm-principles-to-cluster-customers-with-k-means-fef9bcc9ab16
- 深入了解 KMeans:https://towardsdatascience.com/k-means-clustering-8e1e64c1561c
我有一个客户数据集,其中包含关于客户的大约 20-25 个属性,例如:
- 年龄
- gender_F
- gender_M
- num_purchases
- 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 代表年龄值较大且 loyalty_status_new 的人
提前致谢!
如果您有每个客户的聚类,您可以按聚类计算每个参数的平均值,您就会得到答案。您可以更普遍地检查每个集群中每个参数的分布,并在集群之间进行比较。
然而,正如我看到的您的参数,您不应该使用 Gender_M 和 Gender_F,因为这些特征是相关的 (Gender_M=1-Gender_F)。
我还看到忠诚度状态新的、中级的和高级的...如果这些参数是从连续变量计算的,你应该保留连续变量而不是像这样与三个相关变量一起使用。
无论如何,这里有一些链接可以帮助您进行聚类: - rfm聚类原则:https://towardsdatascience.com/apply-rfm-principles-to-cluster-customers-with-k-means-fef9bcc9ab16 - 深入了解 KMeans:https://towardsdatascience.com/k-means-clustering-8e1e64c1561c