zoukankan      html  css  js  c++  java
  • 关于线性回归

    线性回归($linear  regression$),目标就是用一个(n-1)维的东西,来拟合一些在(n)维图形上的点,并且使得点集与拟合函数间的误差最小。

    如果自变量的个数只有一个,就称为一元线性回归;如果自变量的个数多于一个,就称为多元线性回归。

    比如,我们想得到房屋的价格与房间个数、大小、状况等多种因素之间的关系时,将这些因素作为自变量,将房屋价格作为因变量,这就是多元线性回归。

    其实,我们平常说的数据挖掘,就是拟合出来一个线性回归模型。

     举个栗子

    给定一个大小为$n$ 的数据集

    $${ y_{i},x_{i1},...,x_{ia}}_{i=1}^{n}$$

    $ ext{其中} x_{i1},...x_{id}$是第$i$个样本的$d$个属性值,$y_{i}$ 是 是该样本待预测的目标。线性回归模型假设目标$y_{i}$ 可以被属性间的线性组合描述,即

    $$y_{i}=sum_{j=1}^{d}w_{j}x_{ij}+b,i=1,...,n$$

    例如,我们现在要买一套房子,然后呢,我们统计了一下每个房源的大小,方向,作用点 ,位置,环境等信息,对于每个信息每个档次,打出一个分,最后根据各个因素的影响的大小决定每个因素所占有的权重,之后我们的估价就是这些权重*分值的和了。这样的话,我们就可以根据我们的估算去买房子了。


    线性回归模型有形式简单和易于建模分析的优点,它在实际问题中得到了大量的应用。


    线性回归模型

    线性回归的一般模型为:

    $$widehat{y}=w_{0}+sum_{i=1}^{n}w_{i}x_{i}$$

    其中$widehat{Y}$ 表示模型的预测结果,用来和真实值$Y$ 区分。模型要学习的参数(不严谨的说,就是每个因素所占有的权重)为 $w_{0},...,w_{n}$  即:$W$。

    如果我们构造:
     $$widehat{Y}=widehat{y}$$

     $$X=[1,x_{1},...,,x_{n}]^{T}$$

     $$W=[w_{0},w_{1},...,w_{n}]^{T}$$

    那么该模型可以写为矩阵形式:

     $$widehat{Y}=W^{T}X$$

    模型的评价标准

    假设集合数据为 $D=(X_{1},Y_{1}),...,(X_{n},Y_{n})$ ,将集合的 $X$ 代入到模型中即可求得模型的预测值 $widehat{Y}$。

    我们需要给模型一个优化目标,使得学到的参数能够让预测值 $widehat{Y}$ 。 尽可能地接近真实值$Y$。

    这里我们引入损失函数Loss Function这个概念。

    输入任意一个数据样本的目标值 $Y_{i}$  和模型给出的预测值 $widehat{Y_{i}}$,损失函数输出一个非负的实值。这个实值通常用来反映模型误差的大小。

    对于线性回归模型来讲,最常见的损失函数就是均方误差Mean  Squared  Error,MSE),它的形式是:

     $$J(W)=MSE=frac{1}{n}sum_{i=1}^{n}(widehat{Y_{i}}-Y_{i})^{2}$$

    即对于一个大小为 $n$ 的集合,$MSE$是$n$ 个数据预测结果误差平方的均值。

     模型的求解方法

    对于小数量级样本以及矩阵满秩的特殊情况,线性回归模型是有解析解的。

    将集合中的变量写成矩阵形式:令
     $$X=[X_{1},...,X_{n}]^{T},Y=[Y_{1},...,Y_{n}]^{T}$$

    根据线性回归模型,可以得到预测值 $widehat{Y}=XW$

    那么损失函数可以表示为:

     $$J(W)=MSE=frac{1}{n}sum_{i=1}^{n}(widehat{Y_{i}}-Y_{i})^{2}frac{1}{n}(XW-Y)^{T}(XW-Y)$$

    将损失函数$J$对变量$W$ 求导,并令其等于$0$可得:

     $$frac{partial J(W)}{partial W}=frac{1}{n}(XW-Y)^{T}X=0$$

     $$X^{T}XW=X^{T}Y$$

    在$X^{T}X$的逆存在时可得

     $$W=(X^{T}X)^{-1}X^{T}Y$$

  • 相关阅读:
    SpringBoot 之Spring Boot Starter依赖包及作用
    WebApi过滤器使用和请求实体合法性验证
    sql server 事务隔离性 snapshot 、read committed说明
    jQuery的deferred对象详解
    Juqery插件编写 基础说明
    sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改
    .net EntityFramework dbContext 如何实例化
    NOPI Excel 数据导入到数据库
    知识点整理01- 引用对象被子方法赋值后不改变;CheckBox 取消选择不可用问题
    .net Windows Service 按装及遇到的问题
  • 原文地址:https://www.cnblogs.com/arcturus/p/9168196.html
Copyright © 2011-2022 走看看