Прогнозирование стоимости такси с помощью модели прогнозирования BigQuery ML
Что такое ML Study Jam?
Бесплатная программа машинного обучения с использованием Qwiklabs.
Что такое BigQuery?
BigQuery - это полностью управляемая, недорогая аналитическая база данных Google без использования операций. С помощью BigQuery вы можете запрашивать терабайты и терабайты данных, не имея какой-либо инфраструктуры для управления или администратора базы данных.
Машинное обучение BigQuery (BQML, продукт в бета-версии) - это новая функция в BigQuery, с помощью которой аналитики данных могут создавать, обучать, оценивать и прогнозировать с помощью моделей машинного обучения с минимальным кодированием.
Поток прогнозирования BigQuery ML
Процесс прогнозирования машинного обучения аналогичен приведенной выше блок-схеме.
- Выберите ценные поля из таблицы необработанных данных для прогнозов.
- Выберите подходящий
classfication model
для обучения вашей модели. - Оцените производительность модели.
- Если производительность модели недостаточна, попробуйте отфильтровать данные или изменить нужный столбец таблицы.
- Если модель достаточно хороша, используйте ее для прогнозирования данных.
- Получите прогнозы.
Прогнозирование стоимости такси с помощью модели прогнозирования BigQuery ML
В этой лабораторной работе вы изучите миллионы поездок на желтых такси Нью-Йорка, доступных в общедоступном наборе данных BigQuery. Затем вы создадите модель машинного обучения внутри BigQuery, чтобы предсказать стоимость поездки в такси с учетом входных данных вашей модели. Наконец, вы оцените производительность своей модели и сделаете на ее основе прогнозы.
Урок, который мы собираемся извлечь, состоит в том, чтобы предсказать total_fare
, используя открытые данные о такси Нью-Йорка.
Рекорд желтого такси в Нью-Йорке
Https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page
Выберите функции и создайте набор данных для обучения
Это первый шаг блок-схемы, мы выбираем следующие поля из нашей таблицы в качестве полезных входных данных для нашей модели прогнозирования тарифов.
Tolls Amount Fare Amount Days of the week Hour of Day Pick up address Drop off address Number of passengers
Теперь у нас есть все нужные столбцы, а total_fare
- это то, что мы хотим спрогнозировать позже.
Выберите тип модели BQML и укажите параметры
Мы выбираем Forecasting
для прогнозирования total_fare
, потому что хотим получить numeric value
в качестве результата прогнозирования. Запрос SQL будет таким:
И результат будет:
Оценить производительность модели классификации
Для моделей линейной регрессии мы хотим использовать такую метрику потерь, как Среднеквадратичная ошибка (RMSE). Постарайтесь продолжать обучение и совершенствовать модель, пока она не будет иметь самый низкий RMSE.
В BQML
mean_squared_error
- это поле, доступное для запроса при оценке вашей обученной модели машинного обучения. ДобавьтеSQRT()
, чтобы получить RMSE.
Затем мы можем оценить, насколько хорошо модель работает с этим запросом, используя
ML.EVALUATE
.
Прогнозировать стоимость проезда на такси
Теперь мы можем использовать новую модель для прогнозов.
Похоже, что прогнозы для нас недостаточно хороши. Давай исправим.
Улучшение модели с помощью Feature Engineering
Мы можем отфильтровать набор обучающих данных, установив возможный диапазон fare_amount
. Сначала запросите таблицу, чтобы увидеть, есть ли какие-либо неправильные значения.
Есть некоторые странные выбросы, такие как отрицательные тарифы или тарифы свыше 50000 долларов США.
Давайте ограничим данные только тарифами от 6 до 200 долларов США.
Используйте новый набор данных для обучения модели.
и после этого улучшите RMSE.
Это все для этой лабораторной работы, в следующий раз мы узнаем, как использовать тип модели BQML logistic_reg
в статье: