====== 第一天(2018年3月21日) ======
* 晚上8点接到参赛链接:http://codecraft.huaweicloud.com/
* 开始了解比赛的相关背景、赛事介绍、粗略了解赛题内容
====== 第二天(2018年3月22日) ======
===== 设置开发环境 =====
* 拿到账号密码
* 使用Anaconda创建开发环境:conda create -n py275 python=2.7.5
* 设置HTTPS密码{{ :华为云https密码.png?nolink |}}
* 安装git和tortoisegit
* 竞赛要求提交.tar.gz文件,如何在windows下使用7zip生成.tar.gz文件,参考链接:http://desert3.iteye.com/blog/802358
* 尝试首次提交:直接原封不动提交了SDK,得分为零。排名107。**目标:进入前36名**
===== 查找相关论文 =====
**知网**
* {{ :时间序列和神经网络对迷你型洗衣机销量预测.pdf |}}
* {{ :华为:基于时间序列与多元线性回归.pdf |}}
====== 第三天(2018年3月23日) ======
**目标:突破0分。**
* [[华为:竞赛]]
* 战果如图,获得分数**0.155**{{ :华为:突破0分.png?nolink |}}
====== 第四天(2018年3月24日) ======
* 查找数据特征,确定判题系统的input里面是2016年4月初的日期
* 提高分数至**77.052分**(2016年1月份的数据,简单平均,计算概率)
====== 第五天(2018年3月25日 周日) ======
* 完成资源分配的“贪心算法”,分数没有变化。
* 论文两篇:
- {{ :华为:基于cloudstack的虚拟机部署方案的研究与实现_王敏讷.pdf |}}
- {{ :华为:云计算虚拟机部署方案的研究_张笑燕.pdf |}}
====== 第六天(2018年3月26日 周一)======
* 了解“一元回归”,日期不能做“因变量”或者“自变量”。。。可以考虑用flavor8做X,其他的做Y。https://baike.baidu.com/item/%E4%B8%80%E5%85%83%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E6%96%B9%E7%A8%8B/6953911?fr=aladdin
* 如何使用excel做一元线性回归分析 https://jingyan.baidu.com/article/6766299760e4bd54d41b846d.html
* 随机森林的原理分析及Python代码实现 https://blog.csdn.net/flying_sfeng/article/details/64133822
* 从头开始:用Python实现随机森林算法 https://www.tuicool.com/articles/iiUfeim
* 随机森林算法入门(python) https://segmentfault.com/a/1190000007463203
* 指数平滑法 https://wenku.baidu.com/view/6e04bb4c580216fc700afdf9.html
====== 第七天(2018年3月27日 周二) ======
* 指数平滑法的系数α的取值方法:
* 系数α的确定
* 指数平滑法的计算中,关键是α的取值大小,但α的取值又容易受主观影响,因此合理确定α的取值方法十分重要,一般来说,如果数据波动较大,α值应取大一些,可以增加近期数据对预测结果的影响。如果数据波动平稳,α值应取小一些。理论界一般认为有以下方法可供选择:
* 经验判断法。这种方法主要依赖于时间序列的发展趋势和预测者的经验做出判断。
* 1、当时间序列呈现较稳定的水平趋势时,应选较小的α值,一般可在0.05~0.20之间取值;
* 2、当时间序列有波动,但长期趋势变化不大时,可选稍大的α值,常在0.1~0.4之间取值;
* 3、当时间序列波动很大,长期趋势变化幅度较大,呈现明显且迅速的上升或下降趋势时,宜选择较大的α值,如可在0.6~0.8间选值,以使预测模型灵敏度高些,能迅速跟上数据的变化;
* 4、当时间序列数据是上升(或下降)的发展趋势类型,α应取较大的值,在0.6~1之间。
* 试算法。根据具体时间序列情况,参照经验判断法,来大致确定额定的取值范围,然后取几个α值进行试算,比较不同α值下的预测标准误差,选取预测标准误差最小的α。
* 在实际应用中预测者应结合对预测对象的变化规律做出定性判断且计算预测误差,并要考虑到预测灵敏度和预测精度是相互矛盾的,必须给予二者一定的考虑,采用折中的α值。
* 有哪些比较好的做异常值检测的方法?https://www.zhihu.com/question/38066650
* 异常点检测算法 https://mp.weixin.qq.com/s?__biz=MzIzODExMDE5MA==&mid=2694182460&idx=1&sn=a4842775394946bb643006e2e7c67be9#rd
====== 第八天(2018年3月28日 周三) ======
**华为下午4点更新了判题系统。更新前最高分:85.032,同一份文件,更新后得分: 77.158**
* 论坛里说:
异常点可能出现在任何日期,不一定是节假日。建议仅从数据规律来判断而不是从日期判断。
另外,如果某天没有任何请求数据,训练集里也不会列出这天的数据,会看起来好像是缺失,需要注意。
训练数据不会人为制造数据缺失(无论是某个时段、某天、某月等)的情况。
* 指数平滑效果不错:
初始值的确定,即第一期的预测值。一般原数列的项数较多时(大于15项),可以选用第一期的观察值或选用比第一期前一期的观察值作为初始值。如果原数列的项数较少时(小于15项),可以选取最初几期(一般为前三期)的平均数作为初始值。指数平滑方法的选用,一般可根据原数列散点图呈现的趋势来确定。如呈现直线趋势,选用二次指数平滑法;如呈现抛物线趋势,选用三次指数平滑法。或者,当时间序列的数据经二次指数平滑处理后,仍有曲率时,应用三次指数平滑法。
* 待完成:1、二次指数平滑;2、自动根据测试数据计算最佳参数
====== 第九天(2018年3月29日 周四) ======
* 完成二次指数平滑算法,效果不好。。。
* 完成自动优化参数算法,效果一般。。。
====== 第十天(2018年3月30日 周五) ======
* 开始尝试“随机森林”
* 看到有人用“attention lstm”,初步了解一下。
* 自动化参数优化,本地运行正常。判题系统运行出错。。。改用Linux运行查错。
* 设置virtulbox的共享文件夹插件不成功。改搭建一台ftp服务区用于文件传送:
* 先把虚拟机搞到同一个网络里:https://www.cnblogs.com/leezhxing/p/4482659.html
* CentOS7配置FTP服务器增强版~(零基础学会FTP配置) https://www.cnblogs.com/SimonHu1993/articles/7088391.html
* 虚拟机搭建FTP服务器暂时没成功,先在这里中转一下:{{ :zhao_chun_yang_work.tar.gz |}}
====== 第十一天(2018年3月31日 周六) ======
* 出现错误提示:{{ :zhaochunyang.tar.gz |}},原因是ecs里面有个'\n'忘了删除了。
#### ANSWER RUNTIME EXCEPTION ####
[preliminariesL1usecase01]: "The format of the output file is invalid! Error info: The host number is invalid (not integer)!"
[preliminariesL1usecase02]: "The format of the output file is invalid! Error info: The host number is invalid (not integer)!"
[preliminariesL2usecase01]: "The format of the output file is invalid! Error info: The host number is invalid (not integer)!"
[preliminariesL2usecase02]: "The format of the output file is invalid! Error info: The host number is invalid (not integer)!"
* 通过测试,分数提升至**78.414**
* 有人(得分89)在排行榜的“团队口号”里写了:价值网络+蒙特卡罗搜索树+GRU+Attention
* 看直播,得到一堆算法的名字:ARMA, ARIMA, GARCH,马尔科夫,指数模型。百度“时间序列预测”可以得到更多信息。
* clockwork rnn https://arxiv.org/abs/1402.3511
* 目前看到的最好的RNN、LSTM、GRU博客:Understanding LSTM Networks(翻译) https://blog.csdn.net/xiaopihaierletian/article/details/71214160
* 手把手教你用 Python 实现针对时间序列预测的特征选择 https://www.leiphone.com/news/201703/6rVkgxvxUumnv5mm.html
====== 第十二天 (2018年4月1日 周日) ======
* 改用二次指数平滑,**分数提升至81.977,冲进前20名。**
* 【大数据部落】基于ARIMA、SVM、随机森林销售的时间序列预测 https://blog.csdn.net/qq_19600291/article/details/74217896
* 手把手教你用 Python 实现针对时间序列预测的特征选择 https://www.leiphone.com/news/201703/6rVkgxvxUumnv5mm.html
====== 第十三天(2018年4月2日 周一) ======
* 随机森林random forest及python实现 https://blog.csdn.net/rosefun96/article/details/78833477
* Python中利用LSTM模型进行时间序列预测分析 https://www.cnblogs.com/arkenstone/p/5794063.html
* 零基础入门深度学习(6) - 长短时记忆网络(LSTM) https://zybuluo.com/hanbingtao/note/581764
* 如何在Python中从零开始实现随机森林 https://cloud.tencent.com/developer/article/1043093
* Tensorflow实例:利用LSTM预测股票每日最高价(二) https://blog.csdn.net/mylove0414/article/details/56969181
====== 后记 ======
* 2018年4月9日:[python] 时间序列分析之ARIMA https://blog.csdn.net/u010414589/article/details/49622625