2018华为软件精英挑战赛

原创 2018年04月15日 20:33:55

    今天12点,历时一个多月的2018华为软件精英挑战赛训练赛结束了,最后分数215.597(总分300),挺差的,很遗憾,前64都没能进,不过还算尽力坚持到最后。

    3月初,华为软赛开始一周后,看到师兄他们在弄,才临时决定参加的。比较匆忙的找了本科的两个同学。一个研究深度学习的,一个是软件学院的。其实从队伍来看,挺好的,而且还有点小好。但是由于深度学习的哥们忙着发论文,加上老师管得比较严,所以时间比较少,只能从大体上商量一下算法框架等;软院的同学由于他们不用呆在实验室,这段时间刚好面临找实习,所以时间也相对比较少。本来也就抱着试试的心态,不过我自我感觉还算尽力,全程代码基本我实现的,用了不太熟悉的Python,算是对Python更加了解了。

    此次比赛题目是关于利用虚拟机历史申请使用记录来预测未来一周虚拟机的申请情况,并对预测的虚拟机合理分配到服务器上,具体内容可参考:http://codecraft.devcloud.huaweicloud.com/home/detail

    下面就不废话,直接干货,以下仅自己对赛题的理解,不好之处请指教交流,算是学习吧。

    这是一道与时间有关的预测题,而且时间越往后,预测时所占比重越大。之前也没接触过,算是从《机器学习实践》这本书来开始看入手的。最先来一个很简单的线性回归,可想而知,效果不咋样的,只是把它跑通。然后看了局部加权,但是开始遇到的问题是其中的矩阵不能求逆(昨天才知道实验室师兄就是主要用这个做的,240多点,应该能进64强,后悔当时没好好看),然后一看又是书中这章比较靠前的,感觉效果应该一般吧。后面看到一个叫弹性网络的算法,将岭回归和lasso的惩罚函数结合起来,然后感觉应该效果不错,就前前后后看得比较详细,也算是对这个算法比较熟悉了。这个算法中的弹性网选出的变量个数介于lasso回归和岭回归之间,既达到了很好的变量选择的效果,又保留了原有数据的群组效应,即某些相关性很强且有价值的变量的系数均不为0,而某些相关性很强但不是很有价值的变量的系数均为0(这个感觉好像还挺好的,不过不知道是自己思路编程啥的问题,最后得分挺低的)。由于编程语言的不熟悉和编程能力比较差,加上比赛不能用第三方库,包括各种矩阵数学运算和一个人码代码,此时已经过去半个月了,已经进入4月几号了,成绩才71。然后想着先看看数据预处理,通过数据可视化,发现存在异常点值,虽然看了好几个数据预处理的算法,但是想着训练数据异常点不多,就按自己的方法处理的:将每种flavor历史数据中比有值的数据平局值大的数据处理成平均值,想着应该会提升好几分吧,结果,竟然差不多。然后问师兄他们,虽然他们用的比较复杂的点处理,但是也没提升,眼看时间不多,想着再弄几个算法。

    然后了解到随机森林,SVM,还有我和师兄们都觉得效果应该最好的时间预测的ARMA模型。SVM师兄试了,不好,ARMA好不容易他们也弄出来了,也不好(见了鬼了,也不知道是不是编程哪里有问题)。当然,整个比赛过程中,还要或多或少王完成实验室的项目任务。后面又看到非线性的多元回归,感觉这个简单点,而且数据眼看也是非线性回归的,就换了一两天编,效果不好。此时已经过了10号了,最后,想着把随机森林算法弄出来,看了两三天,有点小难(原谅题主比较菜)。还没完全实现,这时虚拟机分配算法还用的最简单的first fit算法+自己的简单优化,得知知乎有大神,将模拟退火算法开源了,效果不错,看了一下模拟退火算法,想着在正式比赛前尽量将这个弄出来。遗憾的是,两天时间感觉弄出来了,但是上传上去报错啊,耐心被消磨得快没了。一个人奋斗真的痛苦加无助啊,没人讨论,师兄也不能问得太多,毕竟是竞争选手。

    一直坚持,调试到今天上午时间结束,然后按之前的弹性网络+first fit+自己小优化,止于215.597。有些遗憾吧,但是本来就是抱着学习的心态参加的,也算不亏。最后,也感谢我两个队友和师兄,没队友,我可能都不会组队了,没师兄,,我可能早就放弃了。期待明年能赛出自己的水平。

    下面附上比赛过程中查到的厉害博主的好资源,同时感谢他们的分享,这里有一篇关于弹性网络的详细点的论文,如有需要,评论得之:

