Введение Предсказуемая, но долгожданная смена времен года происходит прямо сейчас.
Многие наши друзья с нетерпением ждут начала летнего сезона и активно обновляют свой инвентарь.
Список очень необходимых вещей, которые необходимо приобрести, превышает все мыслимые бюджеты на десять лет вперед (ведь еще нужно предусмотреть аренду товарного поезда для доставки всего необходимого) и на помощь приходят онлайн-доски объявлений.
.
В надежде сэкономить вы определяете список вещей, которые вам больше не пригодятся, выставляете их на продажу и в ожидании выгодной сделки начинаете ждать звонков и.
Их нет. В чем дело? Оказывается, взыскательного покупателя интересует не только то, что «газонокосилка в отличном состоянии», но и мощность двигателя, направление выброса травы, положение вала, время работы и т. д. Не будучи специалистом в садовом деле.
оборудование, как можно было все это предусмотреть? И вот вы начинаете просматривать другие объявления на подобную тему, проходит время и ваш дачный логист уже заказал баржу и два грузовых самолета для перевозки.
На примере одного из разделов доски объявлений мы рассмотрим построение прогнозной модели, которая поможет узнать, что именно люди хотели бы узнать из описания вашего предложения, а также даст очень приблизительную оценку количества кликов на ваше объявление.
Здесь я постарался описать всю картину, общую картину, но подробности доступны по ссылкам на код и данные в конце поста.
В статье сделаны следующие предположения:
- Количество переходов обратно пропорционально времени продажи продукта.
- Для остальных городов (статья касается только столицы) и категорий анализ можно провести по аналогии.
Описание набора данных
С помощью библиотеки Python urllib было получено 3879 записей с одного популярного сайта.Категория - собаки, Москва.
При отборе объявлений я старался оставлять только некоммерческие предложения по передаче в хорошие руки, поэтому порода конкретно не указывалась.
Описание полей выбора:
- описание — полный текст объявления
- идентификатор - номер объявления на сайте
- num_counts — количество посещений объявления с момента начала его размещения
- цена - цена, за которую предлагается приобрести животное.
Обычно волонтеры ставят 100 рублей.
или вообще не указывайте цену
- Дата начала - дата размещения объявления
- заголовок — название объявления, как оно выглядит на первой странице
Цель исследования
Разработайте модель прогнозирования зависимости количества просмотров в день от описания объявления и определите наиболее значимые слова для этой категории.
Предварительная обработка данных
Поле num_counts содержит количество кликов с момента начала публикации Дата начала .Поскольку каждая запись имеет разное время публикации, необходимо количество посещений разделить на количество дней, прошедших с момента публикации до момента получения данных, таким образом мы получим приблизительную оценку количества посещений в день, которые мы спрогнозируем.
Модель «мешок слов» используется для анализа текста.
Итак, план:
- Стемминг для исключения употребления одного и того же слова в разных формах как разных признаков
- Поле «дата» содержит дату в строковой форме, поэтому ее необходимо преобразовать в формат, правильный с точки зрения анализа.
- Поле воспринимается как знак описание , поэтому текст необходимо перевести в представление набора слов и применить tf-idf. При этом из текста удаляются стоп-слова: предлоги, вспомогательные частицы и т.п.
- После нескольких безуспешных попыток восстановить регрессию между матрицей терминов документа и средним числом посетителей было принято решение разбить целевую переменную на интервалы (квартили) и рассмотреть задачу классификации (следовательно, tf-idf).
Те.
В результате модель спрогнозирует интервал, содержащий средний трафик для этого объявления.
Преобразование в квартили производилось только на обучающем наборе, поэтому необходимо написать функцию, преобразующую и тестовый набор.
Преобразовать всю выборку невозможно, так как тогда тестовые данные будут косвенно участвовать в обучении.
- Поле «цена» представляет цену за животное.
Высокие цены являются показателем продажи породистого животного, но нас интересует некоммерческая деятельность, поэтому мы оставляем только те записи, по которым указана цена.
< 500 rubles. or not specified
- Разделить на поезд\тест. Кроме того, обучение и выбор параметров с использованием сетки для перекрестной проверки будут проводиться на поезде, а итоговое качество будет проверяться на тестировании.
Главный показатель – точность
среднее_количество , разбитый на квартили (я выбрал количество квартилей 5).
Разведочный анализ
Количество просмотров в день имеет степенное распределение, возможно этот раздел не популярен в принципе:Интересно посмотреть на диаграмму рассеяния между количеством слов и количеством просмотров:
Видно, что более короткие объявления имеют больше посещений.
Здесь я бы предложил такое объяснение – длинные рекламные объявления потенциальному владельцу часто описывают модель общения между ним и питомцем, например:
Если вы любите домашний покой, то Ромуш спокойно ляжет у ваших ног и с радостью посмотрит с вами фильм, который вы непременно вместе обсудите за чашечкой горячего шоколада с сырниками.Поскольку все люди разные, такая реклама может сразу отсеять людей, которые подают свое общение по-другому.И с ним вам будет очень уютно и тепло холодными вечерами.
Если у вас есть дети и ваш дом похож на «страну детских грез», то Ромус побежит впереди всех с криком «Банзай», тем самым забавляя малышей, которые просто визжат от восторга от своего нового друга!
Не уверен, что это хорошо, так как модель общения – это крайне субъективный взгляд волонтера и человек теряет интерес к рекламе не потому, что собака ему не подходит, а по предвзятым причинам – примерил неправильная модель.
Вторая возможная причина – описание тяжелой жизни в приюте.
Нет сомнений, что жизнь там непростая, но среднестатистический человек, прочитав такой текст, может испытать сильнейший стресс и неосознанно попытаться забыть о нем как о травмирующем воспоминании (это моя субъективная гипотеза).
Базовая линия для модели
Целевая переменная была разделена на 5 интервалов (читай: классов): (13.599, 324] 454 [0.0888, 1.184] 454 (5.334, 13.599] 453 (2.436, 5.334] 453 (1.184, 2.436] 453 Те.имеется 454 записи, где целевая переменная принимает значения из интервала (13,599, 324] и т. д. Если мы всегда прогнозируем по какому-то определенному интервалу, то количество правильных ответов будет примерно 0,2, это значение выбираем в качестве базового уровень, качество которого мы хотели улучшить.
Модель
После нескольких экспериментов я выбрал в качестве классификатора случайный лес.Различные параметры настраивались посредством поиска по сетке для перекрестной проверки с количеством сверток, равным пяти.
Обучение занимает примерно 15-20 минут на Intel i7. Среднее качество при перекрестной проверке по метрике точности составило 0,386, что почти в два раза превышает прогноз с использованием постоянного значения.
На отложенной выборке, нигде ранее не участвовавшей, точность = 0,384. Из таблиц ниже видно, что классификатор лучше различает крайние значения (интервалы [0,0888, 1,184] и (13,599, 324)) и хуже соседние:
Возможно, качество модели можно было бы улучшить, если бы к тексту были добавлены фотографии.
Для извлечения признаков из фотографий можно попробовать использовать сверточные нейронные сети, например AlexNet.
Значение слов
Давайте посмотрим на топ-50 слов, которые оказываются важными при классификации:График не противоречит интуиции: людей интересует, сколько лет животному и какого он пола, ходит ли собака на поводке, подходит ли она больше для семьи или одиноких людей, как она ладит с другими домашними животными.
Можно сделать вывод, что это минимальная информация, которую следует включить в объявление.
Источники
Набор данных И ipython ноутбукЗаключение
Мы уже видели, что количество просмотров у раздела «животные в подарок» невелико, а у приютов оно даже ниже, чем у частных лиц.Это может быть связано с недостаточной информированностью людей и различными предрассудками.
Позвольте мне привести вам несколько фактов:
- Рекламу размещают волонтеры, заинтересованные в том, чтобы обеспечить наилучшие условия для своего подопечного.
Им не платят деньги в зависимости от того, сколько животных они могут разместить.
Если у вас возникнут проблемы, вы можете вернуть животное обратно.
Поэтому у волонтера нет желания плохо обращаться с больным питомцем.
Если животное требует особого ухода, то такие вещи всегда обсуждаются заранее, и вы можете рассчитывать на всяческую (разумную) поддержку со стороны волонтера.
- В приютах следят за эпидемиологической ситуацией, иначе в условиях стресса и корма среднего качества все животные давно бы погибли.
- В приюте много животных, которые были домашними животными, но потерялись, сбежали от хозяев во время автокатастрофы или какого-то другого происшествия или просто стали ненужными и неудобными.
Те.
это не дикие волки
- С каждым животным, которое вы видите в рекламе, хотя бы раз в неделю, а то и чаще, волонтеры проводят обучение – гуляют на поводке, обучают командам, таким образом происходит постоянный контакт с человеком.
- Вы тоже можете принять в этом участие
- В приютах тоже есть кошки
- В приютах есть собаки маленького и среднего размера.
Благодарности
Данный анализ проводился в рамках итогового курсового проекта.«Машинное обучение и интеллектуальный анализ данных» ДПО ВС?, огромное спасибо нашим преподавателям за терпение и труд, а также моему научному руководителю.
P.S. Пожалуйста, пишите мне о любых неточностях и опечатках! УПД.
Пользователь andraszsom внутри соревнования по кэгглу разместил анализ связи различных исходов жизни в приюте (эвтаназия, или животное было отдано на адаптацию в семью и т.п.
) от породы, возраста и других особенностей, связь .
Теги: #ipython #машинное обучение #машинное обучение
-
Композитные Материалы
19 Oct, 24 -
Эпистемические Стандарты Для Изобретений
19 Oct, 24 -
Vr-Дизайн: Пользовательский Интерфейс
19 Oct, 24 -
Хабраман, Из Всех Искусств Тебе Ближе Всего:
19 Oct, 24 -
Сравнение Subversion И Mercurial (Hg)
19 Oct, 24