(一)局部加权回归

通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under
fitting)。如下图的左图。而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的
过拟合(overfitting),不符合数据真实的模型。如下图的右图。

下面来讲一种非参数学习方法——局部加权回归(LWR)。为什么局部加权回归叫做非参数学习方法呢?首先,参数学习方法是这样一种方法:在训练完成所有数据后得到一系列训练参数,然后根据训练参数来预测新样本的值,这时不再依赖之前的训练数据,参数是确定的。而非参数学习方法是这样一种算法:在预测新样本值的时候,每次都会重新训练数据得到新的参数值,亦即说每次预测样本都会依赖训练数据集合,所以每次得到的参数是不确定的。
局部加权回归算法是对线性回归的扩展,当目标假设是线性模型时,使用线性回归自然能拟合得很好,但如果目标假设不是线性模型,比如一个忽上忽下的函数,这时用线性模型就拟合得很差。为了解决这个问题,当当我们在预测一个点的值时,我们选择和这个店相近的点而不是全部得点做线性回归。基于这个思想,就有了局部加权回归算法。之前普通的线性拟合中,我们得到了最小二乘的损失函数为


找到合适的参数θ使得上述损失函数最小即可。而在局部加权回归中,损失函数变为
其中,是权值,它的作用在于根据要预测的点与数据集中的点的距离来为数据集中的点赋权值,当某点距离待预测点较远时,其权重较小,否则较大。一个较好的函数如下

其性质为:
(1)如果,则

(2)如果,则

其中,τ被称为波长参数,用于控制权值随距离下降的速率。该函数比较像但不是高斯函数或正太分布。这个算法的问题在于,对于每一个要查询的点,都要重新依据整个数据集计算一个线性回归模型出来,这样使得计算代价极高。

(二)最小二乘法的概率解释

接下来,对线性回归中的最小二乘法的合理性做了概率解释,即为什么选择平方函数作为目标函数会使得效果比较好?
假设一:对于每一个样例(x(i),y(i)),特征值x和目标值y的关系可以表示成:

其中,ε(i)
 表示线性模型与目标值的误差。
 
假设二:ε(i)
 服从正态分布:

假设一只是一种表示方法,成立很合理。那么假设二为何会成立呢?这是因为影响误差的因素有很多,这些因素都是随机分布,根据中心极限定理(Central
Limit Thoery),即许多独立随机变量的和趋向于正态分布,我们可以得到假设二。
 
   
 有了假设二之后,我们可以得到:

这也表示,当给定参数θ和x时,目标值y也服从正态分布:
注意到x(i)与θ间的分号,它表示的是θ是已知变量而非随机变量;整个P式表示给定以θ为参数的概率。

假设三:对于各个样例的误差ε(i) ,它们是IID(独立同分布,Independent
Identical Distribution)随机变量。
这样,我们就可以得到似然函数:

其中,Y是一个长度为样例数的向量,X是样例数*特征数的矩阵。
似然函数的意义是什么?似然函数表示的是在参数θ下,数据集出现的概率。似然函数与概率的概念其实相似,不同之处在于似然函数把θ作为变量,找到使得数据集出现的概率最大时的参数,就称为极大似然估计。
对上式取log对数,即对一个乘积取对数等于对每项取对数之后再求和。可得下式:

所以,最大化等同于最小化

所以,之前讲的一般的最小二乘法实际上是在假设误差项满足高斯分布且独立同分布的情况下,使似然性最大化。

 
 
(三)逻辑回归

 
对于目标值是连续变量的问题来说,使用线性回归可能会解决得很好,即便其问题不是线性模型所能解决的,也可以用局部加权回归解决。但对于目标值是离散变量的分类问题来说,应用线性模型会有一定的困难。当然,有些这类问题也可以应用线性模型,但线性模型绝不是一种通用的解决这类问题的方法。
对于目标值是离散变量的二分类问题,假设目标值为{0,1},所以先改变模型使其预测值在[0,1]之间,我们选择这样一个函数:

其中,函数g被称为logistic函数或sigmoid函数。
有了这个函数,对于一个样例,我们就可以得到它分类的概率值:


将两式组合起来,得到公式如下: 这样,我们得到了函数h在整个数据集上的似然函数为:
同样的,为了计算方便,对似然函数取对数: 因为要求最大似然函数,可应用梯度上升算法,所以有如下更新规则: 求上式的导数时,根据上节课的做法,先假设有一个样例,这样,导数的解法如下:

考虑到多个样例,所以更新规则为:
上式与上节课中最小二乘的形式一样,但是实际上含义是不一样的,因为函数h不一样。但这并不是巧合,这几乎是一种通用的规则,你可以选择不同的假设,但如果使用梯度下降(上升)算法的话,更新规则都是如上式的形式的。

 
(四)感知器算法
感知器算法强迫函数输出为{0,1}离散值而不是概率。其假设为
在这个假设的基础上,我们使用与


形式相同的规则,就得到了感知器算法。感知器算法是人工神经网络的基础,在后面的理论学习中,将把它作为分析的起点。

Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法的更多相关文章

  1. Stanford大学机器学习公开课(六):朴素贝叶斯多项式模型、神经网络、SVM初步

    (一)朴素贝叶斯多项式事件模型 在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM).该模型有多 ...

  2. Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

    (一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解 ...

  3. Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型

    (一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...

  4. Stanford大学机器学习公开课(二):监督学习应用与梯度下降

    本课内容: 1.线性回归 2.梯度下降 3.正规方程组   监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案   1.线性回归 问题引入:假设有一房屋销售的数据如下: 引 ...

  5. LR 算法总结--斯坦福大学机器学习公开课学习笔记

    在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数   模型指给定输入xi如何去 ...

  6. [置顶] 局部加权回归、最小二乘的概率解释、逻辑斯蒂回归、感知器算法——斯坦福ML公开课笔记3

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  7. 第三集 欠拟合与过拟合的概念、局部加权回归、logistic回归、感知器算法

    课程大纲 欠拟合的概念(非正式):数据中某些非常明显的模式没有成功的被拟合出来.如图所示,更适合这组数据的应该是而不是一条直线. 过拟合的概念(非正式):算法拟合出的结果仅仅反映了所给的特定数据的特质 ...

  8. 局部加权回归、欠拟合、过拟合 - Andrew Ng机器学习公开课笔记1.3

    本文主要解说局部加权(线性)回归.在解说局部加权线性回归之前,先解说两个概念:欠拟合.过拟合.由此引出局部加权线性回归算法. 欠拟合.过拟合 例如以下图中三个拟合模型.第一个是一个线性模型.对训练数据 ...

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

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

随机推荐

  1. 信号屏蔽的切换的理解sigsuspend

    #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h&g ...

  2. An error in projects

    Error能使系统产生Failure从而导致系统不能达到所需的功能. 曾经,做一个关于酒店管理系统的项目.因为数据库表主外键的连接错误,当对页面的添加桌位功能进行测试时,不能正确的添加. 后通过逐行对 ...

  3. CSU 1116 Kingdoms(枚举最小生成树)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1116 解题报告:一个国家有n个城市,有m条路可以修,修每条路要一定的金币,现在这个国家只 ...

  4. HDU 5053 the Sum of Cube

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5053 解题报告:用来陶冶情操的题,求a到b的三次方的和. #include<stdio.h> ...

  5. statusbar 样式

    1:statusBar字体为白色 在plist里面设置View controller-based status bar appearance 为 NO:设置statusBarStyle 为 UISta ...

  6. HTML5 localStorage 的使用

      在前端开发中,我们会常遇到要在两个甚至多个html之间通信,我们可以在url中添加参数,但是当要传递的数据量较大较多时呢,不妨试试html5 的localStorage吧. 1) 检测你的浏览器是 ...

  7. tab切换,滑动门

    <SCRIPT type=text/javascript>  jQuery(document).ready(function () {          changediv([" ...

  8. Windows 10磁盘占用100%解决办法

    开机后磁盘占用高,是因为 windows 10 默认启用了 superfetch 服务.   这个服务的主要功能是加快程序的启动速度.开机以后,系统将那些经常使用的程序,预先从硬盘加载到内存中,这样, ...

  9. PyCharm 5 破解注册方法

    方法: 调整时间到2038年. 申请30天试用 退出pycharm 时间调整回来即可. 或者: 注册时选择 License server ,填 http://idea.lanyus.com ,然后点击 ...

  10. 再谈Weiphp公众平台开发——1、增加插件

    去年开始接触基于Weiphp的公众平台开发,一直没时间好好整理一下. 下面开始讲解第一个自定义weiphp插件:MyHello的开发流程. 1.插件创建.在weiphp管理后台依次点击“插件管理-&g ...