原址

1. 线性回归的回顾

上一节我们尝试解决“房价与房子大小”之间关系的时候,使用了线性回归去拟合一个线性的方程,使得这个线性方程与所获得的房价房大小数据最大限度地吻合。

所以,我们的问题的解决思路是,

  • 把数据当成事实

  • 用一个特定的模型(e.g.线性方程或非线性方程)去匹配数据

这些数据被当成了上帝,而让我们用模型去匹配他们。数据就是事实,当误差很大时,只能说明模型不够好,仍需努力来匹配我们的数据。

2. 换个角度看线性回归

刚才是数据是事实,换个角度来看,数据应该是事实的一个表现。也就是”房价数据”应该是“房价与房子大小关系”的一个表现。现在假设北京某地房价和房子大小之间关系已经确定了

房价=房子大小*500,

但是我们不知道,现在拿到了5个数据,

(500, 1),   (502, 1), (1510, 3), (1120, 2), (1500, 2). 会发现这5个数据并不符合关系。这是为什么,这是因为这些数据里面并不仅仅包含了"房价”与"房子大小”之间的关系,还很可能包含了, "房价”与“新旧”,“房屋”与“朝向”,“房屋”与“小区环境”...等等各种因素,而且这些因素很可能是可以观察到,也有可能是观察不到的。

所以说想完美准确的预测房价与房子大小的关系是有可能的!! 只要找出所有影响房价的因素.

找到所有影响房价的因素这是不可能的!! 所以我们可能勉为其难,只需要一个最近似的关系就好了,所以只要把其他因素都看成是一些与房子大小无关的小噪声就好了。于是,

y就是我们的房价,f(x)就是房价与房子大小之间的关系,\epsilon就是一些与房子大小无关的小噪声,当然,因为\epsilon是一个随机的东西,我们可以用随机变量E来表示它,

3.最大似然

无论如何, 现在我们有了一串X,Y,就可以尝试地找出一个最有可能的f(x)去拟合数据了。

什么叫最有可能?

假如有M个f(x), 那么我们需要评估哪个模型最有可能产生这一串数据D (Y, X). 可能性应该用概率来表示,

是f(x)的参数, 如果这些数据与数据之间是独立的,就有

下面这个方程,表示了模型产生数据X,Y的可能性

因为X,Y已经确定了,现在要使得可能性最大,我们只能通过调整的值了。

对任意一个数据,(xi, yi),我们可以计算

现在要计算一个模型产生数据的可能性,我们只要知道这个模型预测值与实际值之间的误差,和这个噪声随机变量E的分布就可以了。

解决最大似然问题的流程

到这,问题已经可以解决了,也就是,对于已有的数据D(X,Y)和任意一个参数为的f(x),找到最好的参数我们需要,

  1. 选择一个模型f(x), 和初始化其参数

  2. 估测噪声随机变量E的分布情况(e.g. 均匀分布,高斯分布...), 得到Likelihood表达式

  3. 计算Likelihood函数, 并调整使得Likelihood达到最大

调整的方法可以使用像前一章中介绍的“导数下降法”,当然也可以直接找极值点(导数为0)来得到其极大极小值。

Likelihood 函数会随着模型f(x)的选择和噪声随机变量E的选择出现不同的情况。下面就由我展示一下,最大似然怎么与前面两位回归(线性回归(Linear Regression)和分类回归(Logistic Regression))联系起来的吧!

4. 最大似然变身线性回归

这时候,模型我选 f(x) = ax + b,  噪声随机变量 E一个正态分布N(0,2).

要让Likelihood最大,只需要把最小化就好了。啊啊啊!这个公式熟悉么? 这正是前面线性回归的cost函数吗?原来线性回归只是最大似然的一种特殊情况!

5. 最大似然与分类

这时候,模型我选f(x)=, 这时随机噪声变量的分布就不再是高斯分布了,是一个极其复杂的分布。但是幸运的是,我们可以得到Likelihood的表达式, 因为

统一一下这个式子,

于是有,

最后可以看到,这个Likelihood函数变成了,分类回归中的cost函数的取负。所以最大化Likelihood就等同于最小化分类回归中的cost函数。

以上两类问题,线性回归和分类回归,都可以由最大似然估计法推导而来,说明了最大似然估计法是一种更普适的描述模型匹配的方法。

