本博客已经迁往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.

最新文章

  1. 解决Qt在openSUSE上编译出现“cannot find -lGL”错误
  2. 【Android测试】【第十五节】Instrumentation——官方译文
  3. make自动生成依赖文件的两种形式
  4. mysql的binlog
  5. dedecms头部标签(标题,关键词,描述标签)(借用)
  6. http keepalive
  7. Eclipse UML插件AmaterasUML的配置及使用
  8. Jquery - checked 全选与取消全选
  9. 2.大约QT数据库操作,简单的数据库连接操作,增删改查数据库,QSqlTableModel和QTableView,事务性操作,大约QItemDelegate 代理
  10. LOJ116 - 有源汇有上下界最大流
  11. NPOI给单元格加范围边框
  12. python 验证码识别库pytesseract的使用
  13. springmvc读取服务器磁盘图片,显示于前台页面
  14. mybatis相关知识
  15. 什么是面向切面编程AOP--知识点汇总
  16. Python介绍以及安装
  17. WPS 2019 How To Create New Sheets For Each Row In Excel?
  18. Windows 10安装pip方法
  19. 每天学一点儿HTML5的新标签
  20. HTML 多张图片无缝连接

热门文章

  1. IBM的“认知计算时代”
  2. 为什么不能把委托(delegate)放在一个接口(interface)当中?
  3. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)
  4. EntityFramework IEnumerable,IQueryable ,Include
  5. Leetcode 204 Count Primes 数论
  6. python redis使用
  7. 在线测试 ssl 安全性
  8. 阿里云产品介绍(二):云服务器ECS的孪生兄弟们
  9. Linux 中的grep命令单引号,不加任何参数以及双引号的作用
  10. Selenium 3 -how to locate the chromedriver and geckodriver place?