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

Прогнозирование цены (покупки/продажи) подержанных автомобилей по существу представляет собой проблему регрессии. Традиционно к нему подходили с использованием линейной регрессии или одного из методов ансамбля на основе дерева.

В зависимости от набора данных/признаков, доступных для моделирования, оба или любой из этих подходов могут дать хорошие результаты.

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

Это хорошо изученные и широко применяемые в отрасли методы, которые дали результаты спуска с оценками, часто находящимися в диапазоне 90+%.

Используя аналогичный подход, мы смогли получить (r квадрат) оценки около 96% с помощью Random Forest в «Travis Car Sales» (вымышленное название компании по понятным причинам. NDA, данные о приличии и все такое..).

Означает ли это, что нет места для улучшения?

Точно нет.

Легко ли будет улучшить его дальше?

Наверное, тоже нет.

Я, всю жизнь изучающий «изменения», решил попробовать что-то новое и добиться еще большей точности модели. Мы подумали о двух новых подходах Custom Ensemble, которые обсуждаются ниже:

Метод 1 – Пользовательский ансамбль с использованием кластеризации и нескольких моделей.

Сначала мы передаем набор данных в кластерную модель (например, k-средние, k-режим и т. д.), чтобы разбить данные на группы «k». Затем каждая группа имеет свою собственную модель ансамбля на основе дерева (например, случайный лес, XGBoost и т. д.). Эта архитектура может еще больше повысить показатель точности. Тем не менее, у него есть свои недостатки.

Недостаток — понятно, что общее количество моделей ML = 1+k. Следовательно, если, скажем, k = 4, мы получим всего 5 моделей машинного обучения (одна на этапе 1 и четыре на этапе 2). Сложность архитектуры с точки зрения масштабируемости и обслуживания существенно возросла. Непрерывный мониторинг и переобучение моделей также потребует гораздо больше усилий из-за отдельных конвейеров для каждой модели машинного обучения.

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

Метод 2 — Пользовательский ансамбль с использованием кластеризации и одиночной модели с проектированием функций.

В этом методе мы в значительной степени устраняем недостаток сложной архитектуры метода 1. Этап 1 остается идентичным методу 1. Но вместо создания «k» моделей на этапе 2 мы сначала добавляем выходные данные кластерной модели в качестве новой функции в исходный набор данных, а затем передаем их в единую ансамблевую модель на этапе 2. Следовательно, вместо 1+k моделей эта архитектура приводит к 1+1 = 2 моделям.

Недостаток  — хотя эта архитектура проще, чем метод 1, для нее все же требуются две модели и промежуточный этап «разработки признаков», чтобы объединить результаты кластерного этапа в качестве новой функции в исходном наборе данных. Точность часто немного ниже, чем у метода 1.

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

Примечание. Я опубликую код реализации обоих методов вскоре во второй части этой серии.

Спасибо за прочтение! Оставайтесь с нами, чтобы узнать больше.