Я обучил модель XGboost историческим данным за 2015–2024 годы. Я добавил некоторые функции, такие как данные о погоде, потреблении электроэнергии, выработке электроэнергии из различных источников, таких как ядерная энергия, и других возобновляемых источников. Я поставил целевую цену на электроэнергию. все данные представлены в почасовом формате. Я успешно обучил модель, но теперь у меня возникли проблемы с прогнозированием почасовой цены на электроэнергию на следующий день.
Я не знаю, как использовать обученную модель для прогнозирования цены с помощью набор данных, содержащий данные до 7 декабря 2024 года. Например: как бы я спрогнозировал почасовую цену на 15 января 2025 года после обучения модели до 7 декабря 2024 года?
прямо сейчас код прогнозирования просто принимает последнее значение всех функций и помещает одно и то же значение во все строки, которые он пытается спрогнозировать и запустить модель.
До сих пор я использовал Данные за последние 24 часа (последние 24 строки всех функций) я получил из своего набора данных и использовал модель для прогнозирования цены, но она даже близко не соответствует реальной цене.
# Now add the prediction code
from datetime import datetime, timedelta
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Get the last known data
last_known_data = X_test.copy()
# print(last_known_data.columns)
# Set target date for tomorrow
target_date = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(days=1)
# Create DataFrame with 24 hours
prediction_hours = pd.date_range(target_date, target_date + timedelta(hours=23), freq='H')
future_df = pd.DataFrame(index=prediction_hours)
future_df['Start_date'] = future_df.index
# Convert datetime to unix timestamp (as used in training)
future_df['Start_date'] = future_df['Start_date'].astype(np.int64) // 10**9
# Get the last known values for all features
last_values = last_known_data.iloc[-1].copy()
# Create feature matrix for prediction
for col in X_train.columns:
if col in ['Start_date', 'End_date_x', 'End_date_y', 'End_date', 'dt_iso']:
future_df[col] = future_df['Start_date']
else:
future_df[col] = last_values[col]
# Add time-based features
future_df['hour'] = future_df.index.hour
future_df['day_of_week'] = future_df.index.dayofweek
future_df['month'] = future_df.index.month
# Handle price lag features using last known prices
last_known_prices = merged_data['Germany/Luxembourg [€/MWh]'].iloc[-72:]
future_df['price_lag_24'] = last_known_prices.iloc[-24:].values
future_df['price_lag_48'] = last_known_prices.iloc[-48:-24].values
future_df['price_lag_72'] = last_known_prices.iloc[-72:-48].values
# Calculate rolling temperature features
for window in [24, 48, 72]:
future_df[f'temp_roll_{window}'] = future_df['temp'].rolling(window=window, min_periods=1).mean()
# Ensure columns match training data
prediction_features = future_df[X_train.columns]
# Make predictions
predictions = xgb_model.predict(prediction_features)
# Create results DataFrame
results_df = pd.DataFrame({
'Datetime': prediction_hours,
'Hour': prediction_hours.hour,
'Predicted_Price_EUR_MWh': np.round(predictions, 2)
})
# Print predictions
print("\nPredicted Prices for Next 24 Hours:")
print(results_df.to_string(index=False))
Подробнее здесь: https://stackoverflow.com/questions/793 ... el-using-h
Прогнозируйте почасовые цены на электроэнергию на сутки вперед после обучения модели с использованием исторических данны ⇐ Python
Программы на Python
1736934648
Anonymous
Я обучил модель XGboost историческим данным за 2015–2024 годы. Я добавил некоторые функции, такие как данные о погоде, потреблении электроэнергии, выработке электроэнергии из различных источников, таких как ядерная энергия, и других возобновляемых источников. Я поставил целевую цену на электроэнергию. все данные представлены в почасовом формате. Я успешно обучил модель, но теперь у меня возникли проблемы с прогнозированием почасовой цены на электроэнергию на следующий день.
Я не знаю, как использовать обученную модель для прогнозирования цены с помощью набор данных, содержащий данные до 7 декабря 2024 года. Например: как бы я спрогнозировал почасовую цену на 15 января 2025 года после обучения модели до 7 декабря 2024 года?
прямо сейчас код прогнозирования просто принимает последнее значение всех функций и помещает одно и то же значение во все строки, которые он пытается спрогнозировать и запустить модель.
До сих пор я использовал Данные за последние 24 часа (последние 24 строки всех функций) я получил из своего набора данных и использовал модель для прогнозирования цены, но она даже близко не соответствует реальной цене.
# Now add the prediction code
from datetime import datetime, timedelta
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Get the last known data
last_known_data = X_test.copy()
# print(last_known_data.columns)
# Set target date for tomorrow
target_date = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(days=1)
# Create DataFrame with 24 hours
prediction_hours = pd.date_range(target_date, target_date + timedelta(hours=23), freq='H')
future_df = pd.DataFrame(index=prediction_hours)
future_df['Start_date'] = future_df.index
# Convert datetime to unix timestamp (as used in training)
future_df['Start_date'] = future_df['Start_date'].astype(np.int64) // 10**9
# Get the last known values for all features
last_values = last_known_data.iloc[-1].copy()
# Create feature matrix for prediction
for col in X_train.columns:
if col in ['Start_date', 'End_date_x', 'End_date_y', 'End_date', 'dt_iso']:
future_df[col] = future_df['Start_date']
else:
future_df[col] = last_values[col]
# Add time-based features
future_df['hour'] = future_df.index.hour
future_df['day_of_week'] = future_df.index.dayofweek
future_df['month'] = future_df.index.month
# Handle price lag features using last known prices
last_known_prices = merged_data['Germany/Luxembourg [€/MWh]'].iloc[-72:]
future_df['price_lag_24'] = last_known_prices.iloc[-24:].values
future_df['price_lag_48'] = last_known_prices.iloc[-48:-24].values
future_df['price_lag_72'] = last_known_prices.iloc[-72:-48].values
# Calculate rolling temperature features
for window in [24, 48, 72]:
future_df[f'temp_roll_{window}'] = future_df['temp'].rolling(window=window, min_periods=1).mean()
# Ensure columns match training data
prediction_features = future_df[X_train.columns]
# Make predictions
predictions = xgb_model.predict(prediction_features)
# Create results DataFrame
results_df = pd.DataFrame({
'Datetime': prediction_hours,
'Hour': prediction_hours.hour,
'Predicted_Price_EUR_MWh': np.round(predictions, 2)
})
# Print predictions
print("\nPredicted Prices for Next 24 Hours:")
print(results_df.to_string(index=False))
Подробнее здесь: [url]https://stackoverflow.com/questions/79357740/predict-day-ahead-hourly-electricity-prices-after-having-trained-a-model-using-h[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия