4.多元线性回归

线性模型假定预测(\hat{y})是对应(x={x_1,x_2,\cdots,x_p})的属性的线性组合,即:

[\begin{align} \hat{y} &=\theta_0+\theta_1 x_1+\theta_2 x_2+ \cdots + \theta_n x_p\ & =\theta_0 x_0+\theta_1 x_1+\theta_2 x_2+ \cdots + \theta_n x_n \qquad 其中 x_0 \equiv 1 \end{align} \tag{1} ]

令 (\theta={\theta_0,\theta_1,\theta_2,\cdots,\theta_n}^T,x_b={x_0,x_1,\cdots,x_n}),则:

[\hat{y} =x_b \theta \tag{2} ]

现有数据(X={x^{(i)},x^{(2)},\cdots,x^{(N)}}^T),对应(y={y^{(1)},y^{(2)},\cdots,y^{(N)}}^T),其中(x^{(i)}={x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)}})。对了方便

记(X_b={x_b^{(i)},x_b^{(2)},\cdots,x_b^{(N)}}^T)。

定义损失函数:

[\begin{align} J(\theta)&=\sum_{i=1}^N (y^{(i)}-x_b^{(i)}\theta)^2 \ &=(y-X_b\theta)^T(y-X_b\theta) \end{align} \tag{3} ]

令(\frac{dJ(\theta)}{d\theta}=2X_b^T(X_b\theta-y)=0),得:

[X_b^TX_b\theta=X_b^Ty \tag{4} ]

假设(X^TX)可逆,则:

[\hat{\theta}=(X_b^TX_b)^{-1}X_b^Ty \tag{5} ]

相应的:

[\hat{y} =X_b(X_b^TX_b)^{-1}X_b^Ty \tag{6} ]

在以上求解过程中,如果:

针对以上问题,可以考虑使用梯度下降法来求参数,下面代码演示:

import numpy as np
def get_data(theta_true,N):
    X=np.random.normal(size=(N,len(theta_true)))
    Y=X@theta_true+np.random.normal(size=(N))
    return (X,Y)
def loss(X,Y,theta):
    return np.sum(X@theta-Y)
def loss_dtheta(X,Y,theta):
    return X.T@(X@theta-Y)
def SGDLinerModel(X,Y,theta_init,lr=0.01,error=1e-11,maxIter=10000):
    theta=theta_init
    for iter in range(0,maxIter):
        dtheta=loss_dtheta(X,Y,theta)
        new_theta=theta-lr*dtheta
        if(np.abs(loss(X,Y,theta)-loss(X,Y,new_theta))

Original: https://www.cnblogs.com/bestwangyulu/p/16390656.html
Author: Wang-YL
Title: 4.多元线性回归

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683570/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • What is a M3U file?

    What is a M3U file? M3U (MP3 URL) is an audio playlist file stored with the .m3u extension…

    技术杂谈 2023年6月21日
    094
  • 面试被问怎么排查平时遇到的系统CPU飙高和频繁GC,该怎么回答?

    对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种…

    技术杂谈 2023年5月31日
    096
  • ThreeJS简介介绍

    Three.js的学习问题 Three.js的入门是相对简单的,但是当我们真的去学的时候,会发现一个很尴尬的问题:相关的学习资料很少。通常这种流行的库都有很完善的文档,很多时候跟着…

    技术杂谈 2023年5月31日
    0159
  • 导航规划之CH算法介绍

    1 CH算法的基本原理 CH(Contraction Hierarchies)算法是 Robert Geisberger、Peter Sanders、Dominik Schulte…

    技术杂谈 2023年5月31日
    0148
  • 开发,从未如此清晰

    关于开发,我们已经有了太多的方法论和工具,这之间其实很难说哪个方法论是正确的,哪个工具是最好用的;其实开发是”任性的”,它没有定律,如人饮水冷暖自知,其过程…

    技术杂谈 2023年5月31日
    0132
  • C/C++宏定义讲解

    宏 define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. 使用宏时是简单的代码段替换. #define的…

    技术杂谈 2023年7月24日
    0103
  • Appium知多少

    Appium我想大家都不陌生,这是主流的移动自动化工具,但你对它真的了解么?为什么很多同学搭建环境时碰到各种问题也而不知该如何解决。 appium为什么英语词典查不到中文含义? a…

    技术杂谈 2023年5月31日
    0110
  • 链表算法题解题技巧归纳总结

    最近集中刷了一批链表的题型,在这里总结一下解题技巧,以及对应题目的解题思路。 解题思路并不会细致入微,主要是为了总结归类,并且希望用几句话来激发灵感,权当是没思路时的指引以及以后复…

    技术杂谈 2023年7月25日
    0100
  • 统计数组中的元素

    1.1 统计元素出现的次数 为了统计元素出现的次数,我们肯定需要一个 map来记录每个数组以及对应数字出现的频次。这里 map的选择比较有讲究: 可参考代码: for(int i …

    技术杂谈 2023年6月21日
    0103
  • context.WithValue context.WithTimeout

    func tctx() { f := func() context.Context { ctx := context.TODO() ctx = context.WithValue(…

    技术杂谈 2023年5月30日
    0106
  • AWS产品目录

    Loading 计算 Amazon EC2:弹性虚拟机 AWS Batch:批处理计算 Amazon ECR:Docker容器管理 Amazon ECS:高度可扩展的快速容器管理服…

    技术杂谈 2023年5月30日
    095
  • Java轻松实现,每天给对象发情话!

    一、引言 最近看到一篇用js代码实现表白的文章,深有感触。然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞实现思路: 使用HttpClien…

    技术杂谈 2023年7月11日
    0112
  • 装机员教你Win10正式版怎么关闭自动更新

    Win10正式版怎么关闭自动更新?并不是系统所有的补丁更新都可以更新到,最近有个补丁怎么也更新不到,每次开关机都更新失败很是讨厌,那么下面来看看我是怎么关闭Win10系统的自动更新…

    技术杂谈 2023年5月31日
    0127
  • 多项式除和取余

    [F(x)=Q(x)G(x)+R(x) ] 已知(n)次的(F(x))和(m)次(G(x))求商(Q(x))和余数(R(x)),要求(Q(x))次数为(n-m),(R(x))次数小…

    技术杂谈 2023年6月21日
    0114
  • 微信小程序报错:navigateTo:fail can not navigateTo a tabbar page的解决方法

    1.报错截图: 2.报错原因:navigateTo/redirectTo都不能跳转tarBar内的页面注意:app.json文件中的tarBar中注册的pagepath即为tarB…

    技术杂谈 2023年5月31日
    0120
  • Feign和Ribbon的重试机制

    Feign和Ribbon的重试机制 Ribbon的重试机制 配置 ribbon: ReadTimeout: 2000 ConnectTimeout: 2000 MaxAutoRet…

    技术杂谈 2023年5月31日
    0133
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球