Python: 对变量较多的月度数据进行聚类分析

Python: Cluster analysis on a monthly data with a lot of variables

我希望你们能帮我解决这个问题,因为我觉得这在我之上。对你们中的一些人来说这可能很愚蠢,但我迷路了,我来向你寻求建议。

我是统计学、数据分析和大数据的新手。我刚开始学习,我需要做一个关于流失预测的项目。是的,这是一个家庭作业,但我希望你能回答我的一些问题。

我将非常感谢一步一步的初学者级别的答案。

基本上,我有一个非常大的数据集(显然)来自移动公司 3 个月的客户 activity 数据,第 4 个月以流失或未流失结束。每个月都有这些列:

['year',
 'month',
 'user_account_id',
 'user_lifetime',
 'user_intake',
 'user_no_outgoing_activity_in_days',
 'user_account_balance_last',
 'user_spendings',
 'user_has_outgoing_calls',
 'user_has_outgoing_sms',
 'user_use_gprs',
 'user_does_reload',
 'reloads_inactive_days',
 'reloads_count',
 'reloads_sum',
 'calls_outgoing_count',
 'calls_outgoing_spendings',
 'calls_outgoing_duration',
 'calls_outgoing_spendings_max',
 'calls_outgoing_duration_max',
 'calls_outgoing_inactive_days',
 'calls_outgoing_to_onnet_count',
 'calls_outgoing_to_onnet_spendings',
 'calls_outgoing_to_onnet_duration',
 'calls_outgoing_to_onnet_inactive_days',
 'calls_outgoing_to_offnet_count',
 'calls_outgoing_to_offnet_spendings',
 'calls_outgoing_to_offnet_duration',
 'calls_outgoing_to_offnet_inactive_days',
 'calls_outgoing_to_abroad_count',
 'calls_outgoing_to_abroad_spendings',
 'calls_outgoing_to_abroad_duration',
 'calls_outgoing_to_abroad_inactive_days',
 'sms_outgoing_count',
 'sms_outgoing_spendings',
 'sms_outgoing_spendings_max',
 'sms_outgoing_inactive_days',
 'sms_outgoing_to_onnet_count',
 'sms_outgoing_to_onnet_spendings',
 'sms_outgoing_to_onnet_inactive_days',
 'sms_outgoing_to_offnet_count',
 'sms_outgoing_to_offnet_spendings',
 'sms_outgoing_to_offnet_inactive_days',
 'sms_outgoing_to_abroad_count',
 'sms_outgoing_to_abroad_spendings',
 'sms_outgoing_to_abroad_inactive_days',
 'sms_incoming_count',
 'sms_incoming_spendings',
 'sms_incoming_from_abroad_count',
 'sms_incoming_from_abroad_spendings',
 'gprs_session_count',
 'gprs_usage',
 'gprs_spendings',
 'gprs_inactive_days',
 'last_100_reloads_count',
 'last_100_reloads_sum',
 'last_100_calls_outgoing_duration',
 'last_100_calls_outgoing_to_onnet_duration',
 'last_100_calls_outgoing_to_offnet_duration',
 'last_100_calls_outgoing_to_abroad_duration',
 'last_100_sms_outgoing_count',
 'last_100_sms_outgoing_to_onnet_count',
 'last_100_sms_outgoing_to_offnet_count',
 'last_100_sms_outgoing_to_abroad_count',
 'last_100_gprs_usage']

这项作业的最终结果将是 k 均值聚类分析和客户流失预测模型。

关于这个数据集,我最头疼的是:

如何对包含大部分变量的月度数据进行聚类分析?我试图寻找一个例子,但我找到了一个关于每月分析一个变量或每月分析多个变量的例子。

我正在使用 Python 和 Spark。

我想我可以让它工作,只要我知道如何处理几个月和大量变量。

谢谢,非常感谢您的帮助!

P.S。一个代码示例会不会要求太多?

为什么要在这里使用 k-means?

  1. k-means 不会对此类数据做任何有意义的事情。它对缩放和属性类型(例如年、月)太敏感

  2. 客户流失预测是一个监督问题。永远不要对监督问题使用无监督算法。这意味着您忽略了指导搜索的最有价值的信息。