Введение в машинное обучение: простая модель для растущего стартапа электронной коммерции
Это вводная статья для людей, интересующихся машинным обучением.
Искусственный интеллект может сформировать наше будущее больше, чем что-либо другое в этом столетии.
Когда мы думаем о голливудской версии искусственного интеллекта - суперинтеллектуальной машине (которая намного умнее лучших человеческих умов во всех областях), которая может шутить, торговать акциями, манипулировать людьми и перепрограммировать себя, - нас там нет ... пока .
Эта версия искусственного интеллекта называется искусственным суперинтеллектом или ИСИ. На этом этапе мы можем выжить, а можем и не выжить.
Однако в настоящее время мы находимся в том, что эксперты называют искусственным узким интеллектом (ANI) или слабым AI. По сути, это ИИ, который фокусируется только на одной сфере. Например, когда AlphaGo победил одного из лучших игроков в Го (древняя китайская военная игра) - это было большим достижением, потому что в игре доминировали люди в течение двух десятилетий после того, как машины впервые победили шахматы в 1997 году.
Машинное обучение - это подраздел искусственного интеллекта. Машинное обучение - это метод анализа данных, цель которого - позволить компьютерам учиться самостоятельно.
Как сегодня используется машинное обучение?
Вот несколько примеров:
- Фильтрация спама в электронной почте
- Системы рекомендаций, такие как Netflix и Amazon
- Прогнозирование оттока клиентов
- Сегментация клиентов
- Распознавание изображений
Ознакомимся с практическим сценарием.
Допустим, вы инновационная компания электронной коммерции, которая продает солнцезащитные очки в стиле искусственного интеллекта.
Ваши солнцезащитные очки уникальны, потому что технология в солнцезащитных очках позволяет распознавать популярные бренды и товары, которые носят люди. Клиенты любят носить их на концертах, потому что солнцезащитные очки позволяют человеку уловить тенденции и то, что в моде. Например, покупатель может заметить, что кто-то носит пару свежих кроссовок. С вашими солнцезащитными очками, вдохновленными искусственным интеллектом, покупатель может узнать, что это Nike Air Max ограниченного выпуска.
В прошлом году ваши солнцезащитные очки стали популярным брендом солнцезащитных очков для мероприятий на открытом воздухе и концертов.
У вас также есть магазин на Шорт-Норт (Колумбус, Огайо), где вы предоставляете демонстрации и консультации по стилю. Клиенты могут вернуться домой и заказать солнцезащитные очки на свой выбор на вашем веб-сайте или в мобильном приложении.
Как владелец растущего бизнеса, вы пытаетесь решить, следует ли уделять больше внимания мобильному приложению или веб-сайту. Большая часть ваших продаж поступает с вашего веб-сайта, но мобильные продажи растут быстрее.
1. Разработайте бизнес-обоснование
Ваше предположение (также известное как гипотеза) состоит в том, что ваше мобильное приложение обгонит продажи вашего веб-сайта, и поэтому вы думаете, что именно в это вам следует инвестировать. Однако вы не уверены и хотите, чтобы был способ принять более обоснованное решение на основе данных.
Вы понимаете, что у вас есть полезные данные о ваших клиентах, которые могут помочь в этом. Вы также читали о том, как компании используют машинное обучение для решения проблем, связанных с моделями ценообразования, анализом настроений и сегментацией клиентов.
Вы решаете обратиться к своим друзьям из Northpeak, студии цифровых инноваций, которая помогает основателям предлагать решения в области анализа данных, дизайна и маркетинга.
Вы узнаете, что машинное обучение - это метод анализа данных. Этот метод использует алгоритмы, которые итеративно учатся на данных.
Вы также узнаете, что большая часть времени специалистов по данным на самом деле тратится на сбор, очистку и изучение данных. Прадип Менон из Alibaba Cloud оценивает, что 80% вашего времени тратится на них, в то время как только 20% занимается моделированием, развертыванием и оценкой.
На самом высоком уровне существует 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.