# predict-electric-load **Repository Path**: muyun12/predict-electric-load ## Basic Information - **Project Name**: predict-electric-load - **Description**: 电力负载预测练习项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电力负荷预测系统 这个项目实现了一个基于XGBoost的电力负荷预测系统,能够根据历史数据预测未来的电力负荷。 ## 项目特点 - 使用XGBoost机器学习算法进行负荷预测 - 提取多种时间特征(年、月、日、小时、星期等) - 创建滞后特征和滚动统计特征 - 可视化预测结果和特征重要性 - 包含示例数据生成器 ## 算法原理 1. **特征工程**: - 时间特征:从日期时间中提取年、月、日、小时、星期等特征 - 滞后特征:使用过去1小时、2小时、3小时、24小时、168小时(一周)的负荷数据 - 滚动特征:计算负荷在不同时间窗口内的均值和标准差 2. **模型训练**: - 使用XGBoost回归器进行训练 - 采用早停策略防止过拟合 - 使用测试集评估模型性能 3. **预测过程**: - 基于训练好的模型预测未来时刻的负荷 - 递归预测:使用之前预测的结果作为输入进行下一步预测 ## 安装依赖 ```bash pip install pandas numpy xgboost scikit-learn matplotlib ``` ## 使用方法 直接运行主程序: ```bash python electric_load_forecast.py ``` 这将执行以下操作: 1. 生成示例电力负荷数据 2. 训练XGBoost模型 3. 在测试集上评估模型性能 4. 显示预测结果与实际值的对比图 5. 显示特征重要性 6. 预测未来24小时的电力负荷 ## 代码结构 - `ElectricLoadForecaster`:核心预测器类 - `create_time_features()`:创建时间特征 - `create_lag_features()`:创建滞后特征 - `create_rolling_features()`:创建滚动统计特征 - `prepare_features()`:准备所有特征 - `train()`:训练模型 - `predict()`:预测未来负荷 - `plot_feature_importance()`:绘制特征重要性 - `generate_sample_data()`:生成示例数据 ## 示例结果 程序运行后会显示: 1. 模型评估指标(MSE、MAE、RMSE) 2. 预测值与实际值的对比图 3. 特征重要性图表 4. 未来24小时负荷预测结果 ## 自定义使用 要使用您自己的数据进行预测,可以按照以下步骤操作: ```python import pandas as pd from electric_load_forecast import ElectricLoadForecaster # 加载您的数据 # 数据应包含'datetime'和'load'两列 # data = pd.read_csv('your_data.csv') # 创建预测器实例 forecaster = ElectricLoadForecaster() # 训练模型 results = forecaster.train(data) # 预测未来24小时负荷 future_predictions = forecaster.predict(data, steps=24) ```