深夜博客在今天开张啦
一年前接触了机器学习,纯属个人兴趣,还没想到要入坑,现在沉迷无法自拔了哈哈哈。好了也不说太多废话了,今天的主题是广义线性模型啦!这篇博客是参考斯坦福cs229 lecture1中的Generalize Linear Models(GLM)及加上自己的理解,博主是个new comer,欢迎大家一起交流学习哦
在解释广义线性模型之前,有必要回顾一下线性回归(Linear Regression)和逻辑回归(Logistic Regression)。

线性回归–Linear Regression
线性回归模型可应用与监督学习(supervised learning)预测问题,如房价预测,疾病预测…….
对线性回归的直观解释: 找到一个线性函数能尽可能拟合已给出的点,如图

理论解释:
假设

X=[x1,x2,x3,.......,xm]TX=[x1,x2,x3,.......,xm]T

X=[x_1,x_2,x_3,.......,x_m]T xixix_i代表影响结果的一个特征(feature), y ∈ R
当X与结果y属于线性关系时,即可得到线性回归假设(hypotheses):

hθ(X)=θ1x1+θ2x2+.......+θmxm+b;hθ(X)=θ1x1+θ2x2+.......+θmxm+b;

h_θ(X) = θ_1x_1+θ_2x_2+.......+θ_mx_m+b;
写成向量形式即为:

hΘ(X)=ΘTX+bhΘ(X)=ΘTX+b

h_Θ(X) = Θ^TX + b

构造损失函数(损失函数就是用来表现预测与实际数据的差距程度):
cost function(损失函数):

J(Θ)=1/2∑isamples[hΘ(X)−y];J(Θ)=1/2∑isamples[hΘ(X)−y];

J(Θ) = 1/2\sum_{i}^{samples} { [h_Θ(X) - y]};
目标即找到一组 Θ=[θ1,θ2,....,θm]Θ=[θ1,θ2,....,θm] Θ = [θ_1,θ_2,....,θ_m] 最小化J(Θ)。所用到的方法是梯度下降(gradient descent),在这里就不具体展开了,详细请看机器学习之梯度下降
在得到Θ向量后,将X_predict代入 hΘ(X)=ΘTXhΘ(X)=ΘTXh_Θ(X) = Θ^TX 中即可得到y_predict
Tips: 为什么要用最小二乘法定义损失函数, 戳=> 线性模型概率解释

逻辑回归–Logistic Regression
逻辑回归模型应用于监督学习分类问题,暂且考虑二分类(如0,1分类)问题如
直观解释:得到一条函数将不同类别的分开,如图:

理论解释:
同样假设

X=[x1,x2,x3,.......,xm],Θ=[θ1,θ2,θ3,.......θm]X=[x1,x2,x3,.......,xm],Θ=[θ1,θ2,θ3,.......θm]

X=[x_1,x_2,x_3,.......,x_m],\\ Θ = [θ_1, θ_2, θ_3,.......θ_m]
定义hypotheses(也就是预测预测结果 y^y^\hat{y})

