0%

前阵子两次面试,都被问到了逻辑回归的损失函数是什么,我知道是交叉熵,也很顺利的脱口说出了他的函数表达式,但是接下来被问到了为什么要用这个损失函数,我之前见过那张图,就是这个交叉熵函数的曲面是比平方损失函数(MSE)的曲面要陡峭,更方便梯度下降算法的迭代求解,但是再被往下深挖,问还有别的原因吗,这背后的存在的数学逻辑是什么?接着又被问了一堆的极大似然估计啥啥啥数理统计的东西,就有点说不出来了,所以查了一些资料,顺便写篇文章总结一下加深下理解。

阅读全文 »

在时间序列预测中,预测的horizon往往是一段时间,比如下一周的股票价格、销量、天气等等,但是,在将时间序列数据转化为有监督学习时,往往会构造很多特征,其中一个很重要的就是滞后值特征和滑动窗口统计特征,一旦加入这些特征,就会导致有监督学习的多步预测出现问题,比如,我需要构造了一个滞后一天的特征lag1,需要预测接下来两天的值,那么,第一天的是很好预测的,因为我有昨天的值,但是第二天的预测就有问题了,因为昨天的观测值是不知道的啊,在上一篇文章中,我提到了一个递归预测法,但这两天看了一下,其实解决这个问题的方法还不少,所以写篇文章总结下吧。

阅读全文 »

当下时间序列预测的方法主要有三种吧,第一个是传统的时间序列预测方法,典型代表有ARIMA和指数平滑法;第二个是基于机器学习的方法,目前用的最多的是lightgbm和xgboost,在很多时序预测比赛前几名的方案都可以看到这两种方法;第三个是基于深度学习的方法,如RNN、LSTM等。现在传统时序预测的方法的预测精度都已经不如基于机器学习和深度学习的方法了,但是后者依赖于特征工程,特征调教的好的话是可以达到很高的预测精度的,因此,本文就总结下时间序列数据常见的特征工程方法。

阅读全文 »

去年年初疫情,阿里云搞了一个在家实践的活动,就免费领了半年的云服务器,从此打开了新世界的大门,比如写一些脚本在挂服务器上跑一些代码,搭一个网站,还有一个就是可以在服务器上搭一个jupyter notebook的环境,通过网址就可以直接打开notebook写代码了,适合方便快速地写一些小型的代码,或者在手头的电脑没有anaconda环境时直接使用,甚至用ipad或者手机也可以写,大致的效果如下:

阅读全文 »

GBDT应该是我了解到的最能打的传统机器学习算法了,即使在当前各种基于深度学习模型泛滥的当下,依旧在一些中小型规模的数据集上有着非常亮眼的表现,如kaggle和天池上的一些比赛,高分的模型基本上都是使用的基于GBDT框架的xgboost、catboost、lightgbm。本文将介绍下这个最基础的GBDT算法,方便之后其他模型的学习,这次虽然花了很多时间看了不少资料,但是限于个人水平,只能结合自己的理解,尽力把一些最精华和比较难懂的地方稍微总结一下,有不恰当的地方还请指正!

阅读全文 »