??? 又是一年花開。2018年華為軟件精英挑戰(zhàn)賽舌界,在蕩漾的春季開始了掘譬。17年的今天,應(yīng)該還沉浸在驚喜之中呻拌,今天或許有點(diǎn)小遺憾葱轩,仍然倍感幸運(yùn),簡單聊一聊這個春天的美好故事藐握。
一靴拱、賽題解讀
??? 給定歷史數(shù)據(jù),預(yù)測一個時段的虛擬機(jī)請求數(shù)量猾普。預(yù)測完成后袜炕,有效將虛擬機(jī)部署在物理服務(wù)器上。
??? 前者為時間序列預(yù)測問題初家。給定歷史數(shù)據(jù)偎窘,學(xué)習(xí)其中的歷史趨勢,季節(jié)性溜在,周期性等陌知,預(yù)測在未來時間內(nèi)的量值。常用的模型有移動平均(MA)掖肋,自回歸模型(AR)纵诞,自回歸滑動平均模型(ARMA),指數(shù)平滑(一次/二次/三次等)培遵,Garch等浙芙;
??? 后者為二維背包問題。虛擬機(jī)有不同的規(guī)格籽腕,CPU和MEM規(guī)格不同嗡呼,給定的物理服務(wù)器的規(guī)格相同,有CPU和MEM的限制皇耗,在滿足CPU和MEM的前提下南窗,優(yōu)化其中一個維度;
??? 總體來說,2017年是一個組合優(yōu)化問題万伤,2018年是機(jī)器學(xué)習(xí)加優(yōu)化問題窒悔,或許由于機(jī)器學(xué)習(xí)的原因,有了一定的門檻敌买,不知為什么感覺身邊的參與人員沒有上一年多简珠,或許是錯覺吧!
二虹钮、數(shù)據(jù)解讀
??? 初賽中提供的歷史數(shù)據(jù)為2015年1月到2015年5月聋庵,同時還有2015年12月到2016年1月。主要有以下幾個特點(diǎn):
(1)數(shù)據(jù)量小芙粱。15種規(guī)格的虛擬機(jī)祭玉,一共不到3000行數(shù)據(jù),且前期多數(shù)為0值春畔;
(2)數(shù)據(jù)特征小脱货。每條歷史數(shù)據(jù)有用信息僅包括時間和請求規(guī)格,訓(xùn)練數(shù)據(jù)特征較新梢獭振峻;
(3)異常值復(fù)雜。異常值的出現(xiàn)完全隨機(jī)线召,主要影響對象包括周末,節(jié)假日多矮,大促活動缓淹,企業(yè)臨時需求等,由此產(chǎn)生的異常值塔逃,數(shù)據(jù)分布無特征讯壶,且異常值范圍特征小湾盗;
初賽階段伏蚊,個人認(rèn)為高分的關(guān)鍵在于異常值的處理,從歷史數(shù)據(jù)能看到虛擬機(jī)的請求量呈上升趨勢格粪,且有不小波動性躏吊,后期多數(shù)采用二次指數(shù)平滑來完成,異常值的處理在指數(shù)平滑中也是占有重要比重帐萎,一種做法是當(dāng)前值超過前面一周平均值的固定倍數(shù)被視為異常值比伏,然后取其平均來替換。異常值如何處理疆导,關(guān)乎到算法學(xué)習(xí)到的規(guī)律赁项,確實(shí)是一門哲學(xué)課。
三、參賽感受
??? 最大的感受是語言Python的選擇悠菜,這是Python第一次作為參賽語言加入舰攒,或許是順應(yīng)云計(jì)算智能時代的需要。Python作為程序員的小語言悔醋,已經(jīng)是毋庸置疑了摩窃。
??? 程序員的技能儲備?作為一名后端開發(fā)人員篙顺,很有必要儲備一定的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)知識偶芍。可能很多同學(xué)因?yàn)閷τ赑ython和機(jī)器學(xué)習(xí)零儲備德玫,所以上來第一關(guān)就難以下手匪蟀。明顯感受到,時代對于一個合格程序員的需求是宰僧,一專多強(qiáng)材彪。在自己固有領(lǐng)域要有自己的獨(dú)特,在其他多方面要有一定程度的認(rèn)知琴儿,快速變革的時代段化,自我提高是不變的主旋律。于我而言造成,做好后端邏輯是專显熏,參與大數(shù)據(jù)處理和機(jī)器學(xué)習(xí)算法是強(qiáng),前路慢慢晒屎,且行且珍惜喘蟆。
??? 其實(shí)還有一個強(qiáng)烈的感受是代碼風(fēng)格。良好的代碼注釋鼓鲁,這應(yīng)該是程序員必備的蕴轨,別人閱讀代碼的難易程度,也是考量代碼優(yōu)秀與否的一個方面骇吭。扎實(shí)的算法功底橙弱,找工作時大家瘋狂刷題,找完工作燥狰,全部扔掉棘脐,刷題的本質(zhì)是在于學(xué)習(xí)簡潔有力的代碼,有效代碼效率龙致,堅(jiān)持刷題荆残,鍛煉好思路。
??? 團(tuán)隊(duì)管理的難度要優(yōu)于技術(shù)實(shí)現(xiàn)難度净当。合作共贏的時代内斯,技術(shù)管理尤為重要蕴潦。技術(shù)的實(shí)現(xiàn),方案的實(shí)現(xiàn)優(yōu)先級俘闯,后期的檢查潭苞,環(huán)環(huán)相扣。
??? 感謝隊(duì)友的支持真朗,感謝一個多月的努力此疹,本命年,希望一切不要太壞遮婶。
??? 忽然想起一個故事蝗碎,山里面有一個老和尚和一個小和尚。小和尚問老和尚旗扑,“師傅蹦骑,得道之前你每天做什么呢?”臀防,老和尚回答到眠菇,“砍柴,種菜袱衷,澆水”捎废。小和尚又問到,“那得道之后呢致燥?”登疗,老和尚笑著答道,“砍柴嫌蚤,種菜辐益,澆水”,小和尚不解的問搬葬,“有什么區(qū)別呢荷腊?”艳悔,老和尚笑著到急凰,“得道前,我砍柴的時候想著種菜猜年,種菜的時候想著澆水抡锈,澆水的時候想著砍柴,得道后呢乔外,砍柴的時候只是砍柴床三,種菜的時候只是種菜,澆水的時候只是澆水杨幼∑膊荆”
??? 一步步做好每一天聂渊,或許就是屬于自己的勝利。