时序预测之四_Prophet时序模型
时序预测之四 _Prophet
时序模型
1. 说明
Prophet 是 FaceBook
开源的时序框架。非常简单实用,你不需要理解复杂的公式,看图,调参,调用十几行代码即可完成从数据输入到分析的全部工作,可谓懒人之利器。
在效果方面,我在同一项目中尝试了 ARIMA,将星期和节假日作为特征代入
GBDT,Prophet,相对来说,Prophet
效果最好,当然这与数据有关,也不能一概而论。总之,Prophet
效果挺好的,训练速度也挺快。
Prophet
的原理是分析各种时间序列特征:周期性、趋势性、节假日效应,以及部分异常值。在趋势方面,它支持加入变化点,实现分段线性拟合。在周期方面,它使用傅里叶级数(Fourier
series)来建立周期模型
(sin+cos),在节假和突发事件方面,用户可以通过表的方式指定节假日,及其前后相关的
N 天。可将 Prophet 视为一种针对时序的集成解决方案。
使用 Prophet
具体使用步骤就是:根据格式要求填入训练数据,节假日数据,指定要预测的时段,然后训练即可。除了预测具体数值,Prophet
还将预测结果拆分成 trend, yea ...
Python编程_在Matplotlib图中显示中文字体
Python 编程 _ 在
Matplotlib 图中显示中文字体
1. 说明
本篇主要针对在 Ubuntu 系统中,matplotlib
显示不了中文的问题,尤其是在无法安装系统字体的情况下,解决 Python
绘图时中文显示的问题。
2. 在系统中安装字体
1$ fc-list :lang=zh # 查看中文字体名称及其安装路径,相对于英文字体,中文字体文件一般较大。
如果无中文字体,可使用 apt-get 安装,具体方法如下:
1234567$ apt-cache search font|grep Chinese # 查看可安装的中文字体$ sudo apt-get install fonts-wqy-zenhei # 安装字体, 一般字体会被安装到/usr/share/fonts/的某个子目录下,也可以从windows中把ttf,ttc复制到fonts目录下。$ cd /usr/share/fonts/truetype/xxx/ # cd到字体安装目录下$ sudo mkfontscale$ sudo mkfontdir$ fc-cache -v # 更新字体$ fc-li ...
实战美年健康AI大赛之四_复赛使用数加平台
实战美年健康 AI
大赛之四 _ 复赛使用数加平台
#算法实战
1. 说明
美年健康 AI
大赛的复赛是线上赛,只能使用数加平台。第一次用数加,也遇到一些问题,在此总结一下。
2. 问题及解答
(1) 如何登录?
得到复赛资格之后,天池赛题网页左侧的列表中就会多出一项“数加”,点击进入后,按提示得到
RAM
帐号,即可以登录“数据开发平台”和“机器学习平台”,注意登录帐号是用户名和企业别名的组合。
网页上提供的 Demo 有点旧了,是 2015
年的,那时候好像还叫“御膳房”。建议官方及时更新,这样大家可以节约点时间,技术支持人员也没那么累。
(2) 如何访问数据?
进入“数据开发平台”,点击上方的“数据管理”,即可进入数据界面,左侧的查找数据,可以通过关键字查找该项目下的表,像本题查找
meinian
就可以看到很多表,其中包括管理员建立的和其他参赛者建立的。具体的项目名和表名见“赛题与数据”中复赛的说明。需要注意的是一般先要把项目数据用
SQL
复制到自己的空间中,然后再进行下一步操作。详见“代码分享”部分。复制到自己空间后,就可以在“数据管理”->“个人帐号 ...
实战美年健康AI大赛之三_大数据量的简化
实战美年健康 AI
大赛之三 _ 大数据量的简化
#算法实战
1. 说明
美年健康也是一个认真打的比赛,初赛B榜最高分 0.0279,排名 15.
最初是想用它实践一下自然语言处理,后面发现,另一个与之前比赛不同的地方,就是数据量很大,之前也做过几十上百万条记录的,但是特征少,这次
57000 多个记录,2700
多个特征.从提取特征到训练完成,我的代码要跑近三个小时,后来审核代码的阶段,在群里看到很多人代码都需要运行很长时间.
初赛 90%
以上的时间都花在自然语言处理上了,像去噪,特征筛选,调参,模型组合,结果分析几乎都没做,能刷到第
15,应该偷笑了.
在初赛结束后的几天里,开始尝试特征选择,希望优化整个过程,才发现数据量大的不能像之前那么处理.上述没做的那些,不是没有精力,是没时间.在大数据上做这些太花时间.在”大数据”里面,应该先要做一些简化,否则很多时间都浪费掉了.
本篇就来说说大数据和小数据的不同点以及应对方法.
2. 提取特征
这个题里面有些文本特征,和一些文本数值混合特征.首先要做的是清理和提取,尤其是”-1”,”正常”,”未见异常”,”阴性” ...
实战美年健康AI大赛之二_相关问题与思考
实战美年健康 AI
大赛之二 _ 相关问题与思考
#算法实战
1. 说明
上次把钉钉号写回复里了,最近就有不少师兄加我,问一些关于比赛的问题,五一后可能也没啥时间回复了,下面就把常见的问题统一总结一下,只是我个人理解,欢迎大家纠正指导。
2. 你用了哪些方法做到 0.286?
说出来可能有人不信,我只用了五折的
lightgbm,参数都没怎么调,去缺失值,去噪,特征选择,归一化,模型融合,目前为止都没做,所有时间都花在
NLP
上了,其中很多试尝还在进行中,还未加入模型,也不知最终能不能提分。
目前的方案中,一方面是把一些数值字符混合型数据变成数值型代入模型,另外还有在做
NLP
时发现的一些关键性的字段,提取出了其中是否含有某个关键字作为新的特征,总共涉及不到
10 个特征。
3. 怎么提分?
常被问到的一个问题是被卡在某一瓶颈了,怎么提分?我觉得大多情况是特征不足。如果以数值为主,要多看看自然语言处理,再找些特征,毕竟特征决定了上限,而优化模型只能是不断接近该上限。
4. 不做 NLP 最高多少分?
这要看如何区分数值特征和文本特征,我的数值特征有 2000
多 ...
实战天池精准医疗大赛——观看答辩总结
实战天池精准医疗大赛——观看答辩总结
#算法实战
1. 说明
今天是天池精准医疗大赛(糖尿病预测)的最终答辩,学习了一下前六名的经验分享.把自己没想到的列出来,如下.
2. 特征
多特征组合:
一般是现有特征加减乘除的组合,在特征多的情况下,先取强特征相互组合
.
数据分析:
常用分析方法:IV 值分析(information
value),方差,残差,单变量分析,PCA 等等.
特征的相关性与去冗余:特征和结果的相关性分析可能找不出一些非线性相关,但是特征之间的强相关,可以帮助去掉一些冗余.
小数据集中某些特征,可能引起过拟合.
缺失值填充:
Nuclear,MICE,最近邻填充.
对于不同缺失比例,可使用不同方法填充.
单指标特征概率相对分布图
衡量单变量在取值变化过程中,正负样本比例随取值变化的一个相对变化程度的总结(这个值与相关性差别很大).可以在去掉和不去掉缺失值的情况下,分别统计.
连续特征/离散特征使用不同的统计方法:QQPlot,四分位图.
将不同特征划分为不同的训练集和测试集.
这可能是一种人为的预分类.
3. 算法
因子分解机 FM
适合小 ...
实战美年健康AI大赛之一_自然语言处理
实战美年健康 AI
大赛之一 _ 自然语言处理
1. 说明
一直想找个自然语言处理(NLP)相关的比赛.起始看到"美年健康 AI
大赛"的时候,觉得和之前糖尿病比赛很相似,还是 GBDT
调参大赛.解包一看几百兆数据,觉得自己机器可能跑不动(后来确实加了一条内存),都没打开看数据就放弃了.
后来两个朋友都推荐做这个比赛,说是 NLP
的,打开数据一看,欸~还挺有意思的.数据量大的好处是稳定,我线上线下基本是同增同减(只提交过三次,目前为止是同增同减),就是看那病情诊断看得心惊肉跳的,腿都软了.
2. 比赛介绍
言归正传,介绍一下比赛内容,比赛提供了涉及 5 万多人的 800
多万条各项体验数据,有数据型的,也有字符型的.体验项目名称经过了脱敏处理,检查结果的文字内容未脱敏,目标是预测:收缩压、舒张压、甘油三酯、高密度脂蛋白胆固醇和低密度脂蛋白胆固醇这五项指标,预测具体的值,是一个回归问题.简单说就是分析哪些指标与高血压/高血脂相关.
我使用的是 lightgbm
模型,简单调参,对字符串只做了一些简单的处理,过滤出一些我认为重要的文字特征,当前最好成绩是
0.03002 ...
实战药物分子筛选之一_初探
实战药物分子筛选之一 _ 初探
#算法实战
##1. 说明
基于人工智能的药物分子筛选,是最近在 DC
大数据平台上看到的一个新比赛.这个题目对于我这种半科盲来说好难.花了一些时间才弄明白它是干嘛的.这是一家药品公词举办的比赛.我理解题目是这样的:给出三种数据:致病蛋白信息(病),小分子信息(药),蛋白和小分子间的亲和力(药和病能否结合),预测N种没见过的致病蛋白与已知的小分子之间的亲和力.简单地说就是知道一些病和药的特征以及它们之间的关系,预测一些新的病用什么药治.具体数据如下:
##2. 数据分析
蛋白质由氨基酸组成,氨基酸一共有 20
种,每一种用一个英文字母表示.蛋白质有四级结构,一级结构是组成蛋白质的氨基酸序列,二三四级还有螺旋折叠什么时,这里我们只考虑其一级结构,即某个蛋白质由哪些氨基酸组成的,它们的长度以及前后顺序是怎样的.在给出的数据(df_protein*.csv)中,氨基酸序列形如:FCIPTSSTIEQQNSTRVRQNTREHPSTANTVDRTNHQLENLEAETAPLP
它是一个由字母组成的序列.最长的一项长度为 7023,最短的长度为 26 ...
实战量化投资大赛之二_GBDT模型
实战量化投资大赛之二 _GBDT
模型
1. 说明
对股票预测这种典型的时序问题,使用梯度下降决策树,确实是有点生搬硬套.主要思路是想使用提供的特征值
f1-f87,看看哪些特征更加重要.
具体方法是把历史数据用计算趋势和移动平均线的方式添加到特征之中,此时记录的前后顺序就不再重要,用
122
天(半年)后的价格作为结果Y,随机将所有记录分成训练集和测试集,做回归模型.线上最高得分
47 左右.
2. 特征工程
用 GBDT
模型主要是特征工程和调参,一开始我只是加了一些趋势和与均线关系的特征,预测后取前
20,线上得分 34 左右.觉得这个模型几乎没法用.然后分析了取出的 top20
是怎样一些股票,发现其中多一半都包含停牌或者高送转.预测不成功的原因是:没做数据清洗,这里确实需要一些行业背景知识.
不只是 GBDT
模型,用统计模型也一样,这些特殊值都会成为干扰项.在去掉了高送转,次新股,停牌之后,同样的模型,RMSE
误差不到之前的 1/3,比之前靠谱多了.
具体工作如下:
(1) 合并数据
把数据合成一个大文件,用 pickle 格式保存,pickle ...
实战量化投资大赛之一_baseline
实战量化投资大赛之一
_baseline
#算法实战
1. 说明
昨天在群里看到了:凤凰金融量化投资大赛,详情见:http://www.dcjingsai.com/common/cmpt/%E5%87%A4%E5%87%B0%E9%87%91%E8%9E%8D%E9%87%8F%E5%8C%96%E6%8A%95%E8%B5%84%E5%A4%A7%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html
看了一下数据,大概是利用过去两年N支股票的数据,预测未来半年的走势,然后再从这N支股票里选出
20-50
支作为组合,看谁的组合半年后收益最大,以此排名.数据包含股票代码,收盘价,和八十多个脱敏后的特征.
2. 一些想法
我关注的一支股票,昨天跌停了,今天该买还是该卖?单看涨跌和趋势线是没法判断.涨跌和很多因素有关,比如跌停日的交易量,消息面,基本面,外盘,大盘涨跌,近期趋势.一般跌停次日的涨跌的概率等等,人基本是通过这些因素综合判断.
估计上述的很多成分被包含在比赛提供的 80
多个特征之中(毕竟是专业人士给出的数据).于是特 ...