zoukankan      html  css  js  c++  java
  • 机器学习-局部加权回归

    Locally weighted regression,局部加权回归 
    对于线性回归,问题是选取的特征的个数和什么特征会极大影响fit的效果。
    比如下图,是分布使用下面几个模型进行拟合的 :

    通常会认为第一个模型underfitting(欠拟合),而第三个模型overfitting(过拟合),第二个模型相对比较好的fit到训练集 
    所以可以看出,找出一个全局的线性模型去fit整个训练集,是个比较困难的工作,因为选择特征成为一个关键的因素。
    局部加权线性回归的思路,就是我不需要去fit整个训练集而产生全局的模型,而是在每次predict x的时候,只去拟合x附近的一小段训练集。
    无论全局训练集是多么复杂的一个分布曲线,但在局部小段数据上,都可以用线性去逼近。 
    所以算法如下:
    其中

    可以看到我们通过weight来选取局部样本点,这里weight定义有点类似高斯分布,虽然这里和高斯分布没有关系,只是恰好相似,但是他的分布曲线确实和高斯分布一样,钟型,所以通过weight,只有距离x很近的样本点才会对于损失函数有作用。局部加权线性回归算法是一种non-parametric algorithm而普通的线性回归是parametric learning algorithm 
    parametric learning algorithm有一组有限的,固定的参数,一旦完成fit,只需要保存下参数值来做预测,而不需要保存完整的训练集 。
    non-parametric algorithm,相反,我们需要保存完整的训练集来进行预测,而不是仅仅保存参数 
    正式定义为,the amount of stuff we need to keep in order to represent the hypothesis h grows linearly with the size of the training set. 
    为了表达假设h而保存的数据随着训练集的size而线性增长。

    前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数。下面继续讨论分类问题,分类问题和回归问题不同在于Y的取值是离散的。
    我们先讨论最简单的binary classification,即Y的取值只有0和1。
    分类问题一般不会使用回归模型,因为回归模型是输出是连续的,而分类问题需要的输出是离散的。但是一定要用也不是不可以,比如这里继续使用线性回归模型,但是不是非常适合,原因如下:
    1、首先线性模型的Y取值是连续,且没有限制的,而二元分类的取值为[0,1],对于线性回归模型,参考下图,可以以0.5为分界线,大于则取1,小于则取0,也可以转化为离散的结果。
    2、再者,其实只有在分界线周围的样本点对分类模型会有比较大的影响,而比较远的样本点其实对模型没啥影响 
    但对于线性模型而言,增加任何样本点都会对模型产生相同的影响

     

    所以提出logistic回归模型,这种回归模型可以比较好的解决二元分类问题。
    从本质上你仍然可以把他理解为线性模型,你可以看下面给出的H函数,只是在线性回归外面加上logistic函数进行转换,可以理解成把上图的直线转化为那条sigmoid曲线,使其更加符合二元分类的需求。但是本质上可以看成仍然是用那条直线进行划分。

  • 相关阅读:
    元素的高度自适应
    关于IE6的一些常见的CSS BUG处理
    Vue项目在IE浏览器报错polyfilleventsource added missing EventSource to window
    Springboot使用JdbcTemplate RowMapper查询,直接返回实体列表
    Springboot启动工程后,浏览器出现输入用户名和密码
    mysql5.6 zip版本如何安装
    python基础基础知识介绍
    python基础数据类型,集合及深浅copy
    格式化输出
    python基础windows环境下 安装python2和python3
  • 原文地址:https://www.cnblogs.com/sirius-swu/p/6936920.html
Copyright © 2011-2022 走看看