hΘ(X)=1/1+exp(−ΘTX){hΘ(X)>0.5,hΘ(X)<0.5,set hΘ(X) = 1set hΘ(X) = 0hΘ(X)=1/1+exp(−ΘTX){hΘ(X)>0.5,set hΘ(X)= 1hΘ(X)<0.5,set hΘ(X)= 0

h_Θ(X) = 1/1+exp(-Θ^TX)\\ \left\{ \begin{array}{c} h_Θ(X) > 0.5, & \text{set $h_Θ(X)$ = 1}\\ h_Θ(X)
cost function:

J(Θ)={−log(hΘ(xi)),−log(1−hΘ(xi)),if yi = 1if yi = 0J(Θ)={−log(hΘ(xi)),if yi= 1−log(1−hΘ(xi)),if yi= 0

J(Θ) =\begin{cases}-log(h_Θ(x^i)), & \text{if $y^i$ = 1} \\-log(1-h_Θ(x^i)), & \text{if $y^i$ = 0} \end{cases}
统一起来即为:

J(Θ)=−∑isamples[yilog(hΘ(xi))+((1−yi)log(1−hθ(xi))]J(Θ)=−∑isamples[yilog(hΘ(xi))+((1−yi)log(1−hθ(xi))]

J(Θ) = -\sum_{i}^{samples} {[y^i log(h_Θ(x^i))+((1-y^i)log(1-h_θ(x^i))]}
同样是用到了梯度下降优化参数,得到优化后的参数 Θ=[θ1,θ2,……,θm]Θ=[θ1,θ2,……,θm]Θ=[θ_1, θ_2, ……,θ_m]后,X_predict代入 hΘ(X)hΘ(X)h_Θ(X) 即可得到该X对应的分类

OK,线性回归和逻辑回归就到此为止了,以上都是直接给出了hypothesis的定义,那么问题就来了,怎么知道那是正确的呢,换句话说,对一个陌生的模型,怎么去定义它的hypothesis?
问题不是很严重,广义线性模型解决了这个问题!

广义线性模型
实际上这两种情况只是广义线性模型的特殊情况,接下来我将解释其他的广义线性家族模型是怎么推到和应用到回归和分类问题中!
对于线性回归和逻辑回归实际上都可以看作是一个(y|X; Θ)的问题 (Tips:“;”表示参数Θ已知)
//对(y|X;Θ)的解释: 在参数Θ固定,给定x情况下,y服从某种概率分布
不同的是:
1. 线性回归中, (y|x;Θ) ∼ N(µ,σ2)N(µ,σ2)N(µ,σ^2),
2. 逻辑回归中, (y|x;Θ) ∼ Bernoulli(Φ),
高斯分布,伯努利分布的爸爸是同个人,他的名字叫指数族分布,现在我们就来介绍这个人并看看到底是如何生出演变成高斯分布和伯努利分布的!

指数族分布(Exponential Family)
指数族分布即为广义线性模型的概率分布
指数家族分布可定义为:

p(y;η)=b(y)exp(ηTT(y)−a(η))p(y;η)=b(y)exp(ηTT(y)−a(η))

p(y;η) = b(y)exp(η^T T(y)−a(η))
其中:
1. η被称为自然参数(natural parameters)
2. 通常T(y) = y
通过不同的a(η) 和 b(y) , T(y)可将指数家族分布变成不同的概率分布

重点内容
广义线性模型的构造:
引用斯坦福cs229讲义上的原话:
1. y | x;θ ∼ ExponentialFamily(η). I.e., given x and θ, the distribution of y follows some exponential family distribution, with parameter η.
2. Given x, our goal is to predict the expected value of T(y) given x. In most of our examples, we will have T(y) = y, so this means we would like the prediction h(x) output by our learned hypothesis h to satisfy h(x) = E[y|x]. (Note that this assumption is satisfied in the choices for hθ(x) for both logistic regression and linear regression. For instance, in logistic regression, we had hθ(x) = p(y = 1|x;θ) = 0·p(y = 0|x;θ) + 1·p(y = 1|x;θ) = E[y|x;θ].)
3. The natural parameter η and the inputs x are related linearly: η=θTxη=θTxη = θ^Tx. (Or, if η is vector-valued, then ηi=θTixηi=θiTxη_i = θ_i^Tx.)

也就是说,GLM有三个假设:
一: 给定θ和x,(y|x;θ)服从以η为参数的指数族分布;
二. hypothesis hΘ(X)=E[y|x;Θ]hΘ(X)=E[y|x;Θ]h_Θ(X) = E[y|x; Θ], 即为该分布的期望值
三. η与X是线性关系, η=θTXη=θTX η = θ^TX;当且仅当η是向量时,才有ηi=θTixηi=θiTxη_i = θ_i^Tx!

线性模型的推导(演变成高斯分布):
线性模型中目标变量y(response variable)是连续的,由机器学习线性回归概率解释中可以得到结论:y给定x服从高斯分布 N(µ,σ2),在这里μ可能由x决定;因此我们让指数家族分布设为高斯分布,演算以上广义线性模型构造:

比较目标概率分布函数与指数家族函数,确定参数之间的关系:
因为(y|X ; θ)~ExpFamily(η)~N(μ,σ2)N(μ,σ2)N(μ, σ^2) 由高斯分布函数可得:

p(y;μ)=12π−−√exp(−(y−μ)2/2)⟹12π−−√exp(−y2/2+μy−μ2/2)⟹12π−−√exp(−y2/2)exp(μy−μ2/2)p(y;μ)=12πexp(−(y−μ)2/2)⟹12πexp(−y2/2+μy−μ2/2)⟹12πexp(−y2/2)exp(μy−μ2/2)

p(y; μ) = \frac {1} {\sqrt{2\pi}}exp(-(y-μ)^2/2)\\\implies \frac {1} {\sqrt{2\pi}}exp(-y^2/2 + μy - μ^2/2)\\\implies \frac {1} {\sqrt{2\pi}}exp(-y^2/2 )exp(μy - μ^2/2)
与指数分布族函数 P(y;η)=b(y)exp(ηTT(y)−a(y))P(y;η)=b(y)exp(ηTT(y)−a(y)) P(y;η) = b(y)exp(η^T T(y) - a(y))对比可得

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪η=μb(y)=12π√exp(−y2/2)a(y)=−μ2/2T(y)=y{η=μb(y)=12πexp(−y2/2)a(y)=−μ2/2T(y)=y

\left\{ \begin{array}{c}\color{red}{η = μ}\\b(y) = \frac {1} {\sqrt{2\pi}}exp(-y^2/2)\\a(y) = -μ^2/2\\T(y) = y\\\end{array}\right.
构造模型:
由于对于服从 (μ,σ2)(μ,σ2)(μ, σ^2)的高斯分布,其均值为μ,因此有:

hΘ(X)=E[(y|X;μ)]=μhΘ(X)=E[(y|X;μ)]=μ

h_Θ(X) = E[(y|X ; μ)] = μ

由以上推理得 η=μη=μη = μ, 所以有:

hΘ(X)=E[(y|X;μ)]=μ=ηη=ΘTXhθ(X)=θTXhΘ(X)=E[(y|X;μ)]=μ=ηη=ΘTXhθ(X)=θTX

h_Θ(X) = E[(y|X ; μ)] = μ = η\\η = Θ^TX\\hθ(X) = θ^TX
这也正是以上线性回归hypothesis得到的结果,what a surprise!

逻辑回归模型的推导(演变成伯努利分布):
目标概率函数和指数家族函数之间的参数关系:
Logistic Regression二分类服从伯努利(Bernoulli)分布,表示为:
(y|X; θ)~ExpFamily(η)~Bernoulli(Φ), Φ = p(y=1|x;θ)

p(y;Φ)=Φy(1−Φ)1−y, y∈0,1⟹exp(log(Φy(1−Φ)1−y))=exp(logΦy+log(1−Φ)1−y)⟹exp(ylogΦ+(1−y)log(1−Φ))=exp(ylogΦ+log(1−Φ)−ylog(1−Φ))⟹exp(ylogΦ1−Φ+log(1−Φ))p(y;Φ)=Φy(1−Φ)1−y,y∈0,1⟹exp(log(Φy(1−Φ)1−y))=exp(logΦy+log(1−Φ)1−y)⟹exp(ylogΦ+(1−y)log(1−Φ))=exp(ylogΦ+log(1−Φ)−ylog(1−Φ))⟹exp(ylogΦ1−Φ+log(1−Φ))

p(y; Φ) = Φ^y(1-Φ)^{1-y} , \ y∈{0,1}\\\implies exp(log(Φ^y(1-Φ)^{1-y} )) = exp(logΦ^y + log(1-Φ)^{1-y})\\\implies exp(ylogΦ + (1-y)log(1-Φ)) = exp(ylogΦ + log(1-Φ) - ylog(1-Φ))\\\implies exp(ylog\frac {Φ} {1-Φ} + log(1-Φ))
与指数分布族函数 P(y;η)=b(y)exp(ηTT(y)−a(y))P(y;η)=b(y)exp(ηTT(y)−a(y)) P(y;η) = b(y)exp(η^T T(y) - a(y))对比可得

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪T(y)=yb(y)=1η=logΦ1−Φ⟹Φ=11+exp(−η)a(y)=log(1−Φ){T(y)=yb(y)=1η=logΦ1−Φ⟹Φ=11+exp(−η)a(y)=log(1−Φ)

\left\{ \begin{array}{c}T(y) = y\\b(y) = 1\\\color{red}{η = log \frac {Φ} {1-Φ} \implies Φ =\frac {1} {1+exp(-η)}} \\a(y) = log(1-Φ)\end{array}\right.
构造模型:
由于服从(Φ)的伯努利分布函数均值为Φ,得:

hΘ(X)=E[(y|X;Θ)]=E[(y;Φ)]=ΦhΘ(X)=E[(y|X;Θ)]=E[(y;Φ)]=Φ

h_Θ(X) = E[(y|X ; Θ)] = E[(y; Φ)] = Φ
由以上推理得 Φ = 1/(1 + exp(−η)), 所以有:

hΘ(X)=E[(y|X;θ)]=1/(1+exp(−η))η=θTXhΘ(X)=1/(1+exp(−ΘTX))hΘ(X)=E[(y|X;θ)]=1/(1+exp(−η))η=θTXhΘ(X)=1/(1+exp(−ΘTX))

h_Θ(X) = E[(y|X ; θ)] = 1/(1 + exp(-η))\\η = θ^TX\\h_Θ(X) = 1/(1 + exp(−Θ^TX))
正是logistic regression的hypothesis表达式,是不是很激动!!!

Tips: 定义以自然参数η作为概率分布均值的参数为g(η) = E[(y|X ; Θ)] = E[T(y); Θ]称为 canonical response function(规范响应函数,g(η)的逆函数则称为canonical link function(规范连接函数);

重点内容
总结一下广义线性模型吧:
广义线性模型的核心体现在y服从指数族分布(包括高斯分布,伯努利分布,多项式分布,泊松分布,beta分布……),且同个样本的y必须服从同个分布,接着在具体分布中比较与指数分布族之间的参数关系,最重要的就是具体分布的参数(Φ)和指数分布参数(η)之间的关系;
例如在线性回归中,Φ = η; 在逻辑回归中,Φ = 1/(1 + exp(−η));找到了这个关系后则可构造模型: 求得具体分布的均值,用η代替Φ,再用ΘTXΘTXΘ^TX代替η,即可求得具体模型的hypothesis(y^y^\hat{y})
在求得hypothesis后,求参数Θ利用极大似然估计求得cost function(损失函数)(具体方法参见机器学习之概率解释),之后再用梯度下降优化参数Θ即可得到最优解!

Tips:
·通常情况下,T(y) = y;但当y有多个取值时(c>2),则T(y)也应该是c-1的向量;(c为y的维度)
·η=ΘTXη=ΘTXη = Θ^TX,但当η是向量时,有η_i = θ_i^TX$也就是具体分布有多个参数时(如多项式分布)!
以上两种情况在多分类问题softmax中出现,具体参见机器学习多分类softmax

鸡汤终于煲的差不多了,有什么不足的希望大神指点出来,还想熬更好喝的鸡汤哈哈

                                            2018-09-04 23:24

机器学习之广义线性模型相关推荐

  1. 深入浅出Python机器学习4——广义线性模型

    线性模型的基本概念 线性模型的一般公式        在机器学习领域,常用的线性模型包括线性回归.岭回归.套索回归.逻辑回归和线性SVC等.        假如我们有一条直线,其方程是 y = 0.5 ...

  2. 《Py机器学习》-广义线性模型

    目录 一. 本章使用的函数说明 二. 四种线性模型 1.最最基本线性模型 2.线性回归模型 3.岭回归 4.套索回归 三. 模型的选择 一. 本章使用的函数说明 reshape( x ) 1.当原始数 ...

  3. 【机器学习】知否?知否?广义线性模型

    本文介绍了广义线性模型,其中线性回归.logistic回归,softmax回归同属于广义线性模型.从指数分布家族推导出高斯分布.伯努利分布对应的指数分布家族形式,以最大化期望为目标推导出线性回归.lo ...

  4. 机器学习(二)——广义线性模型、生成学习算法

    http://antkillerfarm.github.io/ 逻辑回归(续) 注:Ronald Aylmer Fisher,1890-1962,英国人,毕业于剑桥大学.英国皇家学会会员.尽管他被称作 ...

  5. 机器学习-算法背后的理论与优化(part2)--广义线性模型

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 广义线性模型 广义线性模型的定义 对于第一个问题,后面的分析中会看到在一定的假设下选择Sigrnoid函数是一种必然. 关于第二 ...

  6. 线性回归、logistic回归、广义线性模型——斯坦福CS229机器学习个人总结(一)

    纪念我第一个博客的碎碎念 先前我花了四五个月的业余时间学习了Ng的机器学习公开课,学习的过程中我就在想,如果我能把这个课程啃完,就开始写一些博客,把自己的所得记录下来,现在是实现的时候了.也如刘未鹏的 ...

  7. 机器学习笔记—再谈广义线性模型

    前文从线性回归和 Logistic 回归引出广义线性回归的概念,很多人还是很困惑,不知道为什么突然来个广义线性回归,有什么用?只要知道连续值预测就用线性回归.离散值预测就用 Logistic 回归不就 ...

  8. 系统学习机器学习之线性判别式(三)--广义线性模型(Generalized Linear Models)

    转自:https://www.cnblogs.com/czdbest/p/5769326.html 在线性回归问题中,我们假设,而在分类问题中,我们假设,它们都是广义线性模型的例子,而广义线性模型就是 ...

  9. 机器学习-线性模型及广义线性模型

    线性模型(linear model) 线性模型试图学得一个通过属性的线性组合来进行预测的函数,即: ...  (其中;...;为输入属性,;...;和b为模型参数) 向量表示为:   (其中为输入属性 ...

  10. python 广义线性模型_数学建模/机器学习:广义加性模型(GAM)及其Python实现

    笔者做过国赛也做过美赛,其中一类典型问题就是分析相关性,从而进行预测或者其他操作.这类问题通常情况下属于比较常规的问题,一般通过matlab或SPSS分析相关性,得到一个较好的数值即可. 然而有的时候 ...

最新文章

  1. 不信你看!这次Python和AI真的玩儿大了!!
  2. java8 lambda 视频_一文搞懂Java8 Lambda表达式(附带视频教程)
  3. spark SQL Running the Thrift JDBC/ODBC server
  4. [Java基础]反射练习之越过泛型检查,运行配置文件制定内容
  5. linux安装后启动mysql,linux安装完mysql后启动错误
  6. http://syy7.com/a/33.php,CVE-2020-7062
  7. noi 7627 鸡蛋的硬度
  8. 【转贴】我对测试工作的一些认识
  9. 自定义简单控件之标题控件
  10. 关于拉格朗日对偶问题中对偶性的理解 (很有趣)
  11. 知识类API调用的代码示例合集:驾考题库、ISBN书号查询、万年历查询等
  12. 利用Google Drive將英文版的PDF翻译成中文版的PDF
  13. 【程序员2公务员】一、基本认知
  14. 聚光灯效应:为什么没有人记得你做过什么
  15. 第2组 团队展示(组长)
  16. Blender人物骨骼绑定
  17. html制作透明正方形,用css3简单的制作3d半透明立方体图片详解
  18. 09年软件评测师考试下午试题答案
  19. 微信小程序与公众号区别PHP,微信小程序和微信公众号的区别是什么?
  20. 【项目实战】Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别

热门文章

  1. 区块链将成为互联网基础协议,类似于TCP/IP、HTTP
  2. HTML干净的网址导航
  3. 2019年计算机操作系统考研真题
  4. ssh框架 mysql 配置文件_SSH框架与配置文件的简单搭建
  5. dnf维护怎么偷跑进服务器,DNF:回归玩家必看,这四点忠告要牢记,一不小心就被劝退...
  6. 百度网盘怎么设置提取码 百度网盘自定义提取码方法
  7. java做一个客房管理系统定制_基于JAVA的酒店客房管理系统的设计与实现
  8. Java入门 J2SE
  9. Linux系统下强制删除文件
  10. 神经系统的肿瘤有哪些,脑神经肿瘤最常见的是