阿里大航杯AI电力大赛比赛分享及数加平台,机器学习pai使用经验

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 本文主要以阿里云大航杯“智造扬中”电力AI大赛 数据为背景,讲述博主自己的比赛经历以及数加平台和机器学习pai的使用经验

1. 背景

    本文以阿里大航杯AI电力大赛为背景,讲述数加平台及机器学习pai的使用。大赛聚焦电力市场营销活动业务难点——企业用电需求预测,开放了扬中市高新区1000多家企业的历史用电量数据,要求参赛者通过模型算法精准预测该地区下一个月的每日总用电量。
AI 代码解读

2. 数据介绍
本次竞赛主要数据源为企业用电量表Tianchi_power2,阿里云抽取了扬中市高新区的1000多家企业的用电量(数据进行了脱敏),包括企业ID(匿名化处理),日期和用电量。具体字段如下表:
screenshot
考虑到天气对企业用电量的影响,同时也提供了天气数据。具体字段如下:
screenshot

其中dt 字段表示日期,temperature_bigh字段表示当天最好温度,temperature_low字段表示当天最低温度,weather字段表示天气情况,wind_direction字段表示风向,wind_direction字段表示风级。
通过对数据观察发现节假日对用的量的影响非常大,于是加入了节假日特征及季节特征。
第一季数据下载:竞赛数据

3 解决方案概述
本赛题提供了企业用户每天的用电量,记录的时间区间是2015.01.01至2016.11.30,需要预测的是2016年12月份企业用户每天的用电总量。通过分析用户的用的量,我们发现174,175,1416三家企业每天的用电量比较高,三家用电总和约为总电量的1/2,其中1416一家用电约占总用电量1/4,我们首先根据用户id,将以上三家划分出来,然后提取了用户相关的特征、天气相关的特征,节假日相关的特征。针对全部企业用电及划分的企业用电,最后训练了XGBoost(最后未使用),4个GBDT(每份)进行模型融合。

3.1特征工程
比赛过程中使用的特征:
企业用电量特征:
Record_date,power_consumption,year,month,day,dow,mean_1,d_max_1,d_min_1,d_median_1,mean_2,d_max_2,d_min_2,d_median_2,mean_avg,mean_dist,d_max_avg,d_max_dist,d_min_avg,d_min_dist,d_median_avg,d_median_dist,row_n
天气特征(仅使用了温度特征):
tem_h,tem_l,tem_avg,tem_dist
节假日季节特征:
season,holiday
特征提取使用的是ide,提取步骤如下:
1.在左边首先选择任务开发-->自己建立的文件夹(有多位队员可以创建自己的文件夹,方便使用)-->右击新建任务(这里使用的ODPS_SQL,因为sql最容易上手)-->键入脚本名称即可。
screenshot
2.在编辑框中,编辑自己的sql语句(建表时注意不要与队友所建表名称一致,否则将无法更新表中字段,这里系统是不提示表名是否重复的),然后运行即可。
screenshot
特征提取的全部sql语句(sql):特征提取

Tips:
在使用ide过程中,可以在函数管理选项中,查看可以使用的函数及使用方法
screenshot
可以在表查询选项中可以查看已经创建的表(自动同步在机器学习pai平台创建的表):
screenshot
3.2模型的设计及融合
通过分析174,175,1416企业,对174号企业短时间用电较为稳定,博主直接使用了上个月均值作为预测值(短期mae为4k左右);对175号企业训练4个gbdt模型,然后使用胜者通吃策略融合模型(mae为10k左右);1416号企业用电较为异常很难使用模型准确预测,同时对总的用电影响较大,为减少误差,使用15年12月数据加上66000(16年11月均值与15年12均值差值的1/2);对剩余企业使用4个gbdt模型预测,对预测值求和最为最终预测值。然后对整体全部企业的用电总和使用4个gbdt模型预测。最后,对两组预测值使用0.65,0.35的权值融合。
模型的设计主要在机器学习pai上完成,建立步骤如下:

Gbdt模型的训练及数据预测

  • 实验的创建:
    在首页中可以选择从已有实验的模板创建也可新建空白实验,本实验选择新建空白实验:

screenshot
上传节假日数据:
screenshot
然后添加字段:
screenshot
按照下图方式,读取数据表:
screenshot
使用与读取数据表同样的方式,拖拉所需控件。本实验中训练所用结构图如下:
screenshot
其中sql脚本是为了剔除过年一段时间的数据,语句如下:
select
record_date,

