2016-12-20 6 views
1

Надеюсь, вы, ребята, можете помочь мне разобраться в этом, поскольку я чувствую, что это выше меня. Это может быть глупо для некоторых из вас, но я потерян, и я прихожу к вам за советом.Python: Анализ кластеров на ежемесячных данных с большим количеством переменных

Я новичок в статистике, анализе данных и больших данных. Я только начал учиться, и мне нужно сделать проект по прогнозированию оттока. Да, это своего рода домашнее задание, но я надеюсь, что вы ответите на некоторые мои вопросы.

Я был бы очень благодарен за ответы на уровне начинающих шаг за шагом.

В принципе, у меня есть очень большой набор данных (очевидно) по данным о деятельности клиентов сотовой компании в течение 3 месяцев, 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'] 

Конечный результат этого домашнего задания будет к-средство кластерного анализа и модель прогнозирования оттока абонентов.

Моя самая большая головная боль по поводу этого набора данных:

Как сделать кластерный анализ для ежемесячных данных, включая большинство из этих переменных? Я попытался найти пример, но я либо нашел пример для анализа одной переменной в месяц или многих переменных в месяц.

Я использую Python и Spark.

Я думаю, что могу заставить его работать, пока я знаю, что делать с месяцами и огромным списком переменных.

Спасибо, ваша помощь будет принята с благодарностью!

P.S. Будет ли пример кода слишком много, чтобы спросить?

+1

Думаю, вам стоит попробовать библиотеки, такие как NumPy, Panda. Прочитайте их и посмотрите, помогает ли это. Также для k означает, что вы можете использовать Euclidean Distance или Manhattan, и у них есть поддержка n-мер. Прочтите алгоритмы и посмотрите, помогает ли это. – lU5er

ответ

1

Зачем вам использовать k-means здесь?

  1. k-mean не будет делать ничего значимого в таких данных. Он слишком чувствителен к масштабированию и типам атрибутов (например, год, месяц)

  2. Прогнозирование оттока под наблюдением проблема. Никогда не используйте неконтролируемый алгоритм для контролируемой проблемы. Это означает, что вы игнорируете самую ценную информацию, которую вы должны направлять в поиске.

+0

Ну, сначала я подумал, что некоторые другие модели будут работать лучше, но это зависит от требований проекта. Однако, я ценю ваши комментарии, я буду копаться в этом глубже. – Deramite

+0

Возможно, вам стоит исправить требования к проекту ... –