Как AllCars оценивает 11 000 подержанных авто на Кипре меньше чем за 90 секунд
Вы смотрите хэтчбек 2018 года за 12 500 EUR. Это выгодная сделка, обычная цена или ситуация из серии «ехать час, чтобы разочароваться»? Вот простое объяснение, как AllCars отвечает на этот вопрос по каждому подержанному авто на Кипре.
Покупка подержанного авто на Кипре не должна ощущаться как расследование, но обычно именно так и выходит. Вы листаете объявления, сравниваете несколько похожих машин, прикидываете цену. Может быть, ведете таблицу. Чаще — просто надеетесь. AllCars создан, чтобы убрать догадки: для каждого авто в индексе я считаю, где оно находится относительно остального рынка, и ставлю ему оценку сделки.
Звучит просто. Но первая версия моего движка оценки не успевала делать это достаточно быстро. Она оценивала машины по одной, каждый раз обращалась к базе данных, и полный пересчет занимал почти весь вечер. Пока он заканчивался, рынок уже немного менялся. Поэтому я перестроил движок.
От 11 000 маленьких запросов к трем большим
Новый движок не задает базе данных одиннадцать тысяч вопросов. Он задает три: дай активные объявления, дай сводки по сегментам, дай набор сопоставимых авто. Все это загружается в память, а дальше начинается чистая работа с числами. База данных делает скучную часть — «забрать много строк», с которой она и так хорошо справляется, а scorer больше не ждет каждый сетевой круг.
Почти вся история — в этом одном изменении формы. Логика для каждого объявления стала векторной операцией. Последовательный процесс стал удобным для параллельного выполнения. А движок начал вести себя как калькулятор, а не как слишком разговорчивый клиент.
Почему «похожие машины» сложнее, чем кажется
Сравнить две машины кажется очевидным, пока не пытаешься записать это в правила. Марка и модель — категориальные признаки. Год и пробег — числовые. Тип кузова важен, но не так сильно, как объем двигателя. Цвет почти не важен. Как свести все это к одному числу?
Здесь помогает метод под названием Gower distance. Он рассматривает каждый признак в своей шкале и объединяет результаты, поэтому категориальные и числовые признаки могут сосуществовать, не заглушая друг друга. Вместе с плавной кривой весов (Epanechnikov, если хотите почитать подробнее) каждое сопоставимое авто влияет на результат пропорционально тому, насколько оно действительно похоже — без жесткого «подходит или не подходит» по случайному порогу.
Результат — оценка сделки от 0 до 100, которая держится на всем диапазоне: от массовых Toyota с сотнями сопоставимых объявлений до редких импортных машин, где похожих вариантов всего пять.
Почему это важно, когда вы покупаете
Для вас, покупателя, все это остается невидимым — вы просто видите число рядом с объявлением. «Отличная сделка» при 90+. «Хорошая цена» при 75–89. «Средне» в середине. Главное изменение под капотом в том, что число теперь действительно свежее: я пересчитываю весь рынок примерно за полторы минуты, несколько раз в день. Машина, которая утром выглядела честно оцененной, прямо сейчас сравнивается с текущим рынком, а не с рынком прошлой недели.
Если вы когда-нибудь тратили субботу на поездку через весь остров ради «отличной цены», которая на деле оказывалась обычной ценой за уставшую машину, именно от такой субботы это и должно вас спасать.
Посмотрите в действии
Каждое публичное объявление о подержанном авто на Кипре получает оценку относительно рынка. Фильтруйте по оценке сделки, сохраняйте поиск, и я сообщу, когда появится хороший вариант.
Открыть AllCars CyprusКак Value × Quality, адаптивное сжатие и поиск «лимонов» подключаются к ленте с оценками.