华为softcomm人工智能比赛记录

参赛简介

参赛形式

  • 治理分析
  • 编写算法代码训练后
  • 提交模型结果

参与在线排名,取前6名进入决赛

决赛路演要求:
  • 介绍PPT+算法模型代码+模型训练演示(知识产权归开发者所有)

介绍PPT要求:

  • 开发团队及单位介绍,成员介绍(必选)
  • 算法建模、特征工程解题思路介绍(必选)
  • 使用了华为的哪些云服务API等资产(必选)

时间安排

8月15号决赛!

8月27号 松山湖路演

9月18号颁奖

赛题背景

经统计,某云数据中心十年运营成本中能源消耗占OPEX超 60%,在所有能耗中,数据中心的制冷系统能耗约占20%,为降低这部分能耗,需要借助AI实现控制策略优化降低制冷系统的能耗,在不影响业务的前提下,实现制冷能耗最低。

目标:

在不影响业务的前提下,实现制冷能耗最低

赛题

冷站系统由冷塔、冷却泵、板换、冷冻泵等设备组成,每个设备都有不同的控制参数,环境变量(IT负载、室外温湿度)的变化,以及各个设备的控制参数改变,都会影响整个冷站的功率。冷站节能的前提是先对数据中心冷站功率进行拟合 – 在制冷场景下,结合SoftCOM AI仿真服务,找到环境变量、冷站系统控制变量和冷站功率之间的关系。

输入数据环境变量:IT负载能耗、室外温度、湿度 控制变量:冷塔出水逼近度、冷塔数量、冷却泵数量、板换数量、冷冻泵数量、 板换冷冻水出水温度、冷冻总管压差
拟合结果给定环境变量和控制变量的冷站功率
比赛结果文件说明

参赛选手需要预测给定控制变量下发后的冷站功率,保持和训练数据一致,主办方会提供1个Sample_submit.csv(点击下载)文件(间隔为5分钟的冷站功率在一些时间戳上没有数值,请保持为空)。参赛选手提交的结果文件第1行(冷站功率)和第1列(时间戳)必须和Sample_submit.csv保持一致。

评价标准

制冷能耗的拟合准确度平均绝对百分比误差公式

在这里插入图片描述

评选维度

  • 维度1:排行榜成绩,代码模型可复现排行榜成绩;
  • 维度2:代码质量,文件结构、可理解性、易用性;
  • 维度3:解题思路,创新性、详细度、问题独有的领域知识
奖励标准

[外链图片转存失败(img-ruTwWgh0-1566272873698)(softComm比赛.assets/1564797331032.png)]

模型迭代路径

在这里插入图片描述

提交作业

6.1 生成提交文件

6.1.1 参赛选手需要预测给定控制变量下发后的冷站功率,保持和训练数据一致,主办方会提供1个Sample_submit.csv(见参赛页面)文件(间隔为5分钟的冷站功率在一些时间戳上没有数值,请保持为空)。参赛选手提交的结果文件第1行(冷站功率)和第1列(时间戳)必须和Sample_submit.csv保持一致。

6.1.2 submit.csv文件打包在应用包中。请在模型训练模块中将训练文件进行打包,在模型管理中将模型包编排成应用包并下载,将应用包解压缩得到submit.csv文件。

6.2 提交答案

6.2.1 进入比赛结束页面,点击“琅琊榜”,进入琅琊榜页面

6.2.2 点击“上传比赛结果文件”,上传6.1保存的csv文件

私享会分享

背景

数据中心的能耗占到成本的60%,3年的能耗就可以建立一个新数据中心

PUE

PUE能耗效率指标,PUE越低,效率越高

传统技术缺陷
  • 操作参与环境之间的复杂的非线性关系

  • 动态特质

  • 每个数据中心都是独特的

    So 专家不能起到作用

节能第一步

输入数据:

环境变量:

IT负载,温度,湿度

控制变量:

出水逼近度,树立,冷却塔,压差

输出:拟合未来5分钟的制冷能耗

真实的使用场景的步骤
  1. 采集数据
  2. 入湖
  3. 清理数据
  4. 模型预测
  5. 策略传入
  6. 传出策略
  7. 下发控制策略
与其他模型共同使用

参数组合遍历 -> 业务规则保障 -> 智能能耗预测(本次题目) -> 最有选择

  • 智能能耗预测会有很多输入
  • 在满足业务规则的情况下,使用最低能耗的参数下发

DC 仿真系统

数据限制

每个队伍最多200条数据

功能

下发各种数据,获取你想要的数据

如何使用

因为复赛的测试集合和训练的测试集合差别很大,所以200条的分布要像测试集合一样广,用来调整模型使用!

AI算法专家

赛题分析

  • 少量的领域数据,利用有限的数据
  • 如果测试集合为已知数据,则建立模型无繁华能力,也能取得良好的效果
  • 测试数据中有大量的未知数据,需要较强的泛化能力
  • 通过比赛,建立泛化能力强的冷却水模型

比赛数据

  • 17400条训练数据
    • 中间变量有100维度
    • 在DC里面,点一下仪表会有中间变量的含义
    • 11个维度里面 4个维度是没有用的,可以删掉
  • 仿真系统只有6个维度
  • 初赛测试集合:2000
  • 复赛测试集合:4070

分布

从分布图来看,初赛数据和训练数据是相当的,数据分布类似,但是复赛数据和训练数据分布差异是很大的

测试数据是独立同分布数据

是指一组随机变量中每个变量的概率分布都相同,且这些随机变量互相独立

如何训练,提交

训练代码:

[外链图片转存失败(img-AZImj6iJ-1566272873701)(softComm比赛.assets/1564886962429.png)]

[外链图片转存失败(img-Z0KDOSym-1566272873702)(softComm比赛.assets/1564904545172.png)]

[外链图片转存失败(img-4nTIUM9l-1566272873704)(softComm比赛.assets/1564904798374.png)]

提供了超参数优化

[外链图片转存失败(img-Cn0A92hG-1566272873705)(softComm比赛.assets/1564887077093.png)]

如何提交

sample_submit_semi_final也需要本地上传,上传到数据集合里面去

在代码里面写出save_result()

训练打包,然后下载,训练结果也在里面

仿真数据需要上传
pca降维度

[外链图片转存失败(img-pb9wE4tp-1566272873707)(softComm比赛.assets/1564904942702.png)]

数据分析

Columns解释

变量名解释单位变量类型特殊值
CHWPNumSet冷塔数量常量
CTNumSet冷却泵数量常量
CWPNumSet板换数量常量
HENumSet冷冻泵数量常量
Time发生时间时间无意义
CTSTempSet冷塔出水逼近度控制变量
HECHWSTempSet板换冷冻水出水温度控制变量13
CHWSRPressDiffset冷冻总管压差千怕控制变量
OutsideDBTemp室外温度环境变量-10
OutsideRHumidity室外湿度百分之环境变量
ITEnergyIT负载能耗千瓦环境变量(5900, 6100)
(2700, 2800]
(3000, 3100]
(3300, 3400]
(3600, 3700]
(3900, 4000]
(4200, 4300]
(4500, 4600]
(4800, 4900]
(8100, 8200]
CoolingPower冷站功率千瓦目标量
  • ITEnergy很异常的值
4300.0    197
3700.0    197
4000.0    197
6700.0    115
7900.0    115
7600.0    115
7300.0    115
7000.0    115
8200.0    115
2500.0     99
4600.0     99
3400.0     99
2800.0     99
3100.0     99
4900.0     98
5500.0     98
5200.0     98

时间与energy有关系,但是这个无法使用,因为train_data里面没有

需要进一步探索

  • CHWSRPressDiffset train set少一个分类

train_set

145.0    15488
147.0     2169
120.0      196
110.0       47

test_set

