Это первая часть серии статей, посвященная обсуждению подхода к проектированию высокого уровня. Во второй части этой серии статей будет обсуждаться кодовая реализация этого проекта.
Прогнозирование цены (покупки/продажи) подержанных автомобилей по существу представляет собой проблему регрессии. Традиционно к нему подходили с использованием линейной регрессии или одного из методов ансамбля на основе дерева.
В зависимости от набора данных/признаков, доступных для моделирования, оба или любой из этих подходов могут дать хорошие результаты.
Однако из-за того, что линейная регрессия требует гораздо большей очистки и предварительной обработки данных, в сочетании с часто более низкими оценками, чем методы ансамбля, чаще всего специалисты по данным в конечном итоге выбирают один из методов ансамбля в качестве предпочтительного алгоритма.
Это хорошо изученные и широко применяемые в отрасли методы, которые дали результаты спуска с оценками, часто находящимися в диапазоне 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.
Оба метода обычно дают более высокий показатель точности, если только набор данных не подходит для кластеризации.
Примечание. Я опубликую код реализации обоих методов вскоре во второй части этой серии.
Спасибо за прочтение! Оставайтесь с нами, чтобы узнать больше.