线性回归模型短期电力负荷预测python代码
时间: 2023-07-31 07:11:30 浏览: 202
下面是一个简单的线性回归模型用于短期电力负荷预测的 Python 代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
# 读取数据
data = pd.read_csv('load_data.csv')
# 特征工程
data['hour'] = pd.to_datetime(data['time']).dt.hour
data['weekday'] = pd.to_datetime(data['time']).dt.weekday
data['month'] = pd.to_datetime(data['time']).dt.month
data['day'] = pd.to_datetime(data['time']).dt.day
data['year'] = pd.to_datetime(data['time']).dt.year
data['lag1'] = data['load'].shift(1)
data['lag2'] = data['load'].shift(2)
data['lag3'] = data['load'].shift(3)
# 去掉缺失值
data.dropna(inplace=True)
# 划分训练集和测试集
train_data = data[data['year'] < 2019]
test_data = data[data['year'] == 2019]
# 选择特征和目标变量
x_train = train_data[['hour', 'weekday', 'month', 'day', 'lag1', 'lag2', 'lag3']]
y_train = train_data['load']
x_test = test_data[['hour', 'weekday', 'month', 'day', 'lag1', 'lag2', 'lag3']]
y_test = test_data['load']
# 训练模型
model = LinearRegression()
model.fit(x_train, y_train)
# 预测
y_pred = model.predict(x_test)
# 评估模型
from sklearn.metrics import mean_squared_error, r2_score
print("MSE:", mean_squared_error(y_test, y_pred))
print("R2 score:", r2_score(y_test, y_pred))
```
这段代码做了以下几件事情:
1. 读取电力负荷数据文件 `load_data.csv`。
2. 对时间戳进行特征工程,提取出小时、星期几、月份、日期和年份等特征,并添加滞后项作为特征。
3. 去掉缺失值。
4. 划分训练集和测试集。
5. 选择特征和目标变量。
6. 训练线性回归模型。
7. 进行预测。
8. 评估模型的性能,使用 MSE 和 R2 score 作为评估指标。
阅读全文