power_consumption,
year,
month,
day,
dow,
mean_1,
d_max_1,
d_min_1,
d_median_1,
mean_2,
d_max_2,
d_min_2,
d_median_2,
mean_avg,
mean_dist,
d_max_avg,
d_max_dist,
d_min_avg,
d_min_dist,
d_median_avg,
d_median_dist,
tem_h,
tem_l,
tem_avg,
tem_dist,
row_n,
holiday,
season
AI 代码解读

from ${t1} where record_date<='2016-01-30'or record_date>='2016-02-19'

gbdt的训练参数(4个模型仅在树的数量,学习率,最大叶子树,树深进行了微调,其它参数一致):
screenshot
screenshot
本实验gbdt预测部分如下:
screenshot
对四个模型的预测结果融合部分sql语句:
select
concat(year,'/',month,'/',day) as predict_date,

(prediction_a+prediction_b+prediction_c+prediction_d)/4 as power_mean,
prediction_a,
prediction_b,
prediction_c,
prediction_d
AI 代码解读

from ${t1} ;

select
predict_date,
(case when abs(prediction_a-power_mean)when abs(prediction_b-power_mean)when abs(prediction_c-power_mean)when abs(prediction_d-power_mean)end) as prediction
from ${t1};

Xgboost 模型的训练及预测
使用pai命令在IDE中实现,参数设置参照gbdt,pai命令如下:

drop table if exists xgb_pred_1;
DROP OFFLINEMODEL IF EXISTS xgboost_1;
AI 代码解读
-- train
PAI
-name xgboost
-project algo_public
-Deta="0.01"
-Dobjective="reg:linear"
-DitemDelimiter=","
-Dseed="0"
-Dnum_round="3500"
-DlabelColName="power_consumption"
-DinputTableName="tianchi_power_sum_min_input_1"
-DenableSparse="false"
-Dmax_depth="8"
-Dsubsample="0.4"
-Dcolsample_bytree="0.6"
-DmodelName="xgboost_1"
-Dgamma="0"
-Dlambda="50" 
-DfeatureColNames="year,month,day,dow,holiday,season,mean_1,d_max_1,d_min_1,d_median_1,mean_2,d_max_2,d_min_2,d_median_2,mean_avg,mean_dist,d_max_avg,d_max_dist,d_min_avg,d_min_dist,d_median_avg,d_median_dist,tem_h,tem_l,tem_avg,tem_dist,row_n"
-Dbase_score="0.11"
-Dmin_child_weight="100"
-DkvDelimiter=":";

-- predict
PAI
-name prediction
-project algo_public
-DdetailColName="prediction_detail"
-DappendColNames="year,day"
-DmodelName="xgboost_1"
-DitemDelimiter=","
-DresultColName="prediction_result"
-Dlifecycle="28"
-DoutputTableName="xgb_pred_1"
-DscoreColName="prediction_score"
-DkvDelimiter=":"
-DfeatureColNames="year,month,day,dow,holiday,season,mean_1,d_max_1,d_min_1,d_median_1,mean_2,d_max_2,d_min_2,d_median_2,mean_avg,mean_dist,d_max_avg,d_max_dist,d_min_avg,d_min_dist,d_median_avg,d_median_dist,tem_h,tem_l,tem_avg,tem_dist,row_n"
-DinputTableName="tianchi_power_sum_min_output_2"
-DenableSparse="false";

select * from xgb_pred_1;
AI 代码解读

同样训练4个xgboost模型,在pai下进行结果融合(Tip:ide下与pai下的数据表是同步的):
screenshot
其中的Sql语句与gbdt融合所用语句一致。

在使用pai的过程中有什么疑问可以查看帮助文档:
screenshot
总结
在pai界面中,IDE下具有与pai同样的功能,并且数据是同步的,但pai下有更好的可视化效果,可根据自己的喜好自行选择。
致谢
作为一名天池新手,第一次参加阿里云的天池竞赛,成功的被比赛给吸引了,在比赛的这一个月的时间里收获颇多,认识了好多大神,还有阿里云的师兄们感谢你们的帮助。本想最后一天放大杀器,没想到大家都提高了那么多,感觉像是参加了假比赛,遇到了假数据(笑哭)。最后贴上我们的成绩。

