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

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

Все, что вам нужно для начала, — это некоторые данные для обучения алгоритма и платформа машинного обучения без кода, такая как Monument. (Бесплатные пробные версии монументов можно загрузить прямо с главной страницы.)

В этом уроке я собираюсь показать вам, как я помог другу решить, какой тип MacBook Pro купить. Он хотел купить дополнительный компьютер на Craigslist, но с таким количеством переменных — размером экрана, годом выпуска, оперативной памятью, объемом жесткого диска, покрытием Apple Care и т. д. — было трудно понять, какие продукты были перегружены, а какие — нет. недооцененный.

Мы решили эту проблему с помощью Monument.

Получить данные

Во-первых, я пошел на Craigslist и суммировал 150 списков MacBook. Я заархивировал эти страницы для справки.

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

Цена во многом зависит от существенных характеристик. Я мог бы выбрать многие, но в интересах времени я выбрал для начала несколько очевидных.

  • Id — уникальный номер, присвоенный каждому листингу, чтобы я мог сослаться на него позже.
  • Используется — значение TRUE/FALSE, указывающее, использовался ли компьютер.
  • AppleCare — значение TRUE/FALSE, указывающее, находится ли компьютер в соответствии с политикой Apple Care.
  • Год — модельный год
  • YearsFromCurrentYear — текущий год (2020 на момент написания статьи) минус год выпуска модели, чтобы получить возраст компьютера в годах
  • Цена — цена, указанная на Craigslist.
  • Размер — размер экрана в дюймах.
  • Type — тип процессора (i7 или i9)
  • Скорость (ГГц) — частота процессора
  • Оперативная память (ГБ) — объем оперативной памяти
  • Диск (ТБ) — объем жесткого диска
  • GPU (ГБ) — скорость GPU при наличии GPU

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

В итоге у меня получился CSV, который можно скачать здесь.

Создайте модель ценообразования без кода

Затем я открыл Monument — опять же, доступна бесплатная пробная версия — и импортировал CSV.

Перейдя на вкладку модели, я перетащил несколько табличек с данными, которые, как мне показалось, были особенно важными: YearsFromCurrentYear, Size и Price. Затем я изменил стиль диаграммы на «сетку», используя виджет стиля диаграммы в правом верхнем углу области диаграммы.

После построения этих таблиц данных вдоль оси ROWS (Y) Monument обнаружил, что алгоритмы регрессии подходят, и сделал доступными два таких алгоритма: LightGBM и LinReg (сокращение от линейной регрессии).

Я применил оба к Прайсу и получил такой результат:

Показатели ошибок проверки составили около 13. Давайте посмотрим, сможем ли мы быстро улучшить это.

По умолчанию алгоритмы в Monument будут использовать только нанесенные на график таблички данных в качестве независимых переменных для алгоритма. В данном случае это означает, что при применении LightGBM и LinReg к цене в качестве независимых переменных использовались только YearsFromCurrentYear и Size.

Открыв раскрывающееся меню на таблетках алгоритма, я могу перейти в меню НЕЗАВИСИМЫЕ.

В меню НЕЗАВИСИМЫЕ я вижу, что могу выбрать больше независимых переменных. Включение релевантных независимых переменных, скорее всего, улучшит мой прогноз.

После выбора «Используется», «Apple Care», «Скорость», «Диск» и «ОЗУ» частота ошибок проверки LightGBM снижается с 13,65 до 12,95. Достойное улучшение за 5 секунд работы!

Вы также заметите, что некоторые строки в прогнозе LightGBM изменились с фактических значений на null значений. Это связано с тем, что некоторые из значений входных данных в независимых переменных, которые мы добавили в LightGBM, были null. Когда это произойдет, алгоритм выдаст результат null. В более позднем уроке я расскажу, как генерировать «синтетические данные», чтобы обойти это.

При использовании всех этих независимых переменных, какие из них определяют большую часть результатов прогнозирования? Мы можем узнать это, щелкнув значок «Таблица важности проверки» в поле «ИНФО» в левом нижнем углу экрана. Не все алгоритмы создают таблицы важности проверки, но когда у нас есть к ним доступ, они полезны.

Таблица важности валидации ранжирует независимые переменные по важности этой функции. Мы видим, что размер диска и объем оперативной памяти отвечают примерно за 25% прогноза. Это означает, что эти характеристики MacBook больше всего влияют на цену — даже больше, чем независимо от того, используется компьютер или нет, что составляет 12%.

LinReg имеет коэффициент ошибок проверки 13,70. Применим те же независимые переменные.

Когда мы добавляем те же независимые переменные, которые мы использовали с LightGBM, частота ошибок проверки снижается с 13,70 до 13,11. Опять же, довольно неплохой результат для 5 секунд работы.

Вы также заметите, что некоторые значения стали null, что произошло по той же причине, что и с LightGBM.

Кроме того, вы заметите, что если вы примените к диаграмме таблички данных Измерений, такие как AppleCare, алгоритмы изменятся на Классификацию. Это делает доступными LightGBM, LogReg (логистическая регрессия) и SVM (машина опорных векторов). Это будет рассмотрено в следующем уроке.

Возвращаясь к алгоритмам регрессии, которые мы уже применяли, если бы я хотел потратить больше времени на улучшение прогноза, я мог бы открыть их меню ПАРАМЕТРОВ и изменить настройки параметров.

Однако пока я пропущу этот шаг, потому что моя цель здесь — получить быстрый результат, который будет «достаточно близким».

Перейдя на вкладку OUTPUT, я вижу свои исходные данные, которые я импортировал на вкладке INPUT с добавлением результатов LightGBM и LinReg.

Я нажимаю кнопку СОХРАНИТЬ СЕЙЧАС, чтобы создать файл CSV с этими результатами.

Результаты

Я разместил выходной CSV в виде таблицы Google, которую вы можете просмотреть здесь.

Чтобы принять решение с данными, я добавил три столбца в Google Sheet:

  1. Указанная цена минус прогнозируемая цена LightGBM
  2. Указанная цена минус прогнозируемая цена линейной регрессии
  3. Прогнозируемая цена LightGBM плюс прогнозируемая цена линейной регрессии

Чем более отрицательные значения для первого и второго дополнительных столбцов означают, что алгоритм предсказал, что цена будет выше, чем она была на самом деле, что предполагает, что цена ноутбука была занижена. Например, если указанная цена составляет 3000 долларов, но прогнозируемая цена LightGBM составляет 3500 долларов, то в первом добавленном столбце будет значение -500 долларов.

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

Теперь, чтобы внести некоторые знания в предметную область, мы должны отметить, что, учитывая, что эта информация взята с Craigslist, некоторые из этих списков могут быть мошенническими. Если бы я покупал компьютер, я бы начал свою работу с самого дешевого списка компьютеров, понимая, что мне следует уделять особое внимание признакам мошенничества.

Следующие шаги

Если бы я хотел улучшить свою модель, я мог бы добавить дополнительные точки входных данных. Есть много других переменных, которые я мог бы выбрать, в том числе город, в котором указан компьютер, есть ли опечатки в тексте списка, количество месяцев, оставшихся в политике Apple Care, включены ли фотографии, есть ли указан номер телефона, количество циклов заряда батареи и т. д.

Я также мог вернуться в меню ПАРАМЕТРЫ и внести там коррективы, чтобы повысить точность прогнозов.

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

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

Хотите узнать больше о монументе? Закажите бесплатный ознакомительный звонок в Zoom здесь.