Введение в машинное обучение: простая модель для растущего стартапа электронной коммерции

Это вводная статья для людей, интересующихся машинным обучением.

Искусственный интеллект может сформировать наше будущее больше, чем что-либо другое в этом столетии.

Когда мы думаем о голливудской версии искусственного интеллекта - суперинтеллектуальной машине (которая намного умнее лучших человеческих умов во всех областях), которая может шутить, торговать акциями, манипулировать людьми и перепрограммировать себя, - нас там нет ... пока .

Эта версия искусственного интеллекта называется искусственным суперинтеллектом или ИСИ. На этом этапе мы можем выжить, а можем и не выжить.

Однако в настоящее время мы находимся в том, что эксперты называют искусственным узким интеллектом (ANI) или слабым AI. По сути, это ИИ, который фокусируется только на одной сфере. Например, когда AlphaGo победил одного из лучших игроков в Го (древняя китайская военная игра) - это было большим достижением, потому что в игре доминировали люди в течение двух десятилетий после того, как машины впервые победили шахматы в 1997 году.

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

Как сегодня используется машинное обучение?

Вот несколько примеров:

  1. Фильтрация спама в электронной почте
  2. Системы рекомендаций, такие как Netflix и Amazon
  3. Прогнозирование оттока клиентов
  4. Сегментация клиентов
  5. Распознавание изображений

Ознакомимся с практическим сценарием.

Допустим, вы инновационная компания электронной коммерции, которая продает солнцезащитные очки в стиле искусственного интеллекта.

Ваши солнцезащитные очки уникальны, потому что технология в солнцезащитных очках позволяет распознавать популярные бренды и товары, которые носят люди. Клиенты любят носить их на концертах, потому что солнцезащитные очки позволяют человеку уловить тенденции и то, что в моде. Например, покупатель может заметить, что кто-то носит пару свежих кроссовок. С вашими солнцезащитными очками, вдохновленными искусственным интеллектом, покупатель может узнать, что это Nike Air Max ограниченного выпуска.

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

У вас также есть магазин на Шорт-Норт (Колумбус, Огайо), где вы предоставляете демонстрации и консультации по стилю. Клиенты могут вернуться домой и заказать солнцезащитные очки на свой выбор на вашем веб-сайте или в мобильном приложении.

Как владелец растущего бизнеса, вы пытаетесь решить, следует ли уделять больше внимания мобильному приложению или веб-сайту. Большая часть ваших продаж поступает с вашего веб-сайта, но мобильные продажи растут быстрее.

1. Разработайте бизнес-обоснование

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

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

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

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

Вы также узнаете, что большая часть времени специалистов по данным на самом деле тратится на сбор, очистку и изучение данных. Прадип Менон из Alibaba Cloud оценивает, что 80% вашего времени тратится на них, в то время как только 20% занимается моделированием, развертыванием и оценкой.

На самом высоком уровне существует 3 основных типа алгоритмов машинного обучения:

  1. Обучение с учителем
  2. Обучение без учителя
  3. Обучение с подкреплением

Алгоритмы контролируемого обучения обучаются с использованием помеченных примеров, где желаемый результат известен. Если вы, например, производите какой-либо продукт или оборудование, вы можете пометить точки данных как «F» (сбой) или «R» (запуски).

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

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

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

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

Второй шаг для вас - собрать все ваши данные в место, где вы можете с ними работать. Как растущий, но относительно ранний стартап, лучше всего использовать сторонние инструменты, такие как Redshift, для настройки инфраструктуры данных.

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

Для этого анализа мы будем использовать Python в Jupyter вместе с Pandas, Numpy и другими библиотеками науки о данных. Опять же, это простой пример для тех, кто хочет лучше понять, как можно использовать машинное обучение для практических бизнес-приложений. Так что, если вы не понимаете код или некоторые из упомянутых инструментов, ничего страшного - просто пропустите!

импортировать панды как pd
импортировать numpy как np
импортировать matplotlib.pyplot как plt
импортировать seaborn как sns
% matplotlib inline

Данные, которые мы будем использовать, включают информацию о клиенте, такую ​​как адрес электронной почты, адрес и цвет аватара. Он также имеет столбцы с числовыми значениями:

  • Средн. Время ношения: среднее время ношения очков в минутах.
  • Время в приложении: среднее время, проведенное в приложении, в минутах.
  • Время на веб-сайте: среднее время, проведенное на веб-сайте в минутах.
  • Срок участия: сколько лет клиент является участником

3. Очистите и изучите данные

Поскольку данные обычно беспорядочные, большую часть времени вам нужно будет очистить их. Мы пропустим этот шаг в рамках этой гипотетической ситуации (и потому, что это действительно неинтересный процесс :)).

Изучите свои данные

После того, как ваши данные будут очищены и стандартизированы, вы можете быстро начать получать сводную статистику с высоты птичьего полета. Из приведенных ниже результатов видно, что клиенты проводят больше времени на вашем веб-сайте, а средняя потраченная сумма составляет примерно 494 доллара в год.

