(一)局部加权回归

通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(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. bootstrap-collapse

    colapse插件:折叠功能 插件:collapse.js 实现方法:以data-toggle做被点击者,以div class="collapse in"显示展开内容 <sc ...

  2. springmvc之DispatcherServlet

    1.作用:DispatcherServlet是前置控制器,配置在web.xml(因为DispatcherServlet是一个servelet)文件中的.拦截匹配的请求,Servlet拦截匹配规则要自已 ...

  3. 利用Jquery的load函数实现页面的动态加载

    利用Jquery的load函数实现页面的动态加载  js的强大功能相信大家都知晓,今天通过jquery的库函数load可以更加方便的实现页面的动态刷新,经过几天的研究与探索,终于有所成效!吾心甚蔚! ...

  4. Java Annotation自定义注解详解

    在开发过程中总能用到注解,但是从来没有自己定义过注解.最近赋闲在家,研究整理了一番,力求知其然知其所以然. 本文会尝试描述什么是注解,以及通过一个Demo来说明如何在程序中自定义注解.Demo没有实际 ...

  5. 深入理解Java虚拟机之读书笔记一 自动内存管理机制

    一.运行时数据区域 1.程序计数器是线程的私有空间,每个线程都有.针对线程执行的是Java代码还是Native代码有两种取值,Java代码时:虚拟机字节码指令的地址:Native代码时:计数值为Und ...

  6. iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

    一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...

  7. BZOJ1483——[HNOI2009]梦幻布丁

    1.题目大意:这题就是给你一个序列,有两个操作,一个是询问序列中的连续段数,比如序列 1 2 2 1就是三段.. 1是一段,2 2 又是一段,1又是一段,就是相同的在一起,第二个操作就是将其中的一种数 ...

  8. web服务器页面错误代码集

    HTTP 1xx-信息提示 这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个1xx响应. 100-继续. 101-切换协议. 2xx-成功 这类状态代码表明服务器成功地接受了 ...

  9. 一起入门python6之函数

    今天我们来学习新的一篇吧,那便是“函数(function)”我们用def来定义一个函数,以案例说话.>>> def name(x):          #定义一个“name”的函数. ...

  10. 获取SHA1和MD5

    首先:1.我们进入到通过cmd打开控制台,进入cmd定位到.android文件夹下.如下图: 2.输入keytool -list -v -keystore debug.keystore得到三种指纹证书 ...