Показатель:

Объясните набор данных

Создайте блокнот и получите необходимые пакеты

Создание наборов данных и таблиц в 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 и поиграйте с ними ...