На многих ресурсах по продаже чего-либо пользователям предоставляется дополнительная информация и возможности сравнения похожего товара.
Это может быть сравнение характеристик мониторов в интернет-магазине, или показ похожих объектов недвижимости в данном городе и районе.
В любом случае, когда кто-то решает что-то продать/купить — перед ним всегда стоит вопрос — а за какую цену? Существует предположение, что ресурсы умеющие грамотно подсказывать продавцам/покупателям цены на товар, могут получить дополнительный интерес со стороны пользователей.
Более или менее определённо можно ответить на этот вопрос (какова цена товара?) — если товар, выставленный на продажу, новый — в таком случае можно проанализировать цены на такой же товар в магазинах, автосалонах, интернет-площадках. Несколько сложнее ценообразование происходит для товара бывшего в употреблении (б/у). Сложность заключается в том, что в процессе использования товара он приобретает уникальные характеристики. Один ездит на автомобиле много лет каждый день — но аккуратно, другой вкладывает деньги в тюнинг, третий занимается художественной лепкой на потолке своей квартиры, четвёртый любит, иногда, ронять монитор на пол… И все они в кокой-то момент хотят продать свою машину, квартиру, монитор и прочее. Второй такой же машины может не существовать в мире. Было много одинаковых автомобилей — когда они сошли с конвейера — но после того как на них ездили разные люди в разных условиях — и автомобили стали разными. В той или иной степени это касается не только автомобилей но и любого другого товара. Поэтому средняя стоимость — является своего рода опорной точкой от которой можно отталкиваться продавцу и покупателю. Ниже я приведу пример, как данную задачу — определение приблизительной стоимости товара — пытаемся решить мы на сайте по продаже автомобилей am.ua.
Изначально мы ограничили число параметров используемых для анализа средних цен. За основу взяли: марку, модель, тип КПП и год выпуска авто. Ограничение параметров для анализа — вызвано ограниченным набором входных данных — на сайтевсего порядка 50 000 актуальных объявлений.
Средние цены рассчитаны не для всех объявлений (по некоторым маркам-моделям недостаточный набор данных для статистического анализа). Сам график мы снабдили некоторой долей интерактивности — точки на графике — это ссылки на объявления, либо на страницы с объявлениями по определённому году выпуска.
Для изучения реакции пользователей — добавили кнопку «оставить пожелание». В целом отзывы были положительные. Однако иногда попадались замечания вида: средняя цена — это как средняя температура по больнице. Данное замечание не лишено здравого смысла, как и требование учитывать при анализе конкретную комплектацию/модификацию, объём двигателя и другие параметры. С другой стороны, если увеличить количество параметров учитываемых при анализе, резко уменьшиться количество графиков для объявлений — это всё вызвано тем же ограниченным набором данных. Тут нам приходиться балансировать между желанием пользователей видеть более точную цифру средней стоимости — и желанием пользователей видеть эту цифру рядом с каждым авто. Мы остановились на варианте отображения достаточно грубой средней цены, которая служит как-бы отправной точкой при торге покупателя с продавцом (моя машина стоит дороже потому что в ней дополнительно есть то то и то )
Для полноты вкратце опишу алгоритм расчёта средних цен:
Экспоненциальная функция была специально закреплена по краям диапазона [y0:yn] — так как она имеет свойство быстро возрастать даже при маленьких b.
Описанная реализация отображения ценовой аналитики — первая пробная версия, не претендующая на совершенство и завершённость. Если кто-то сталкивался с подобными задачами — и может поделиться своим опытом буду очень признателен. Также будут полезны советы по улучшению математики. Особенно интересно как вы решаете проблему баланса между качеством и количеством подаваемой аналитической информации — в системах, где точность не является критической (абсолютно точной средней цены на товар не существует).
Это может быть сравнение характеристик мониторов в интернет-магазине, или показ похожих объектов недвижимости в данном городе и районе.
В любом случае, когда кто-то решает что-то продать/купить — перед ним всегда стоит вопрос — а за какую цену? Существует предположение, что ресурсы умеющие грамотно подсказывать продавцам/покупателям цены на товар, могут получить дополнительный интерес со стороны пользователей.
Более или менее определённо можно ответить на этот вопрос (какова цена товара?) — если товар, выставленный на продажу, новый — в таком случае можно проанализировать цены на такой же товар в магазинах, автосалонах, интернет-площадках. Несколько сложнее ценообразование происходит для товара бывшего в употреблении (б/у). Сложность заключается в том, что в процессе использования товара он приобретает уникальные характеристики. Один ездит на автомобиле много лет каждый день — но аккуратно, другой вкладывает деньги в тюнинг, третий занимается художественной лепкой на потолке своей квартиры, четвёртый любит, иногда, ронять монитор на пол… И все они в кокой-то момент хотят продать свою машину, квартиру, монитор и прочее. Второй такой же машины может не существовать в мире. Было много одинаковых автомобилей — когда они сошли с конвейера — но после того как на них ездили разные люди в разных условиях — и автомобили стали разными. В той или иной степени это касается не только автомобилей но и любого другого товара. Поэтому средняя стоимость — является своего рода опорной точкой от которой можно отталкиваться продавцу и покупателю. Ниже я приведу пример, как данную задачу — определение приблизительной стоимости товара — пытаемся решить мы на сайте по продаже автомобилей am.ua.
Изначально мы ограничили число параметров используемых для анализа средних цен. За основу взяли: марку, модель, тип КПП и год выпуска авто. Ограничение параметров для анализа — вызвано ограниченным набором входных данных — на сайтевсего порядка 50 000 актуальных объявлений.
Средние цены рассчитаны не для всех объявлений (по некоторым маркам-моделям недостаточный набор данных для статистического анализа). Сам график мы снабдили некоторой долей интерактивности — точки на графике — это ссылки на объявления, либо на страницы с объявлениями по определённому году выпуска.
Для изучения реакции пользователей — добавили кнопку «оставить пожелание». В целом отзывы были положительные. Однако иногда попадались замечания вида: средняя цена — это как средняя температура по больнице. Данное замечание не лишено здравого смысла, как и требование учитывать при анализе конкретную комплектацию/модификацию, объём двигателя и другие параметры. С другой стороны, если увеличить количество параметров учитываемых при анализе, резко уменьшиться количество графиков для объявлений — это всё вызвано тем же ограниченным набором данных. Тут нам приходиться балансировать между желанием пользователей видеть более точную цифру средней стоимости — и желанием пользователей видеть эту цифру рядом с каждым авто. Мы остановились на варианте отображения достаточно грубой средней цены, которая служит как-бы отправной точкой при торге покупателя с продавцом (моя машина стоит дороже потому что в ней дополнительно есть то то и то )
Для полноты вкратце опишу алгоритм расчёта средних цен:
- производится выборка актуальных объявлений по определённой марке/моделе/КПП — данные раскладываются по годам (отбрасываются не растаможенные и после ДТП)
- берётся минимальный и максимальный год в котором присутствует не менее 10-ти объявлений
- для каждого года, из полученного диапазона, рассчитывается средняя арифметическая цена (отбрасываются максимальные и минимальные значения)
- средняя цена, для конкретного года, вычисляется по формуле middlePrice=(y0*((k-x)/k)*$zexp(b*x))+(yn*(x/k)*$zexp(b*(k-x))) где:
$zexp — это е в степени
y0 — среднее арифметическое цены в год начала диапазона
yn — среднее арифметическое цены в год окончания диапазона
k — диапазон лет
x — разность между конкретным годом и годом начала диапазона
b — подбираемый коэффициент в пределах [-0.1:0]
- происходит подбор b при котором среднее процентное отклонение полученных цен от средних арифметических цен — минимально
- в случае, если минимальное среднее отклонение не превышает 10% — фиксируются данные для графика
Экспоненциальная функция была специально закреплена по краям диапазона [y0:yn] — так как она имеет свойство быстро возрастать даже при маленьких b.
Описанная реализация отображения ценовой аналитики — первая пробная версия, не претендующая на совершенство и завершённость. Если кто-то сталкивался с подобными задачами — и может поделиться своим опытом буду очень признателен. Также будут полезны советы по улучшению математики. Особенно интересно как вы решаете проблему баланса между качеством и количеством подаваемой аналитической информации — в системах, где точность не является критической (абсолютно точной средней цены на товар не существует).