145.0    2055
147.0     602
110.0     504
115.0     463
120.0     446
  • OutsideDBTemp 异常值

    • train set 0度考虑为异常值
    0.00    390
    8.50     79
    7.30     79
    4.80     71
    3.75     71
    4.70     68
    
    • test_set 0.5间隔的,考虑为异常值
     6.50     132
     5.50     130
     4.50     129
     5.00     129
     15.00    128
     4.00     125
     6.00     124
    -9.50     123
    -8.50     123
    -8.00     123
    -7.50     123
    -10.50    123
    -10.00    123
    -9.00     123
     16.00    116
     15.50    104
     16.50     79
     0.00      32
     17.50     25
     18.00     22
     8.65      16
     10.15     15
     17.00     13
     9.35      13
    
  • train_set没有这些异常数据,要看一下为啥

测试数据有很多异常的数据,这个数据要注意

OutsideDBTemp, OutsideRHumidity, ITEnergy

存在构造数据,并且train data里面没有这个构造数据

猜测的feature之间的关系

  • 蓄水池功率: 固定的

  • 冷却塔功率:蓄水池温度与出水口温度差,水压压强

    • 蓄水池温度:室外温度,室外湿度,IT负载能耗
  • 冷却水泵功率:水压,出水温度

  • 扳机换热板功率:出水温度,入水回水温度,水压

    • 回水温度:室外温度,出水温度,压强,IT负载能耗

可选添加feature:

  • 蓄水池功率
  • 冷却塔功率
  • 冷却水泵功率
  • 扳机换热板功率
  • 蓄水池温度
  • 回水温度

特殊值

  • HECHWSTempSet = 13
  • OutsideDBTemp = -10
  • ITEnergy

feature 之间的关系

HECHWSTempSet
CTSTempSet

[外链图片转存失败(img-0irOdlx6-1566272873709)(softComm比赛.assets/image-20190805231210486.png)]

  • 线性系数关系

  • 加上两者的差

HECHWSTempSet
CHWSRPressDiffset

[外链图片转存失败(img-7yyjemyK-1566272873710)(softComm比赛.assets/image-20190805231439191.png)]

分类关系

  • 把压强差分为几类
HECHWSTempSet
OutsideDBTemp
HECHWSTempSet
OutsideRHumidity

[外链图片转存失败(img-4CoeSkeK-1566272873711)(softComm比赛.assets/image-20190805231645878.png)]

[外链图片转存失败(img-e6RsvodP-1566272873713)(softComm比赛.assets/image-20190805232105636.png)]

  • HECHWSTempSet = 12,13,14,15,16 为特殊值
CTSTempSet
OutsideDBTemp
CTSTempSet
OutsideRHumidity

[外链图片转存失败(img-J3RUsP2Z-1566272873715)(softComm比赛.assets/image-20190805232720827.png)]

[外链图片转存失败(img-GfqJQJtq-1566272873716)(softComm比赛.assets/image-20190805232731312.png)]

  • CTSTempSet = 10, 11, 11.5, 12, 12.5, 13, 13.5 为特殊值
OutsideDBTemp
ITEnergy

[外链图片转存失败(img-lmMkDNSY-1566272873718)(softComm比赛.assets/image-20190805233041090.png)]

OutsideDBTemp = -10, 5, 15 区间左右为特殊值

todo 可以考虑分簇

OutsideRHumidity
ITEnergy

[外链图片转存失败(img-mm7tDxeH-1566272873720)(softComm比赛.assets/image-20190805233255683.png)]

  • OutsideRHumidity有几个区间为特殊值
与目标点的关系

在这里插入图片描述

在这里插入图片描述

随机数时间相关!!!!!

在这里插入图片描述
在这里插入图片描述
从6月1号之后到6月8号,都是伪造的数据!!!!!

  • 针对于还原train_data的time,可以用test data数据来预测时间,然后用于train_data上面
  • 制造的噪音不是完全随机的?
  • 其实日期也是伪造的

对数据验证的结果

