# Задачи регрессии

Задачи регрессии — это задачи машинного обучения при использовании числового целевого столбца. В следующем примере показано, как четко сформулировать бизнес-задачу, а затем собрать набор данных для обучения, в котором все признаки будут равноценны. Он предлагает хорошую основу для создания прогнозной регрессионной модели.

## Пример регрессии: пожизненная ценность клиента

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

Образцы собранных данных

Образцы собранных данных

Образцы собранных данных ![Таблица с образцами данных для обучения.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/regression-problem-table-1.png)

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

* Набор данных может включать людей, которые были клиентами в течение одного дня, одного месяца или одного года. Значение общей суммы покупок отражает не то, сколько клиент потратит, а то, сколько он потратил на данный момент.

* Клиент, чья учетная запись существует один день, возможно, станет клиентом с высокой пожизненной ценностью. Но поскольку он стал клиентом только вчера, он совершил всего одну покупку и не потратил много денег. Если включить такого клиента в набор данных для обучения, после обучения алгоритм машинного обучения будет ошибочно считать его клиентом, который не приносит много денег.

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

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

## Включение фактора времени

Чтобы включить фактор времени, сначала определим сумму покупок за первый год как общую сумму денег, потраченных клиентом в его первый год обслуживания в компании. После этого можно использовать поведение клиента в течение первых трех месяцев в качестве признаков, чтобы спрогнозировать общую сумму его покупок в течение первого года. Сумма покупок за первый год — это точное определение представляющей интерес метрики, которое включает в себя интервал времени. Преимущество создания такой точной метрики заключается в том, что она делает все примеры из нашего набора данных для обучения равноценными.

Обратите внимание, что поскольку сейчас рассматривается общая сумма денег, потраченных клиентами в течение их первого года обслуживания в компании, необходимо ограничить набор данных для обучения и включить в него только тех, кто является клиентом компании не менее одного года. Набор данных можно представить следующим образом:

Набор данных, включающий фактор времени

Набор данных, включающий фактор времени

Набор данных, включающий фактор времени ![Таблица с образцами данных для обучения.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/regression-problem-table-2.png)

В этой таблице каждая строка представляет человека, который является клиентом компании не менее одного года. Столбцы включают признаки, описывающие человека в момент, когда он стал клиентом, а также признаки, отражающие его активность в течение выбранного интервала времени.

Активность измеряется количеством покупок, совершенных за первые три месяца, и общей суммой покупок за первые три месяца. Целевой столбец показывает общую сумму денег, потраченных в первый год. Это и есть сумма покупок за первый год, и мы должны научить алгоритм машинного обучения прогнозировать ее.

Обратите внимание, как четко теперь сформулирована задача во временных рамках: «Спрогнозировать, сколько денег принесет клиент компании в течение первого года, основываясь на его поведении в течение первых трех месяцев».

## Сравнение задач регрессии и временных рядов

Задачи регрессии и временных рядов имеют ряд сходств, включая целевую переменную и сценарии использования. Существует также несколько различий между этими двумя типами задач.

Для получения дополнительной информации о задачах временных рядов см. [Задачи временных рядов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-problems.htm).

### Сходства

* Обе модели должны иметь целевой столбец числового типа.

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

### Отличия

* Задачи временных рядов поддерживают сгруппированные целевые показатели, в то время как задачи регрессии — нет (см. [Компоненты задачи временных рядов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Components)). Сценарии с группами можно реализовать в задачах регрессии путем обучения нескольких различных моделей, выполнив глобальное обучение по группам.

* Задачи временных рядов поддерживают сценарии, в которых переменные признака известны заранее — например, прогнозы погоды, запланированные рекламные скидки, а также даты будних, выходных или праздничных дней. Эти переменные признака известны как [Будущие характеристики](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#FutureFeatures).

* Для задач временных рядов данные должны быть проиндексированы по дате или дате и времени с фиксированным временным интервалом. Кроме того, во время обучения и прогнозирования ожидается и генерируется различное содержимое данных (см. [Подготовка набора данных для обучения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#TrainPrepare) и [Подготовка набора данных для применения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#ApplyPrepare)).

* В задачах временных рядов прогнозируемые значения имеют прямую связь с датами и временем. В задачах регрессии прогнозируемые значения могут соответствовать или не соответствовать определенным датам и времени; даже если связь имеется, она не является прямой и явно не обозначается в выходных данных.

* Используются различные алгоритмы (см. [Общее представление об алгоритмах модели](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/algorithms.htm)).

## Подробнее

* [Задачи временных рядов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-problems.htm)
* [Введение в Qlik Predict](https://help.qlik.com/lnk/Introduction_Qlik_AutoML)
* [Что такое Qlik Predict](https://help.qlik.com/lnk/What_is_AutoML)

Связанные учебные материалы:

* [Введение в Qlik Predict](https://help.qlik.com/lnk/Introduction_Qlik_AutoML)
* [Что такое Qlik Predict](https://help.qlik.com/lnk/What_is_AutoML)