本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~

Linear Regression预测的目标\(Y\)是连续值, Logistic Regression预测的目标是二元变量, 泊松回归预测的是一个整数, 亦即一个计数(Count).

1. 泊松分布

如果一个离散随机变量\(Y\)的概率分布函数(probability mass function)为

$$Pr(Y=k)=\frac{\lambda^ke^{-\lambda}}{k!}$$

其中\(\lambda>0, k=0,1,2,...\), 则称\(Y\)服从泊松分布, 示意图如下图所示

泊松分布有以下性质:

  1. \(E(Y)=\lambda\)
  2. \(Var(Y)=\lambda\)
  3. 如果\(Y_1 \sim Poisson(\lambda_1), Y_2 \sim Poisson(\lambda_2)\), 则\(Y=Y_1+Y_2 \sim Poisson(\lambda=\lambda_1+\lambda_2)\)

2. 泊松回归

泊松回归预测的目标\(Y\)是整数值, 且服从参数为\(\lambda\)的泊松分布:

$$P(Y=y|\lambda)=\frac{\lambda^ye^{-\lambda}}{y!}$$

泊松分布是广义线性模型(Generalized Linear Model)的一种, 可以通过以下过程来建模:

  1. 假设\(Y_i~Poisson(\lambda_1)\)
  2. 令\(\phi_i=log(\lambda_i)\)或者\(\phi_i=\lambda_i\) , 前者称作identity link function, 后者称作log link function.
  3. \(\phi_i=\beta_0+\beta_1 X_{i1}+\beta_2 X_{i2}+...\)

使用log link function的好处是不会得到\(\lambda\)的负数估计值(因为泊松分布的\(\lambda\)是正的), 而identity link function则可能会得到负数估计值, 但在数据量比较大的情况下, 使用identity link function会减少计算量(除了不需要求对数之外, 在增量计算时, 也会有很大的好处, 细节可以参考[2])

2.1 参数估计

可以使用最大似然估计(MLE)来求得泊松分布的参数:

$$w=arg \hspace{2 pt} max \hspace{2 pt} l=log(\prod_i (p(y_i)))$$

$$=arg \hspace{2 pt} max \hspace{2 pt} l=\sum_i (y_ilog(w^Tx_i)-w^Tx_i-log(y_i!))$$

可以得到对数似然关于\(w\)的倒数为

$$\frac{\partial l}{\partial w_j}=\sum_i(\frac{y_i}{\lambda_i}x_{ij}-x_{ij})$$

因为对数似然函数是凸函数[3], 所以可以使用梯度下降或者Newton-Raphson[4]方法来求得最优解.

2.2 用途

泊松分布可以用在Behavior Targeting中, 用泊松分布分别估计将来用户在某个类别上的浏览和点击数, 然后就可以得到这个用户在这个类别上的CTR:

$$\widehat{CTR_{ik}}=\frac{\lambda_{ik}^{click}+\alpha}{\lambda_{ik}^{view}+\beta}$$

其中\(\alpha\)和\(\beta\)是用来做拉普拉斯平滑的, 可以是一个全局的值, 也可以每个类别都设置一对. \(\alpha / \beta\)是一个没有任何历史记录的新用户的默认CTR值.

参考文献:

[1]. Carl James Schwarz. Poisson Regression.

[2]. Ye Chen, Dmitry Pavlov, John F.Canny. Large-Scale Behavioral Targeting.

[3]. 凸问题浅析.

[4]. 优化算法-BFGS.

泊松回归(Poisson Regression)的更多相关文章

  1. Machine Learning 学习笔记 (3) —— 泊松回归与Softmax回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson ...

  2. 机器学习总结之逻辑回归Logistic Regression

    机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...

  3. 机器学习(四)--------逻辑回归(Logistic Regression)

    逻辑回归(Logistic Regression) 线性回归用来预测,逻辑回归用来分类. 线性回归是拟合函数,逻辑回归是预测函数 逻辑回归就是分类. 分类问题用线性方程是不行的   线性方程拟合的是连 ...

  4. 机器学习入门11 - 逻辑回归 (Logistic Regression)

    原文链接:https://developers.google.com/machine-learning/crash-course/logistic-regression/ 逻辑回归会生成一个介于 0 ...

  5. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!

    原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...

  6. 岭回归(Ridge Regression)

    一.一般线性回归遇到的问题 在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在: 预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量 时,最小二乘回归会有较小的方差 时, ...

  7. 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...

  8. 机器学习 (三) 逻辑回归 Logistic Regression

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  9. ML 逻辑回归 Logistic Regression

    逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...

随机推荐

  1. Linux系列笔记 - vim相关记录

    一.常用到的vim命令 这里只简单记录常用到的命令,后面会有自己记录的命令,但有些可能不常用. 常规模式: gg 跳到文件头 shift+g 跳到文件尾 行数+gg 跳到指定行 如:123gg 跳到1 ...

  2. 插件~使用ECharts动态在地图上标识点

    ECharts可以很方便的在网页上绘制地图,图表,并且可以提供下载图像,放大,缩小,拖动等功能,今天主要说一下它的地图类型(type:'map')是如何实现的. 首先在ECharts地图的坐标需要我们 ...

  3. centos安装firefox flash插件

    centos下的firefox flash插件默认不是最新版的,安装过程如下: 将安装地址添加到repolist中 sudo yum -y install http://linuxdownload.a ...

  4. vc个版本对应的vs版本

    VC6VC7(2003)VC8(2005)VC9(2008)VC10(2010)VC11(2012)VC12(2013)VC14(2015)

  5. static/final

  6. 解决用navicate远程连接数据库出现1045 access denied for user 'root'@'localhost' using password yes

    在mysql命令行中执行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');  GRANT ALL PRIVILEGES ON *.*  ...

  7. [ZT]Language codes – MFC

    Below is table with all MFC language codes. I think it can be sometimes very useful.  First column c ...

  8. 使用Facebook的SDK判斷來訪者是否已經按讃并成為本站粉絲團的成員

    今天公司裡要做活動,其中有一項活動內容是要求來訪者按一下facebook粉絲團的讃,按了讃之後贈送現金.Facebook被墻大家眾所周知,在百度搜了一下發現因為被墻的原因導致國內涉及到Facebook ...

  9. vector的 emplace 和 insert 以及使用vector进行iterator遍历 且 erase的时候注意事项

    vector<int> first;//Size()==2 first.push_back(); first.push_back(); //first.insert(2); vector& ...

  10. 解决连接MySql速度慢的方法

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢.解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve. 原因是 ...