2018华为软挑总结

作为菜鸡,最后分数231.811,进了个64,但没进复赛,其实挺有希望进复赛的,哎,练习阶段的最后次提交都是前20,由于被浪费了很多次提交机会后,最后只调了一次参数,就没机会了,哎,还是知足常乐吧,至少还有个入围(笑cry)。发现和大佬差距真大,学习路途遥远啊


题目大致是需要我们根据各个规格虚拟机的历史数据预测下一个时期的虚拟机数量,然后对预测出来的各个规格的虚拟机进行放置。需要资源利用率最大化

主要分为了两大部分,一是预测,二是装箱

3.9号12点出题,刚开始一筹莫展,因为没有做过相关的工作,什么叫训练模型也不懂,后面看西瓜书学会的,先用的多线性回归,用最小二乘法求解。练习阶段都没问题,但是比赛时超时,可能是因为求解时有太多矩阵运算?

然后放置用的指示文档的首次优先,后来改为了最佳优先。由于不会提交,都浪费了一晚上,到半夜才第一次提交成功,61分左右。之后就开始修改。

正式比赛时,多线性回归超时,浪费一次免费机会

后来队友提交了有BUG的放置,浪费了3次机会后,第4次提交的加权平均,只有215,然后第5次提交了一个版本,210多。第一天5次提交机会就用完了。晚上熬夜继续搞,尝试了MK检测,还是不行,第6次,第7次队友又用了有bug的代码,又浪费两次。哎我那时候心态都炸了,也怪我那时候无心再检查。第8次终于不乱改提交练习阶段正常的三次指数平滑,228.566,貌似,然后第9次,调了2个参数,调到了231也就是最后成绩,因为只剩一次机会了,不敢再动了。当时等排名的时候真的很煎熬,最后也和预计名次差不多。本来效果挺好的二次指数平滑版本都没有提交,真的很郁闷。所以在做事时,一定要细心再细心,心态要好,作为个团队,要参与进去,积极参与检查,这次比赛犯了很多我最不愿意犯的错误。长记性!

再说预测方法

数据真的是毫无规律啊,在同样的装箱情况下,写了随机数都可以得到更好的结果,无语的不行。听大佬说这道题的重点在于装箱,而不是预测,但直到比赛结束才知道这点……(应该不是忽悠我吧)

预测都是一些简单的时间序列,用过线性回归,1/2/3次指数平滑,动态自适应指数平滑(不知道为什么这个方法效果不好,很奇怪),灰度预测,BP神经网络,加权平均。

装箱用首次适应,最佳适应,动态规划。

最后提交的是三次指数+动态规划

在做预测时,首先分析数据特征,读取数据集后,用MATLAB分析数据,实在找不出特征(后面听大佬说,这些数据是没规律的,吐血。。)对于这种没规律的数据,发现去噪后,比如去除节假日,得分更低,所以也没打算去噪了。去噪的方法可以用正态分布,超过均值3倍sigma的就去掉。但是在这道题中,没有去处理。对于这种具有突变点的数据,尝试过做MK检测,通过求数据的UFK和UBK找出突变点和突变范围,但发现一直找不准,现在也不知道为什么。

在将数据集传入预测模型后,对数据进行了一些处理,因为是预测一个时间段的总数量,所以就产生了几种想法,包括,每天的都预测,再求和。或者是时间分为几段,分别预测每段,再求和。最后就是直接预测这一个时间段。

我们所采取的方法是预测整个时间段。把数据数量除以时间段的长度,就得到新的数据集长度。本以为丢弃了一些数据会影响结果,但想到那些大佬的方法是直接对最后7天求平均值,我真的是醉了。。。(在此膜拜平均数门派鼻祖——牛魔)

最后对预测的结果进行了一些校正,根据训练集的数据校正。(大佬是加个随机数。。。服了)

最后对结果放置。看了一些论文,想用遗传算法,但是实在太菜不会写。。。

最后说几句,在面对问题时,一定要先吃透问题,找出问题的关键,否则就是白忙活,还要与人多交流,确实需要交流啊,哎。现在回想着还是有小遗憾。

这次看到了这么多大佬,能和大佬们做同一件事,真的感到很高兴,喜欢这种能够融入进去的感觉,真的十分十分崇拜他们。

4.15凌晨6点,结束了一个多月的比赛。现在再写来回忆一下。

努力学习,早日成为小佬!


阅读更多

没有更多推荐了,返回首页