screenshot

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
打赏
0
2
1
18
9055
分享
相关文章
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
2024云栖大会回顾|PAI ArtLab x 通往AGI之路系列活动,PAI ArtLab助力行业AI创新
2024云栖大会回顾|PAI ArtLab x 通往AGI之路系列活动,PAI ArtLab助力行业AI创新
阿里开源AI视频生成大模型 Wan2.1:14B性能超越Sora、Luma等模型,一键生成复杂运动视频
Wan2.1是阿里云开源的一款AI视频生成大模型,支持文生视频和图生视频任务,具备强大的视觉生成能力,性能超越Sora、Luma等国内外模型。
571 2
阿里开源AI视频生成大模型 Wan2.1:14B性能超越Sora、Luma等模型,一键生成复杂运动视频
ComfyUI-Copilot:阿里把AI助手塞进ComfyUI:一句话生成工作流,自动布线/调参/选模型,小白秒变大神!
ComfyUI-Copilot 是阿里推出的基于 ComfyUI 的 AI 智能助手,支持自然语言交互、智能节点推荐和自动工作流辅助,降低开发门槛并提升效率。
169 6
ComfyUI-Copilot:阿里把AI助手塞进ComfyUI:一句话生成工作流,自动布线/调参/选模型,小白秒变大神!
MATLAB在机器学习模型训练与性能优化中的应用探讨
本文介绍了如何使用MATLAB进行机器学习模型的训练与优化。MATLAB作为强大的科学计算工具,提供了丰富的函数库和工具箱,简化了数据预处理、模型选择、训练及评估的过程。文章详细讲解了从数据准备到模型优化的各个步骤,并通过代码实例展示了SVM等模型的应用。此外,还探讨了超参数调优、特征选择、模型集成等优化方法,以及深度学习与传统机器学习的结合。最后,介绍了模型部署和并行计算技巧,帮助用户高效构建和优化机器学习模型。
36 1
MATLAB在机器学习模型训练与性能优化中的应用探讨
OmniThink:浙大联合阿里通义开源 AI 写作框架,基于深度思考扩展知识边界,实时展示思考过程
OmniThink 是浙江大学与阿里通义实验室联合开发的机器写作框架,通过模拟人类迭代扩展和反思过程,生成高质量长篇文章,显著提升知识密度和内容深度。
200 12
OmniThink:浙大联合阿里通义开源 AI 写作框架,基于深度思考扩展知识边界,实时展示思考过程
|
1天前
PAI-Rec推荐平台对于实时特征有三个层次
PAI-Rec推荐平台针对实时特征有三个处理层次:1) 离线模拟反推历史请求时刻的实时特征;2) FeatureStore记录增量更新的实时特征,模型特征导出样本准确性达99%;3) 通过callback回调接口记录请求时刻的特征。各层次确保了实时特征的准确性和时效性。
AI+树莓派=阿里P8技术专家。模拟面试、学技术真的太香了 | 手把手教学
本课程由阿里P8技术专家分享,介绍如何使用树莓派和阿里云服务构建AI面试助手。通过模拟面试场景,讲解了Java中`==`与`equals`的区别,并演示了从硬件搭建、语音识别、AI Agent配置到代码实现的完整流程。项目利用树莓派作为核心,结合阿里云的实时语音识别、AI Agent和文字转语音服务,实现了一个能够回答面试问题的智能玩偶。课程展示了AI应用的简易构建过程,适合初学者学习和实践。
125 22
阿里CEO吴泳铭-2024互联网大会发言:AI的最大价值是推动生产力变革
11月21日,2024年世界互联网大会“互联网企业家论坛”在乌镇召开。阿里巴巴CEO吴泳铭表示,AI的最大价值在于推动各行各业的生产力变革,而非仅限于开发超级APP。他强调,发展AI需建设繁荣的技术、产品和市场生态。目前,30多万家企业已接入阿里“通义”大模型,应用于代码开发、药物研发等场景。阿里巴巴坚持开源路线,全球开发者基于“通义千问”开发的衍生模型已突破7.8万个。吴泳铭认为,AI的发展需要行业共同努力,建设繁荣生态以实现高质量持续发展。
PAI年度发布:GenAI时代AI基础设施的演进
本文介绍了AI平台在大语言模型时代的新能力和发展趋势。面对推理请求异构化、持续训练需求及安全可信挑战,平台推出了一系列优化措施,包括LLM智能路由、多模态内容生成服务、serverless部署模式等,以提高资源利用效率和降低使用门槛。同时,发布了训推一体调度引擎、竞价任务等功能,助力企业更灵活地进行训练与推理任务管理。此外,PAI开发平台提供了丰富的工具链和最佳实践,支持从数据处理到模型部署的全流程开发,确保企业和开发者能高效、安全地构建AI应用,享受AI带来的红利。

热门文章

最新文章

相关产品

  • 人工智能平台 PAI