从零入门机器学习竞赛 是 Datawhale 2024 年 AI 夏令营第二期的学习活动(“机器学习”方向),基于讯飞开放平台“电力需求预测挑战赛”开展的实践学习。
让我们来看看这个赛题的目标是什么?
【训练时序预测模型助力电力需求预测】
给定多个房屋对应电力消耗历史N天的相关序列数据等信息,预测房屋对应电力的消耗。
赛题数据简介
赛题数据由训练集和测试集组成,为了保证比赛的公平性,将每日日期进行脱敏,用1-N进行标识。
即1为数据集最近一天,其中1-10为测试集数据。
数据集由字段id(房屋id)、 dt(日标识)、type(房屋类型)、target(实际电力消耗)组成。
Task 1的主要任务:跑通baseline
对于像我这样的初学者,我们通常对机器学习感到很困惑。机器学习就是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。
Baseline是一份简易的入门教程,可以帮助同学们迈出 AI 训练大师之路的第一步。
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)
代码分析
1. 导入库
import pandas as pd
import numpy as np
- Pandas:用于数据处理和分析,提供强大的数据结构。
- Numpy:用于科学计算,支持多维数组操作。
2. 读取数据
train = pd.read_csv('./data/data283931/train.csv')
test = pd.read_csv('./data/data283931/test.csv')
读取训练集和测试集数据,文件路径为 ./data/data283931/
,文件名分别为 train.csv
和 test.csv
。
3. 计算目标均值
target_mean = train[train['dt']<=20].groupby(['id'])['target'].mean().reset_index()
- 从训练集中筛选
dt
小于等于 20 的数据。 - 按照
id
分组,计算target
的均值,并重置索引。结果存储在target_mean
中。
4. 合并数据
test = test.merge(target_mean, on=['id'], how='left')
将计算出的 target_mean
根据 id
合并到测试集中,采用左连接(how='left'
),确保所有测试数据保留。
5.保存结果
test[['id','dt','target']].to_csv('submit.csv', index=None)
从测试集中选择 id
、dt
和 target
列,并保存为 submit.csv
,不保存索引。
总结
这段代码的整体流程是读取数据、计算特定条件下的均值、合并结果,并将最终结果保存到文件中。整体逻辑清晰,适合用于基础的数据分析与处理任务。
上传结果
比赛网址:
2024 iFLYTEK AI开发者大赛-讯飞开放平台
最后得分:
个人收获
经过Task 1的学习,还是有点懵。┭┮﹏┭┮