经过验证,数据不是完全随机的,而且很有可能没有极端数据,数据就是跟train set数据一致,举办方使用了分类器来分类数据,如果我能够使用一样的分类器,然后来逆向推测,那么最后的结果会跟一个优化的模型是一样的

现在有两种方案

第一种,针对异常数据做出模型
  • 3个模型
    • 第一个模型判断是否是正常数据
    • 第二个模型预测正常数据
    • 第三个模型预测异常数据
      • 异常数据如果在本地能够完全模拟出来,那么数据就可以在本地做出预测异常模型
        • 这个异常模型预测模拟出来的数据结构
        • 是和正常模型预测模拟前的正常结果应该是一致的
第二种,做出泛型模型

使用一个泛型模型,这个泛型模型在预测异常出来的K-flod值的时候,表现是一致的。不断优化这个模型,达到结果

  • 这个模型跟题目的要求是一致的

todo list

  • 发现模型准确率太低
[3.30009318184009, 2.9808772472404472, 4.9737118689116775, 4.767373334956744]
  • 预测模型有偏向,针对于随机分布都出现了很大的不同
  • 分类器怎么做
  • 发现模型overfit

[外链图片转存失败(img-gZCMBKQz-1566272873739)(softComm比赛.assets/1565172800220.png)]

看完Metric之后得到的感想

  • 可以弄清楚我的模型用的什么loss
  • 是否有early stop
  • 使用什么Metric来评价
  • MAE评价支持的模型有
    • lightgbm
    • Randforest
    • Vow Pal Wabbit
    • 神经网络

看完meanning coding之后得到的感想

  • 避免over fit
    • 正则化
    • Kflod
  • 提取 feature
    • 根据数值
      • medium
      • percentile
      • std
      • 正太分布级别
  • 数据与数据之间的关系来聚合
    • 如何分类数据
      • 如果一个数据的自述树很多,那么这个点就值得被分类
      • 比如feature 1 和 feature 2的子树很多

最终比赛排名第11名

从6.95分到了2.43分已经是我的极限了。

回顾一下参赛历程,

第一天

阅读文档,理解题目。开始做出第一个版本

第二,三天

学习了数据分析,开始使用数据分析。结果错误的假设数据为随机构造的噪音数据,导致我骗了方向

第三,四天

学些了Kfold,但是因为kfold没有随机,所以导致我分数异常高,也导致我偏了方向

直到8月9号

参加了会议,发现DC数据为真的数据,当天晚上加上33个DC数据,又6.9分提升到了5.0分

8月10号

自己添加更多DC数据之后,并没有及时测试,然后去添加feature去了,晚上再去测试的时候,发现分数只是到了4.95

8月11号

还是在继续添加feature,但是知道了DC数据添加不正确,用了一天时间来添加有用的dc数据,分数从4.95到了3分,在添加一些数据,分数到了2.8分。还去做了降纬度,但是做出来的纬度最后没有使用,我不确定这个降纬度是否和过拟合相关。

8月12号

去添加更多的feature去了,然后对数据做了归一化,归一化之后,和添加了一些数据之后分数到了2.56分。

还去做了groupby,做完之后,发现测试集合很多为空值。

8月13号

当时添加完feature,但是不确定添加完feature之后,模型是不是过拟合,所以存在降纬度,调参数,还有换模型3个选择。最后因为前期编程的混乱,导致我调参数调得很痛苦。所以我就简单的降了纬度,把之前降纬度的方法放弃掉。然后去提交的时候4.43分

8月14号

完成号utils编程之后,就去训练模型了,一个一个的手动训练模型,花时间还花精力,这个时候电脑又比较卡,让我简直崩溃。最后发现分数都不高

8月15号

上午看了下coursera竞赛的视频,给自己找了找灵感,然后下午去写stack代码去了。然后把最后的9个数据加上了之后,从2.51分到了最后的2.43分。然后stack算法得到了3.05分,最后加上gbm的算法没有做出来,最终得分就是2.43分,最后是11名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值