Создайте приложение для прогнозирования времени быстрого времени

Influxdata спонсировала этот пост.

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

Искусство прогнозирования завтра

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

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

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

Наш инструментарий

Три мощных технологии не стоят вам ни копейки:

  • Influxdb 3 Enterprise: Мощная база данных временных рядов, предназначенная для обработки сложностей хранения, обработки и анализа высокой скорости, высокоскоростных данных для прогнозирования исторических временных рядов. Вы можете использовать бесплатную пробную версию или лицензию на свободную дому.
  • Пророк: Прогнозирование Facebook Research. Прогнозирование библиотеки с легкостью обрабатывает сезонность и обнаружение аномалий.
  • API Open-Meteo: Бесплатный, всесторонний API данных о погоде с глобальным охватом, используемым для сбора лондонских данных о погоде за последние шесть месяцев.

Начиная

1. Установка Influxdb 3 Enterprise: Установка проста; Вы можете начать бесплатно с вашего адреса электронной почты. Запустите следующую команду в вашем терминале и следуйте подсказке для бесшовной установки.

Curl-O 1 Curl-O

2. Начать Influxdb 3 Enterprise С настройками по умолчанию, которые включают простой кластер и паркетный файл в качестве локального хранилища объектов.

Influxdb3 Сердство \—node-id host01 \-cluster-id cluster01 \ -object store \—data-dir ~/.influxdb3 12345 plupuxdb3 vom-node-id host01 \ -cluster-id cluster01 \ -Object-store file \—data-dir ~/.influxdb3

3. Создайте токен администратора Для операций базы данных с использованием следующей команды:

Influxdb3createtoken-Admin-host 1 plupuxdb3createToken-Админ-Хост

4. Создать файл .ENV ‘ и надежно хранить строку токена администратора вместе с следующими деталями:

Influxdb_host = «localhost: 8181» plupuxdb_token = «your_database_token» plupuxdb_database = «погода» London_lat = «51.5074» London_lon = «-0,1278» 123456 Influxdb_host = «Localhost: 8181» plupuxdb_token = «your_database_token» plupuxdb_database = «погода» London_lat = «51.5074» London_lon = «-0,1278»

5. Настройка Python и Prophet

Наконец, установите необходимые библиотеки, такие как Prophet, запросы обрабатывать запросы Web API из API API Open-Meteo для лондонских данных о погоде, Dotenv для хранения учетных данных в файле среды и клиентской библиотеки Influxdb V3, чтобы легко общаться с Enterprise InfluxDB 3.

pipinstallinfluxdb3-pythonprophetRequestspython-dotenv 1 pipinstallinfluxdb3-pythonprophetrequestspython-dotenv

Шаг 1: Сбор исторических данных о погоде

Путешествие начинается с сбора данных о температуре Лондона. Используйте API Open-Meteo, чтобы получить шесть месяцев исторических данных и эффективно сохранить его в InfluxDB. Создайте сценарий Python и назвать его main.py.

# In main.py из Weather_client Import Fetch_weather_data из plupuxdb_client import dbclient weate_data = fetch_weather_data () df = process_api_response (weather_data) # Эта функция поддерживает реакцию API db = dbclient () db.weather_weather_data (df). print («Данные о погоде, записанные в Influxdb») 12345678910 # in main.py из Weather_client Import fetch_weather_datafrom plupuxdb_client import dbclient weather_data = fetch_weather_data () df = process_api_response (weather_data) # Функция. Dbclient () db.write_weather_data (df) # Эффективно записывает данные в plupuxdbprint («Данные о погоде, записанные в Influxdb»)

Наш класс DBClient обрабатывает тяжелую работу пакетной записи к местному экземпляру Enterprise Enterprise Influxdb 3 для оптимальной производительности.

Шаг 2: Получение данных о погоде

Благодаря безопасному сохранению данных их можно получить с помощью прямого запроса SQL. Создайте сценарий Python и назвайте его influxdb_client.py.

# plupuxdb_client.py def read_data (self): Query = «» «Выберите время, температуру из» погоды -london «, где время> = теперь () — интервал ‘180 дней по порядку по времени ASC» «» return self.client.query (Query = Query) 123456789 # uptuxdb_client.pece def def def_data (self): Query «Selecty Time, Query» Query «Query» Query «query» query «query» query «query # query query» query # selecty «. «Погода -лондон», где время> = сейчас () — интервал «180 дней» по времени по времени ASC »» «return Self.client.Query (Query = Query)

Шаг 3: Хрустальное время мяча — прогнозирование с пророком

Теперь, для захватывающей части: использование Пророка для создания прогнозов для температуры Лондона в течение следующего месяца. Создайте сценарий Python и назовите его forecasting.py.

# forecasting.py от plupuxdb_client import dbclient из Prophet import prophet db = dbclient () df = db.read_data (). to_pandas () # Получить данные из модели plupuxdb = prophet (ежегодно_Seasonality = true, daily_sesonality = true) model.fit (df) Future = Future = = Future = = Future = = Future = Future = Future = Future = Future = Future = Future = Future = Future = = model.make_future_dataframe (периоды = 30*24, freq = ‘h’) # прогноз на 1 месяц вперед. Прогноз = Model.predict (будущее) 123456789101112 # Прогнозирование. db.read_data (). to_pandas () # Получить данные из Model Influxdb = Prophet (just_seasonality = true, daily_seasonality = true) model.fit (df) future = model.make_future_dataframe (периоды = 30*24, freq = ‘h’) # forecast 1 месяц.

Выбор прогнозирования: машинное обучение против статистических методов

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

Методы машинного обучения (например, Пророк):

  • Excel при обнаружении сложных, нелинейных паттернов
  • Автоматически обрабатывать сезонность и изменения тренда
  • Требовать минимальной ручной настройки
  • Лучше работать с большими наборами данных

Традиционные статистические методы (например, Арима):

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

Новый ребенок на блоке: временные ряды LLMS

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

Преимущества:

  • Может потенциально прогнозировать без явного обучения (нулевое обучение)
  • Может хорошо обобщать данные по различным типам данных временных рядов

Ограничения:

  • Все еще на ранних этапах развития
  • Вычислительно интенсивный
  • Часто не хватает интерпретации
  • Может бороться с долгосрочной точностью

Обработка в режиме реального времени против партии

В нашем примере используется пакетная обработка, анализируя фиксированные наборы данных, чтобы сделать прогнозы. Это отлично подходит для прогнозирования погоды, что не требует полных обновлений. Тем не менее, для таких приложений, как финансовая торговля или мониторинг датчиков IoT, которые могут потребовать прогнозирования в режиме реального времени, механизм обработки в PlupuxDB 3 Core/Enterprise является идеальным.

Завершая

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

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

Не стесняйтесь присоединиться к нашему обсуждению сообщества с вашими вопросами и пониманием.

InfluxData является создателем PlupuxDB, ведущей платформы временных рядов, используемой для сбора, хранения и анализа данных всех временных рядов в любом масштабе. Разработчики могут запрашивать и анализировать свои данные, отмеченные временем в режиме реального времени, чтобы открыть, интерпретировать и обмениваться новыми идеями, чтобы получить конкурентное преимущество. Узнайте больше новейших из InfluxData Trending Stories YouTube.com/ThenewStack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Suyash Joshi — старший инженер -программист и адвокат разработчиков в InfluxData. Его карьера охватывает ведущие ключевые проекты в Oracle и RingCentral в прошлом. Держа как BS в информатике, так и MA в игровом дизайне, он смешивает … Подробнее от Suyash Joshi

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *