У меня есть набор данных, включающий набор клиентов в разных городах Калифорнии, время вызова для каждого клиента и статус вызова (True, если клиент отвечает на вызов, и False, если клиент не отвечает).
Я должен найти подходящее время звонка для будущих клиентов, так что вероятность ответа на звонок высока. Итак, какова лучшая стратегия для этой проблемы? Должен ли я считать это проблемой классификации, какие часы (0,1,2, ... 23) являются классами? Или я должен рассматривать это как регрессионную задачу, время которой является непрерывной переменной? Как я могу убедиться, что вероятность ответа на звонок будет высокой?
Любая помощь будет оценена. Также было бы здорово, если бы вы направили меня к подобным проблемам.
Ниже приведен снимок данных.
источник
Ответы:
На самом деле вы можете столкнуться с проблемами, если вы смоделируете это как проблему регрессии без подходящего преобразования. Например, мы знаем, что на большинство звонков, вероятно, отвечают в дневное время и реже в ночное время и рано утром. Линейная регрессия будет иметь трудности, потому что отношения, скорее всего, криволинейные, а не линейные. По той же причине трактовка этой задачи как задачи классификации с логистической регрессией также была бы проблематичной.
Как предложили другие респонденты, переклассификация ваших данных в периоды времени поможет, и я бы посоветовал вам сначала попробовать что-то вроде дерева решений или случайного леса.
Тем не менее, это может быть случай для простой описательной статистики. Если вы рассчитываете долю отвеченных вызовов по времени суток (с разбивкой по городам или любым другим демографическим показателям), существует ли четкое лучшее время? Если так, зачем усложнять вещи с моделью?
источник
Вы можете попробовать следующее:
Кроме того, я рекомендую добавить дополнительные функции, такие как род занятий, пол и т. Д., Поскольку функции, перечисленные в таблице (город и т. Д.), Слишком неоднозначны и не дают много информации для разграничения между клиентами.
Отредактировано согласно предложению в комментариях:
При использовании модели каждое ведение классифицируется как prefers_morning = да / нет, prefers_noon = да / нет и prefers_evening = да / нет. В зависимости от времени суток, например, утром, агент колл-центра (или программное обеспечение) может подобрать и вызвать клиентов, классифицированных в наборе утренних предпочтений. Когда наступает полдень, программное обеспечение для вызовов выбирает список предпочтений в полдень и так далее.
источник
Я бы использовал логистическую регрессию - вам понадобятся сэмплы там, где они не собраны. Тогда я бы рассматривал час как сезонный фиктивный регрессор (23 часа как фиктивные переменные и позволяли одному потоку перехватывать).
Если вы не относитесь к нему как к сезонному фиктивному регрессору, вам придется выполнить какое-то преобразование, потому что отношения не будут линейными.
Кто-то ранее предлагал заменить полдень и т. Д. В качестве категориальной переменной. Это плохая идея, потому что у вас есть детали, и вы теряете детали там. Это имело бы эффект, аналогичный использованию оптимального биннинга, чтобы сделать отношения линейными, но я все еще не думаю, что это сработает. Попробуйте сезонные фиктивные регрессоры.
источник