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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 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
分享
相关文章
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
阿里万相重磅开源,人工智能平台PAI一键部署教程来啦
阿里云视频生成大模型万相2.1(Wan)重磅开源!Wan2.1 在处理复杂运动、还原真实物理规律、提升影视质感以及优化指令遵循方面具有显著的优势,轻松实现高质量的视频生成。同时,万相还支持业内领先的中英文文字特效生成,满足广告、短视频等领域的创意需求。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署阿里万相重磅开源的4个模型,可获得您的专属阿里万相服务。
阿里云入选Gartner数据科学和机器学习平台挑战者象限
Gartner® 正式发布了《数据科学与机器学习平台魔力象限》报告(Magic Quadrant™ for Data Science and Machine Learning Platforms),阿里云成为唯一一家入选该报告的中国厂商,被评为“挑战者”(Challengers)。
|
4月前
PAI-Rec推荐平台对于实时特征有三个层次
PAI-Rec推荐平台针对实时特征有三个处理层次:1) 离线模拟反推历史请求时刻的实时特征;2) FeatureStore记录增量更新的实时特征,模型特征导出样本准确性达99%;3) 通过callback回调接口记录请求时刻的特征。各层次确保了实时特征的准确性和时效性。
102 0
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
448 22
AutoTrain:Hugging Face 开源的无代码模型训练平台
AutoTrain 是 Hugging Face 推出的开源无代码模型训练平台,旨在简化最先进模型的训练过程。用户无需编写代码,只需上传数据即可创建、微调和部署自己的 AI 模型。AutoTrain 支持多种机器学习任务,并提供自动化最佳实践,包括超参数调整、模型验证和分布式训练。
696 4
AutoTrain:Hugging Face 开源的无代码模型训练平台
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。

热门文章

最新文章

相关产品

  • 人工智能平台 PAI
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等

    登录插画

    登录以查看您的控制台资源

    管理云资源
    状态一览
    快捷访问