Как упоминалось ранее, прежде чем обучать и тестировать модель, нам следует изучить данные, чтобы лучше понять, что происходит.

Вы можете начать со сравнения соотношения времени на сайте и годовой суммы, потраченной.

sns.jointplot (x = 'Время в приложении', y = 'Годовая сумма, потраченная', data = customers)
sns.jointplot (x = 'Время на веб-сайте', y = 'Годовая сумма, потраченная', data = клиенты)

Сверху кажется, что существует более линейная зависимость между временем, проведенным в приложении, и годовой суммой, потраченной на время на веб-сайте, и годовой суммой, потраченной. Интересный.

Вы можете задать еще один вопрос: какова взаимосвязь между временем использования приложения и продолжительностью членства?

Линейный график с использованием морской волны:

sns.jointplot (x = ’Время в приложении’, y = ’Продолжительность членства’, kind = ’hex’, data = customers)

Здесь нет сильной линейной зависимости.

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

4. Модель поезда

Следующий шаг - разделить ваши данные на набор для обучения и тестирования. Идея здесь состоит в том, чтобы взять часть наших данных и использовать ее для обучения нашей модели. Мы будем использовать тестовый набор данных, чтобы увидеть, насколько точно наша модель предсказывает, сравнивая его с фактическими выходными данными.

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

Ниже мы разделим наш тестовый набор данных на 0,3, а остальное используем для обучения нашей модели.

Примечание. Первым шагом будет установка переменных X и Y в соответствующие столбцы. Затем используйте model_selection.train_test_split из sklearn, чтобы разделить данные на наборы для обучения и тестирования.

из sklearn.model_selection импорт train_test_split

из sklearn.linear_model импорт LinearRegression

X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,3)

lm = LinearRegression ()

lm.fit (X_train, y_train)

Теперь распечатываем коэффициенты модели. Мы интерпретируем эти коэффициенты ниже.

print ("Коэффициенты: \ n", lm.coef_)

Коэффициенты:
[0,17825135 43,86015875 0,34813890 63,04039211]

5. Прогнозирование тестовых данных

Теперь, когда мы подобрали нашу модель, давайте оценим ее производительность, прогнозируя тестовые значения.

Мы можем использовать lm.predict () для прогнозирования набора данных X_test.

Глядя на диаграмму рассеяния реальных тестовых значений и прогнозируемых значений, мы видим, что наша модель на самом деле работает неплохо!

6. Оценить модель

Здесь мы можем оценить производительность нашей модели, вычислив остаточную сумму квадратов (отклонение от фактических данных) и объясненную оценку дисперсии.

Вы можете вычислить среднюю абсолютную ошибку, среднеквадратичную ошибку и среднеквадратичную ошибку, а также использовать гистограмму, чтобы убедиться, что остатки распределены нормально. Если вам интересно узнать больше об этих показателях, перейдите по этой ссылке: https://towardsdatascience.com/how-to-select-the-right-evaluation-metric-for-machine-learning-models-part- 1-regrression-metrics-3606e25beae0

MAE: 6.918249653330853
MSE: 78.97115165397457
RMSE: 8.71812066078243

Наше значение R-квадрата фактически составило 99%. Для тех, кто не знаком с R-квадрат, это мера того, насколько вариативность объясняется вашей моделью. Итак, у нас есть очень подходящая модель для наших тестовых данных.

Глядя на гистограмму ниже, мы можем подтвердить, что расхождение между нашими данными и оценочной моделью было довольно минимальным и нормально распределенным.

Заключение

Итак, сосредоточим ли мы наши усилия на разработке мобильных приложений или веб-сайтов?

Как можно интерпретировать эти коэффициенты?

  • Если оставить все остальные функции неизменными, увеличение времени в приложении на 1 единицу приведет к увеличению общих затрат на 43,86 доллара. Точно так же вы интерпретируете остальные коэффициенты.

Что ж, похоже, что нам следует изучить взаимосвязь между продолжительностью членства и приложением, а также продолжительностью членства и веб-сайта, прежде чем делать выводы.

На самом деле кажется, что продолжительность членства может быть важнее, чем вкладывать деньги в мобильную версию или веб-сайт!

На самом деле ответ немного сложнее.

Вы можете больше инвестировать в веб-сайт, чтобы он соответствовал производительности приложения, или разрабатывать приложение больше, поскольку оно уже работает лучше. Здесь чрезвычайно полезен тот, кто понимает как сторону науки о данных, так и бизнес-сторону.

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

Будем надеяться, что как владелец бизнеса вы теперь лучше понимаете, как можно использовать машинное обучение, чтобы принимать больше решений на основе данных.

Спасибо!

Northpeak - студия цифровых инноваций. Мы сотрудничаем с основателями, используя сочетание аналитики данных, дизайна и маркетинга. Если у вас есть какие-либо вопросы по поводу ваших данных, более сложный случай или интересная проблема, в которой вы не уверены, обратитесь к нам на northpeak.io.