搬砖日志

时间序列的周期性检测方法

前言 最近做项目(又)接触到了时间序列,任务是给一段序列,要求能检测出是否存在一个较为明显的周期性模式。 咨询了一下同行,主要利用快速傅立叶变换来进行频谱提取。在公司的数据上尝试了一下,效果还不错,在此总结一下思路。 本科的时候学习信号处理有接触过傅立叶变化,对时间域、频率域有一定了解。FFT算法的思想主要是基于频率域的信息。 基本思想 在原始波形上应用快速傅立叶变换(fft)...

Pandas使用技巧 (持续更新)

按列排序 res = df[df['_key'] == _id].reset_index(drop=True).sort_values(by=colname, ascending=False, axis=0) 将date变为index,从DataDrame中抽出时间序列 df = df[['col_a', 'col_b']].rename(columns={'col_a': 'dat...

XGBoost4j-Spark实战

前言 最近做项目,首次使用了XGBoost4j-Spark,踩了不少坑,日常就是查Spark、XGBoost、Scala的API文档…… 所以简单总结一下遇到的问题和解决方法。 需要预备的知识 Scala: https://www.scala-lang.org Spark: https://spark.apache.org/docs/2.3.0/ XGBoost4j-Spark...

PySpark原生DataFrame操作经验

日常项目重度依赖PySpark。之前一直只把pyspark作为读取写入数据的client,主要数据处理逻辑在pandas中实现。 然而pandas的确只适合处理小数据量的场景。toPandas()一次性将数据全部加载到内存,这是其弊端之一;其二,当数据量较大时,用pandas处理耗时相对也会更长。 如果不需要强依赖一些第三方包,那么可以选择scala编写spark来进行数据处理;在必须依...

使用flask+gunicorn+supervisor进行python web部署

最近需要直接在服务器上部署xgboost模型。之前也做过模型部署方式的调研,具体需要根据实际情况来选择合适的部署方式。由于项目使用python进行开发,所以选择部署为python web service是最方便的做法。 之前实习的时候,开发帮忙部署过一次python web,我对其中细节其实并不太清楚。这次正好自己在公司的云平台上实验了整个流程,在此记录步骤。 主要参考了这篇教程。 部...

CTR预估之FM、FFM算法

最近需要研究计算广告与推荐系统的算法:CTR(Click-through Rate)预估,模型迭代方面打算从xgb+lr,FM/FFM到DeepFM这个过程来进行。FM、FFM及对应的深度模型在以前从未接触过,所以正好一边学习一边总结资料。 CTR预估 点击率是广告点击次数除以总展示次数(广告投放次数): 目前,CTR的数值平均接近0.2%或0.3%,超过2%被认为是非常成功的。 ...

使用lstm、xgb进行时间序列预测

时间序列(Time Series) 时间序列(Time Series)指以时间为维度的一系列数值,常见的时间序列包括股市价格走势、天气预报中的温度走势等。下图展示了一个典型的时间序列: 时间序列预测 时间序列预测问题,即从当前时间点出发,去预测未来某个时间段内的数据值及波动情况。 时间序列预测方法包括传统的基于统计的方法、基于有监督机器学习的方法、基于深度学习的方法等。时间序列预...