我爱编程

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

2018-04-17  本文已影响0人  采风JS
智能世界云动

    又是一年花开。2018年华为软件精英挑战赛,在荡漾的春季开始了。17年的今天,应该还沉浸在惊喜之中,今天或许有点小遗憾,仍然倍感幸运,简单聊一聊这个春天的美好故事。

一、赛题解读

    给定历史数据,预测一个时段的虚拟机请求数量。预测完成后,有效将虚拟机部署在物理服务器上。

    前者为时间序列预测问题。给定历史数据,学习其中的历史趋势,季节性,周期性等,预测在未来时间内的量值。常用的模型有移动平均(MA),自回归模型(AR),自回归滑动平均模型(ARMA),指数平滑(一次/二次/三次等),Garch等;

我在哪里见过你

    后者为二维背包问题。虚拟机有不同的规格,CPU和MEM规格不同,给定的物理服务器的规格相同,有CPU和MEM的限制,在满足CPU和MEM的前提下,优化其中一个维度;

    总体来说,2017年是一个组合优化问题,2018年是机器学习加优化问题,或许由于机器学习的原因,有了一定的门槛,不知为什么感觉身边的参与人员没有上一年多,或许是错觉吧!

二、数据解读

    初赛中提供的历史数据为2015年1月到2015年5月,同时还有2015年12月到2016年1月。主要有以下几个特点:

(1)数据量小。15种规格的虚拟机,一共不到3000行数据,且前期多数为0值;

(2)数据特征小。每条历史数据有用信息仅包括时间和请求规格,训练数据特征较小;

(3)异常值复杂。异常值的出现完全随机,主要影响对象包括周末,节假日,大促活动,企业临时需求等,由此产生的异常值,数据分布无特征,且异常值范围特征小;

给你一份蒲公英的约定

初赛阶段,个人认为高分的关键在于异常值的处理,从历史数据能看到虚拟机的请求量呈上升趋势,且有不小波动性,后期多数采用二次指数平滑来完成,异常值的处理在指数平滑中也是占有重要比重,一种做法是当前值超过前面一周平均值的固定倍数被视为异常值,然后取其平均来替换。异常值如何处理,关乎到算法学习到的规律,确实是一门哲学课。

三、参赛感受

    最大的感受是语言Python的选择,这是Python第一次作为参赛语言加入,或许是顺应云计算智能时代的需要。Python作为程序员的小语言,已经是毋庸置疑了。

    程序员的技能储备?作为一名后端开发人员,很有必要储备一定的机器学习和深度学习知识。可能很多同学因为对于Python和机器学习零储备,所以上来第一关就难以下手。明显感受到,时代对于一个合格程序员的需求是,一专多强。在自己固有领域要有自己的独特,在其他多方面要有一定程度的认知,快速变革的时代,自我提高是不变的主旋律。于我而言,做好后端逻辑是专,参与大数据处理和机器学习算法是强,前路慢慢,且行且珍惜。

没有你的午后我也懂得自处

    其实还有一个强烈的感受是代码风格。良好的代码注释,这应该是程序员必备的,别人阅读代码的难易程度,也是考量代码优秀与否的一个方面。扎实的算法功底,找工作时大家疯狂刷题,找完工作,全部扔掉,刷题的本质是在于学习简洁有力的代码,有效代码效率,坚持刷题,锻炼好思路。

    团队管理的难度要优于技术实现难度。合作共赢的时代,技术管理尤为重要。技术的实现,方案的实现优先级,后期的检查,环环相扣。

    感谢队友的支持,感谢一个多月的努力,本命年,希望一切不要太坏。

    忽然想起一个故事,山里面有一个老和尚和一个小和尚。小和尚问老和尚,“师傅,得道之前你每天做什么呢?”,老和尚回答到,“砍柴,种菜,浇水”。小和尚又问到,“那得道之后呢?”,老和尚笑着答道,“砍柴,种菜,浇水”,小和尚不解的问,“有什么区别呢?”,老和尚笑着到,“得道前,我砍柴的时候想着种菜,种菜的时候想着浇水,浇水的时候想着砍柴,得道后呢,砍柴的时候只是砍柴,种菜的时候只是种菜,浇水的时候只是浇水。”

    一步步做好每一天,或许就是属于自己的胜利。

你在看我吗
上一篇下一篇

猜你喜欢

热点阅读