从最大似然再看线性回归相关推荐

  1. qtdesigner怎么实现菜单栏跳转_3种公众号菜单栏设置类型,手把手教你做,不会的话那就再看一遍...

    常见的菜单栏设置怎么去设置呢?在我们的公众号左侧的菜单栏中,你可以找到我们的自定义菜单,这个功能,点击进去之后,你就可以看到菜单的内容,它可以有三种类型可选:一种叫发送消息,一种叫跳转网页,一种叫跳转 ...

  2. 长得类似铁甲小宝的机器人_铁甲小宝:小时候只顾看机器人忽略重点,长大后再看:是我太天真...

    铁甲小宝:小时候只顾看机器人忽略重点,长大后再看:是我太天真 铁甲小宝相亲大家都是看过的,作为早期的三大人特摄之一,铁甲小宝针对的完全就是儿童,小时候我们也是很喜欢这部作品,只是现在在荧幕上已经很难看 ...

  3. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  4. android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

    android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升 转载于:https://www.cnblogs.com/jeanschen/p/3507512.html

  5. 再看数据库——(2)视图

    概念 *是从用户使用数据库的观点来说的. *从一个或多个表(视图)中导出来的 *一个虚表,或者说查询表 为什么要用视图呢? 一是简单,看到的就是需要的.视图不仅可以简化用户对数据的理解,也可以简化他们 ...

  6. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了

    MFC学习: 1.CObject类为MFC总类,该类下面有一个重要的类CCmdTarget.而CCmdTarget类下面又有四个重要的继承类,分别为:CWinThread.CDocument.CDoc ...

  7. 再看结构体对齐与小端联合问题

    再看结构体对齐与小端联合问题 @(组成原理) 先再次回看一道题目的分析. (2012.15)某计算机存储器按字节编址,采用小端方式存放数据.假定编译器规定int型和short型长度分别为32位和16位 ...

  8. 【发布】哔哩哔哩bilibili替换旧版播放(稍后再看)

    今天上B站发现强制界面新版了,连旧版切换按钮也隐藏了,目前还能通过[稍后再看]来切换旧版,随便写了个脚本,油猴新建脚本,添加以下 Greasy Fork地址: https://greasyfork.o ...

  9. 再看《西游记》——吴承恩眼中的现实社会是如何折射到《西游记》中的

    一.<西游记>其实是一个时代的映照,是一种启蒙思潮的载体,只不过它所代表的启蒙思潮却在中国被扼杀掉了 对于<西游记>,我们给与了较多.较高的美学评价,但如果只是把<西游记 ...

最新文章

  1. statpot:使用mongo+bootstrap+highcharts做统计报表
  2. 网站SEO优化哪些操作会被视为作弊?
  3. 使用intellij的svn时提示出错: Can't use Subversion command
  4. java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceE解决方法
  5. System BIOS设置
  6. Java谓词的延迟执行
  7. vant popover offset
  8. XamlReader 动态加载XAML
  9. Python3: 超简单个性动态二维码制作
  10. centos 官网下载
  11. Python贪吃蛇双人大战
  12. c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数
  13. 修改电脑开机徽标教程
  14. java vbs_一键定位配置JAVA SDK 环境变量 VBS脚本全自动操作正式开源
  15. Emacs - 维基百科,自由的百科全书
  16. alin的学习之路:面试题 数据库相关
  17. 宝存 shannon PCI-E SSD VS OCZ RevoDrive3 X2 PCI-E SSD on CentOS 6.5 2.6.32-431.el6.x86_64
  18. 【解决方案】GB28181/RTSP/SDK/Ehome协议支持级联视频智能分析平台EasyCVR搭建小区园区视频监控系统
  19. 【总结】Vue+arcgis
  20. JAVA笔记:shape类(接口,继承,lambda表达式...)

热门文章

  1. 更改Tomcat默认目录+端口+设置缺省网页的方法
  2. 菜鸟版JAVA设计模式-从抽象与实现说桥接模式
  3. 笔试题--Multicore简答题(上)
  4. 创业始于自信 成功缘于诚信
  5. Arduino 硬件开发 教程收集
  6. 应用神经网络相关pre-processing(预处理 )
  7. python求无序列表中位数_详解Python如何获取列表(List)的中位数
  8. Mybatis(持久层的框架),注入的三种方式
  9. c#推箱子小游戏代码_用C#制作推箱子小游戏
  10. 台式电脑主板插线步骤图_主板电池怎么放电?电脑主板电池放电的方法