这是本人第一次尝试Datawhale的夏令营学习,学习任务是参加科大讯飞举办的机器学习赛事——电力需求预测挑战赛。
首先简单的分析一下赛题,给定多个房屋对应电力消耗历史N天的相关序列数据等信息,预测房屋对应电力的消耗。很明显,因为输入数据是历史N天,所以这是一道时间序列分析题。学习手册中也给出了对时间序列分析的处理思路:ARIMA、机器学习模型(回归分析、集成学习等)、深度学习(LSTM等)。
接下来,让我们解读下baseline吧:
# 1. 导入需要用到的相关库
# 导入 pandas 库,用于数据处理和分析
import pandas as pd
# 导入 numpy 库,用于科学计算和多维数组操作
import numpy as np
# 2. 读取训练集和测试集
# 使用 read_csv() 函数从文件中读取训练集数据,文件名为 'train.csv'
train = pd.read_csv('./data/data283931/train.csv')
# 使用 read_csv() 函数从文件中读取测试集数据,文件名为 'train.csv'
test = pd.read_csv('./data/data283931/test.csv')
# 3. 计算训练数据最近11-20单位时间内对应id的目标均值
target_mean = train[train['dt']<=20].groupby(['id'])['target'].mean().reset_index()
# 4. 将target_mean作为测试集结果进行合并
test = test.merge(target_mean, on=['id'], how='left')
# 5. 保存结果文件到本地
test[['id','dt','target']].to_csv('submit.csv', index=None)
可以看到,这个baseline其实很简单。严格来讲,baseline并没有使用机器学习模型来预测,而是使用了均值填充的方法做预测。从训练集中选取时间小于等于20的数据,按照房屋ID分组,计算每组的 电力消耗目标值(target)的均值。这种方法的预测分数(评审标准是MSE)是373.89。
使用简单的均值填充做预测,在我看来可能太过简单粗暴了,不能很好的捕捉数据的动态变化规律。因此,后续我将继续跟着学习,尝试使用机器学习模型进行解决。