本博客已经迁往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. [自制简单操作系统] 7、多任务(二)——任务管理自动化&任务休眠

    前言 >_<" 这里仿照窗口管理的方式将任务管理也修改成相应的管理模式,这样可以灵活的添加多个任务,而不必每次都要修改任务切换函数:此外还在任务休眠做了尝试,通过将任务挂起和唤醒 ...

  2. [游戏模版9] Win32 半透明 图像处理

    >_<:Previous part we talk about how to map a transparent picture, and this time we will solve ...

  3. jenkins2 multibranch

    通过multibranch类型的pipeline job使得对于多个branch的支持更加简单.只需要创建一个multibranch job,jenkins将自动地为所有的branch创建job. 文 ...

  4. Ubuntu 安装配置MySQL,并使用VS的Server Explorer UI界面远程管理MySQL

    为安装配置方便,使用root账号登入Ubuntu. step1: 键入下面命令安装MySQL. 过程十分简单.安装过程中只需根据提示输入root账号的密码即可. step2:安装完成后检查MySQL是 ...

  5. xdebug影响php运行速度

    我在本地wamp的环境下面加了xdebug用来调试,但是我发现wordpress运行速度好慢,所有程序运行变得也很慢.开始以为是数据库有问题,找了半天,发现把xdebug的扩展去掉,就正常了. 目前配 ...

  6. Node + Express + Mysql的CMS小结

    因为之前用过上述的组合完成过很多系统,而这一次是为了实现一个帮助系统的静态网页发布.因为很久不写,重点说遇到的几个坑: 1.库版本的问题 比如mysql连接数据库一直报错,因为系统重装过,所以重新安装 ...

  7. [3].jekyll的基础

    一.创建新项目 以下是一个获取最简单 Jekyll 模板并生成静态页面的方法.: Administrator@FANGPENG /e $ jekyll new myblog # 创建名为 myblog ...

  8. linux web服务器必需的库文件

    往往安装完linux之后,本文用的centos6.4,再编译安装其它服务器软件时,总是提示缺少各种库文件,在这里我总结了一下 平时web服务器经常需要的一些库,如下: yum -y install m ...

  9. Java SimpleDateFormat[转]

    [补充] [转] http://stackoverflow.com/questions/2603638/why-cant-this-simpledateformat-parse-this-date-s ...

  10. 转载:Cellebrite携两大移动数据服务强势来华

    [IT168专稿]随着移动互联网的发展,智能终端也越来越普及,围绕整个移动互联网的产业链产生了巨大的商机.有这么一家做移动数据传输服务的厂商,他们一直专注在移动领域,为运营商和零售商以及司法部门提供服 ...