You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

25台服务器周度数据8周预测代码修改求助

Got it, let's tackle this problem step by step. Here's how you can modify your code to predict the next 8 weeks for all 25 servers instead of just one week:

1. Adjust the Prediction Loop to Generate 8 Weeks of Forecasts

Your current code only runs a single prediction step. To get 8 weeks of forecasts, you'll need to either:

  • Use a recursive approach (for models like ARIMA, LSTM that do single-step predictions): Generate one week's forecast, append it to your historical data, then use this updated dataset to predict the next week, repeating 8 times.
  • Switch to multi-step prediction (for models like Prophet, Temporal Fusion Transformers that support direct multi-period forecasts): Configure your model to output 8 future periods in one go (more efficient if your model supports it).
2. Restructure the Output to Capture All 8 Weeks per Server

Instead of storing just a single value per server, you'll need a structure that holds an array/list of 8 predictions. A dictionary (server ID as key, 8-week forecast list as value) or a pandas DataFrame (rows = servers, columns = week 1 to week 8) works best for this.

3. Example Code Modification

Let's assume your original code looks something like this (simplified):

# Original single-week prediction code
def predict_next_week(server_historical_data):
    # Your existing model training/prediction logic here
    next_week_pred = model.predict(server_historical_data[-n_steps:])
    return next_week_pred[0]

# Run for all servers
single_week_results = {}
for server_id, data in server_dataset.items():
    single_week_results[server_id] = predict_next_week(data)

Here's the modified version to predict 8 weeks:

import pandas as pd

def predict_next_8_weeks(server_historical_data):
    predictions = []
    current_data = server_historical_data.copy()
    n_steps = 4  # Adjust based on your model's input window size

    # Recursive prediction loop for 8 weeks
    for _ in range(8):
        # Generate next week's forecast using current data
        next_pred = model.predict(current_data[-n_steps:])[0]
        predictions.append(next_pred)

        # Append the prediction to current data for the next iteration
        # Update the date index to match the next week
        last_week_date = current_data.index[-1]
        next_week_date = last_week_date + pd.Timedelta(weeks=1)
        current_data = pd.concat([current_data, pd.Series([next_pred], index=[next_week_date])])
    
    return predictions

# Run 8-week forecast for all servers, filtering to each server's valid date range
eight_week_forecasts = {}
for server_id, full_data in server_dataset.items():
    # Filter to the server's valid period: 2016-11-11 week to 2018-01 last week
    valid_data = full_data.loc['2016-11-11':'2018-01']
    eight_week_forecasts[server_id] = predict_next_8_weeks(valid_data)

# Optional: Convert to a readable DataFrame
forecast_df = pd.DataFrame(eight_week_forecasts).T
forecast_df.columns = [f'Week {i+1} Forecast' for i in range(8)]
print(forecast_df)
4. Key Things to Verify
  • Model Compatibility: If your model supports direct multi-step forecasts (e.g., Facebook Prophet's predict(future_df) where future_df has 8 rows), replace the recursive loop with that for better performance.
  • Data Integrity: Double-check that each server's data is filtered to its valid time range (2016-11-11 to 2018-01) before feeding it into the prediction function.
  • Date Indexing: Make sure the appended predictions have correct weekly date stamps so your final output is easy to interpret.
  • Validation: Test with a small subset of servers first—use historical data to predict a past 8-week window and compare against actual values to confirm your modified logic works.

内容的提问来源于stack exchange,提问作者Manish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:59:51