zoukankan      html  css  js  c++  java
  • 线性回归闭式解推导

    单词:

    multivariate linear regression  多元线性回归

    Here I want to show how the normal equation is derived. 此处是如何获得该等式。

    Given the hypothesis function. 给出假设函数。 [haɪˈpɒθəsɪs]

    多元线性回归应用举例:

    幸福度预测:有身体、财富、学历等等自变量因素,有幸福度因变量因素,有一些样本数据,希望得到一个从这些自变量到幸福度这个因变量的映射函数。

    解析过程:

    回归函数:

    egin{equation}
    h_{ heta}(x)= heta_{0} x_{0}+ heta_{1} x_{1}+cdots+ heta_{n} x_{n}
    end{equation}

    最小化平方差损失:

    egin{equation}
    Jleft( heta_{0 ldots n} ight)=frac{1}{2 m} sum_{i=1}^{m}left(h_{ heta}left(x^{(i)} ight)-y^{(i)} ight)^{2}
    end{equation}

    此处的$x^{(i)}$和$y^{(i)}$是第i个样本数据。

    我们需要学习的参数$ heta$可以,可以视为一个列向量:

    egin{equation}
    left( egin{array}{c}{ heta_{0}} \ { heta_{1}} \ {dots} \ { heta_{n}}end{array} ight)
    end{equation}

    这样回归函数就是:$h_{ heta}(x)=x{ heta}$ 。${x}$是行向量形式。

     对于求和运算,实际上也可以变换成矩阵相乘的形式。上面的最小平方差损失,可以变换为:

    egin{equation}
    J( heta)=frac{1}{2 m}(X heta-y)^{T}(X heta-y)
    end{equation}

    这个地方的$X$是$m$行,$n$列的,$m$是样本数目,$n$是样本中的变量数目。$y$是一个列向量。

    不去考虑前面的$frac{1}{2 m}$这个系数。利用线性代数的知识将括号去掉:

    egin{equation}
    egin{array}{c}{J( heta)=left((X heta)^{T}-y^{T} ight)(X heta-y)} \ {J( heta)=(X heta)^{T} X heta-(X heta)^{T} y-y^{T}(X heta)+y^{T} y}end{array}
    end{equation}

    注意到:$X heta$实际上一个列向量,$y$也是一个列向量,那么$(X heta)^{T} y$和$y^{T}(X heta)$是相等的。上式可以简化为:

    egin{equation}
    J( heta)= heta^{T} X^{T} X heta-2(X heta)^{T} y+y^{T} y
    end{equation}

    此处的$ heta$是未知数,可以对其求取偏微分运算,但是$ heta$是一个向量,这就涉及到向量求导了。

    egin{equation}
    frac{partial J}{partial heta}=2 X^{T} X heta-2 X^{T} y=0
    end{equation}

    egin{equation}
    X^{T} X heta=X^{T} y
    end{equation}

    egin{equation}
    heta=left(X^{T} X ight)^{-1} X^{T} y
    end{equation}

  • 相关阅读:
    Java多线程学习(吐血超具体总结)
    java.lang.Integer can not be cast to java.lang.Long
    【转】随身HiFi 安卓OTG功能在音频上的妙用
    【转】锋狂百科:手机也能接外设 OTG技术详解
    【转】用串口登录Beaglebone Black、用usb共享电脑网络、内核模块的本地编译
    【转】Beagleboard:BeagleBoneBlack
    【转】
    【转】Beaglebone Black
    【转】你应该知道的 10 个 VirtualBox 技巧与高级特性
    如何把SKYPE的发送消息由enter改为ctrl+enter?
  • 原文地址:https://www.cnblogs.com/yanxingang/p/10772503.html
Copyright © 2011-2022 走看看