Показатель:
Объясните набор данных
Создайте блокнот и получите необходимые пакеты
Создание наборов данных и таблиц в BigQuery
Выполните исследовательский анализ данных
Google Cloud Datalab позволяет сочетать мощь декларативного SQL с императивным кодом (Python) для выполнения интересных задач анализа, визуализации и преобразования данных.
О наборе данных:
Instacart открывает данные о 3 000 000+ заказов на продукты от 200 000+ анонимных пользователей. Ниже показана ER-диаграмма csv-файлов набора данных.
Эта ссылка предоставлена вице-президентом по информационным технологиям instacart https://tech.instacart.com/3-million-instacart-orders-open-sourced-d40d29ead6f2
Архитектура:
Набор данных хранится в корзине облачного хранилища Google, а затем таблицы создаются в bigquery. Компания datalabvm набирает обороты, и мы используем записные книжки для анализа и визуализации, выполняя запросы к таблице bigquery.
При необходимости преобразованные данные сохраняются в виде новой таблицы в bigquery, а затем перемещаются в сегменты облачного хранилища в форме csv для использования в будущем.
Создавайте таблицы в BigQuery
Мы сохранили набор данных в ведре gcs. Теперь нам нужно создать таблицы в bigquery, выгружая содержимое корзин.
Повторите вышеуказанные шаги для каждого файла .csv, чтобы создать отдельную таблицу.
Исследовательский анализ:
Перед построением любой модели машинного обучения мы проводим обширное исследование данных. Это дает лучшую перспективу и то, что нужно искать в данных, что является ключом к любой проблеме с данными. EDA приводит к разработке новых функций, которые можно включить в модель машинного обучения.
Теперь загрузите записные книжки из репозитория github, чтобы получить следующие результаты.
Количество заказов намного выше в выходные (0,1) и меньше в среду (4).
Ниже приводится график для упорядочивания по часам дня. Большинство заказов выполняется в дневное время, поэтому мы можем нанять водителей по доставке в зависимости от спроса.
Сочетание дня недели и часа дня на следующей тепловой карте показывает, что субботние вечера и воскресные утренние часы наиболее загружены ...
Объединение таблиц в единую таблицу
Чтобы получить больше информации о продуктах, таблицы проходов и отделов объединяются с таблицей order_prior с помощью bigquery из datalab, и создается новая таблица.
Вот снимок схемы и содержимого новой таблицы.
Как упоминалось ранее, таблицы создаются в bigquery, а datalab предоставляет доступ к API bigquery через записные книжки jupyter для запуска SQL.
Вот простой пример:
Следующее создает SQL, на который можно ссылаться с помощью переменной «queary1
%%bq query -n queary1 SELECT department, COUNT(*) AS `frequency_count` FROM `newproject-xxxx.instacart.mrg_fin` GROUP BY department ORDER BY `frequency_count` DESC LIMIT 50
А теперь мы можем просмотреть образец результата bigquery следующим образом
%%bq sample --count 5 --query queary1
Результат
Теперь результат можно сохранить в фреймворке pandas с помощью этой команды.
df = queary1.execute(output_options=bq.QueryOutput.dataframe()).result()
Таким образом, сложные в вычислительном отношении задачи или создание новых функций путем выполнения сложного SQL-запроса могут выполняться с использованием bigquery, а результаты могут быть непосредственно считаны в фрейм данных для дальнейшего анализа. Таким образом, datalab предоставляет единое удобное и мощное средство для выполнения задач, требующих большого объема данных.
Верхние проходы
Свежие фрукты, свежие овощи и упакованные овощи фрукты - главные проходы
Распределение по отделам
Создайте новую функцию под названием «prob_reorder», которая представляет собой вероятность повторного заказа элемента из отдела.
Самый высокий повторный заказ - для молочных яиц
Самые популярные товары с повторным заказом - органические…
Вероятность повторного заказа уменьшается по мере увеличения количества дней между самым последним заказом и пика на 7-й день, что означает, что более вероятно, что человек, последний заказ которого был размещен 7 дней назад, скорее всего заказать еще раз, чтобы можно было настроить промо…
Этот набор данных очень интересен, и можно разработать больше функций, чтобы получить представление о поведении пользователей, и его можно использовать для планирования большего количества водителей и для организации запасов, необходимых в часы пик.
Пожалуйста, скачайте файлы с github и поиграйте с ними ...