在分类问题中我们如果:

他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族。

指数分布族(The Exponential Family)

假设一个分布能够用例如以下公式表达,那么这个分布就属于指数分布族:

公式中y是随机变量;h(x)称为基础度量值(base measure);

η称为分布的自然參数(natural parameter),也称为标准參数(canonical parameter);

T(y)称为充分统计量,通常T(y)=y;

a(η)称为对数切割函数(log partition function);

本质上是一个归一化常数。确保概率和为1。

当T(y)被固定时,a(η)、b(y)就定义了一个以η为參数的一个指数分布。我们变化η就得到这个分布的不同分布。

伯努利分布属于指数分布族。伯努利分布均值为φ,写为Bernoulli(φ)。是一个二值分布,y ∈ {0, 1}。所以p(y = 1; φ) = φ; p(y = 0; φ) = 1 − φ。当我们变化φ就得到了不同均值的伯努利分布。伯努利分布表达式转化为指数分布族表达式步骤例如以下:

当中,

再举一个高斯分布的样例。高斯分布也属于指数分布族。由高斯分布能够推导出线性模型(推导过程将在EM算法中解说)。由星型模型的如果函数能够得知,高斯分布的方差与如果函数无关,因而为了计算简便,我们设方差=1。

高斯分布转化为指数分布族形式的推导步骤例如以下:

当中

更多分部也属于指数分布族。比如:伯努利分布(Bernoulli)、高斯分布(Gaussian)、多项式分布(Multinomial)、泊松分布(Poisson)、伽马分布(Gamma)、指数分布(Exponential)、β分布、Dirichlet分布、Wishart分布。

构建广义线性模型(Constructing GLMs)

在分类和回归问题中,我们通过构建一个关于x的模型来预測y。这样的问题能够利用广义线性模型(Generalized linear models,GMLs)来解决。构建广义线性模型我们基于三个如果。也能够理解为我们基于三个设计决策。这三个决策帮助我们构建广义线性模型:

  1. ,如果满足一个以为參数的指数分布。比如,给定了输入x和參数θ。那么能够构建y关于的表达式。
  2. 给定x。我们的目标是要确定T(y)。即。

    大多数情况下T(y)=y,那么我们实际上要确定的是。即给定x,如果我们的目标函数是。(在逻辑回归中期望值是。因此目标函数h是φ。在线性回归中期望值是μ,而高斯分布中,因此线性回归中目标函数)。

  3. 如果自然參数η和x是线性相关,即如果:

如果有一个预測问题:基于特征商店促销活动、近期的广告、天气、星期几等特征x。来预測商店在任一小时内的顾客数目y。

依据概率知识可知,x、y符合泊松分布。泊松分布属于指数分布族。我们能够利用上面的3个如果。构建一个广义线性模型来进行构建预測模型。

GLMs构建最小二模型

线性回归中的优化目标y(损失函数)是由最小二乘法得到的。能够使用广义线性模型构建最小二乘模型。三个如果:

  1. 最小二乘法得到的目标变量y是一个连续值,我们如果给定x下y的分布符合高斯分布。

    如果1中的ExponentialFamily(η)就是高斯分布。

  2. 在高斯分布中。目标函数
  3. 如果:

推导步骤例如以下:

第一步变换依据如果2:

第二步变换依据y|x; θ ∼ N(μ, σ2),高斯分布的期望值是μ

第三步依据如果1:高斯分布中

第四步依据如果3:

如今已经使用广义线性模型构建出了最小二乘模型。接下来的工作就是利用梯度下降、牛顿方法来求解θ。梯度下降、牛顿方法的内容请參考之前的讲义。

GLMs构建逻辑回归

逻辑回归能够用于解决二分类问题,而分类问题目标函数y是二值的离散值,。依据统计知识。二分类问题能够选择伯努利分布来构建模型。

在伯努利分布的指数分布族表达式中我们已知:,从而得到。

构建广义线性模型的三个如果:

  1. 如果符合伯努利分布,
  2. 。伯努利分布中

推导步骤例如以下:

同最小二乘模型一样。接下来的工作就由梯度下降或牛顿方法来完毕。

注意一下上面的推到结果,回顾一下,在逻辑回归中。我们选用Sigmoid函数。

之所以在逻辑回归中选用这个g(z)作为Sigmoid函数是由一套理论作支持的。这个理论便是广义线性模型。

广义线性模型 - Andrew Ng机器学习公开课笔记1.6的更多相关文章

  1. Andrew Ng机器学习公开课笔记 -- 支持向量机

    网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继 ...

  2. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  3. Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms

    网易公开课,第5课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模 ...

  4. Andrew Ng机器学习公开课笔记 -- Generalized Linear Models

    网易公开课,第4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面介绍一个线性回归问题,符合高斯分布 一个分类问题,logstic回 ...

  5. Andrew Ng机器学习公开课笔记 -- 学习理论

    网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/va ...

  6. Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

    网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型 ...

  7. Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

    网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...

  8. Andrew Ng机器学习公开课笔记 – Factor Analysis

    网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...

  9. Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降

    网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...

随机推荐

  1. 在JavaScript文件中读取properties文件的方法

    假设有JavaScript文件叫做:readproperties.js,这个文件需要读取config.properties这个配置文件,步骤如下: 1.  下载插件jquery.i18n.proper ...

  2. Node.js:EventEmitter类

    一.EventEmitter 类 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时 ...

  3. [Grunt] Minifying your output with grunt-uglify

    For production we want to use minified javascript to reduce the payload that is sent from the server ...

  4. js实现可拉伸移动的div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd&qu ...

  5. 关于使用jquery时,ie8下提示对象不支持的属性或方法的解决办法

    转自:http://wapapp.baidu.com/auoong/item/538790fcbe87c834d7ff8cde 首先这个问题的前提是已经排除了常见的这个问题.下面说一种今天我碰到的一种 ...

  6. ejs和swig对比问题之二

    上一次用浏览器里面简单的进行了测试,得到的数据是swig是ejs的速度的一倍左右,这次在控制台进行测试,能够得到比较精确的数据,并加入了dot一块儿进行测试. 测试数据是一百万条记录 创建测试数据cr ...

  7. iOS-字符串拼接

    // // main.m // /* 将两个字符串 NSString * str1 = @"123"; NSString * str2 = @"abc"; 拼接 ...

  8. MySQL主从架构之Master-Slave主从同步

    MySQL复制 MySQL复制是指将主库上的DDL和DML操作通过二进制日志传到从库上,使主库和从库上的数据保持同步 复制原理: 主服务器将更新写入二进制日志文件,并维护文件的一个索引来跟踪日志循环. ...

  9. JavaScript 数组方法处理字符串 prototype

    js中数组有许多方法,如join.map,reverse.字符串没有这些方法,可以“借用”数组的方法来处理字符串. <!doctype html> <html lang=" ...

  10. Eclipse/Myeclipse中查看和调试JDK源代码的方法

    看过这篇文章后,实践写的 http://blog.csdn.net/qq_27857857/article/details/71250401 一共做了以下几部: 第一步: 第二步: 一直next,到第 ...