Python 矩阵类自己实现:http://www.jb51.net/article/121804.htm

弹性网络:https://blog.csdn.net/previous_moon/article/details/71376726

                http://www.cnblogs.com/jianxinzhou/p/4083921.html

预测模型总结:https://blog.csdn.net/yijiantao/article/details/51142953

                    https://blog.csdn.net/zc02051126/article/details/54709096

常见回归总结:https://www.jianshu.com/p/15dd20f8d02c

数据清洗:https://www.cnblogs.com/charlotte77/p/5606926.html

随机森林:https://www.oschina.net/translate/random-forests-in-python?cmp


Beginner with C#

/* if you want to read the E edition, here is the link(http://msdn.microsoft.com/vstudio/nextgen/tec...
  • kamphkb
  • kamphkb
  • 2002-01-15 21:29:00
  • 585

华为2018软件精英挑战赛指导(含伪代码)

  • 2018年03月16日 11:48
  • 21KB
  • 下载

2018华为软件精英挑战赛实况记录

       今天想写一篇博客记录一下自己参加华为软挑的过程,估计会在接下来一个月陆续更新。题目其实几天前就看过了,代码也写了两天,不过报名还是今天的事。       今年的题目相对还是比较好理解的,...
  • xbb123456rt
  • xbb123456rt
  • 2018-03-18 22:11:07
  • 505

2017 华为软件精英挑战赛

官方题目中的例子,但是我数了下只有44条边,用于测试吧28 44 12 100 0 1 20 1 0 2 16 1 0 3 13 1 0 6 13 2 0 7 25 2 0 8 36 2 0 9 ...
  • firenet1
  • firenet1
  • 2017-03-19 18:40:30
  • 16652

2018HUAWEI软件精英挑战赛(初赛) 解题历程

等比赛完后再分享,先占个坑....好吧现在先来填坑...粤港澳赛区,记录下这一周的历程。第一周大二萌新,看着去年的题目像acm,决定今年参赛玩一玩,结果今年就变成预测了,在此之前这一块的内容没有相关的...
  • xxxslinyue
  • xxxslinyue
  • 2018-03-11 02:31:59
  • 403

2017华为软件精英挑战赛思路分析

声明:这篇博客仅用于(zhang)交(fang)流(wen)学(liang)习,让大家更快的熟悉赛题,不会涉及到具体的算法细节,所以不会影响到前排同学的排名,请不用担心。题目大意有一个无向网络,网路的...
  • mmy1996
  • mmy1996
  • 2017-03-21 15:59:14
  • 14950

2017华为软件精英挑战赛解分析

后经在复赛赛题上测试,效果并不好,只适合部分数据集,并且没有理论支持,放出来只为启发—— 以下方法初中级样例1s以内,高级样例10s内出最优解—— 不随机,无启发式,走优化的方法。采用反馈-迭...
  • u011386045
  • u011386045
  • 2017-04-07 14:43:01
  • 1418

2017 华为软件精英挑战赛——思路、算法简介

2017 华为软件精英挑战赛 初赛赛题 4.5号就结束初赛了,不影响大家的排名,只说大致思路和方法: 正好研一上学期学习了焦永昌教授的《工程优化》,期末的大作业就是遗传算法分割图像的小论文,所以对启发...
  • misayaaaaa
  • misayaaaaa
  • 2017-04-04 09:24:16
  • 2153

2016华为软件精英挑战赛总结

还记得当时做这个比赛的时候好多天都是满脑子想着这道题,除了后面没有意义的玄学调参,参加这种比赛还是很锻炼的。在比赛的过程中需要去学算法读论文这都是一种提高吧。这里写篇文章分析一下当时的思路同时也纪念当...
  • mmy1996
  • mmy1996
  • 2016-08-20 19:52:44
  • 5282

2018华为软件精英挑战赛总结

做了半个多月的华为软件精英挑战赛终于落下了帷幕,首先记录一下最好排名,51吧。最终得分221,无缘64强。     首先这是我们第一次参加比赛,完完全全是小白的状态一点一点查资料研究的,一开始都不知道...
  • pudao6842
  • pudao6842
  • 2018-04-16 15:27:28
  • 65
收藏助手
不良信息举报
您举报文章:2018华为软件精英挑战赛
举报原因:
原因补充:

(最多只允许输入30个字)