from:https://www.cnblogs.com/shibalang/p/4859645.html

多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做出预测。

对应的模型如下:

n: 特征数量。

一般选取残差平方和最小化作为损失函数,对应为:

M:训练样本数量。

通过最小化代价损失函数,来求得 值,一般优化的方法有两种,第一是梯度下降算法(Gradient Descent),第二种是矩阵法(The normal equations)。

梯度下降算法

给一个初始值,然后逐步的迭代改变的值,是代价损失函数逐次变小,使每次都往梯度下降的方向改变:

表示下降速度。

为了求偏导数,当只有一个样本时,即

即:

当有多个训练样本时,下降梯度算法即为:

由于每次迭代都需要计算所有样本的残差并加和,因此此方法也叫做批下降梯度法(batch

gradient descent),当有大规模数据时,此方法不太适合,可采取它得一个变种,即每次更新权重时,不是计算所有的样本,而是选取其中一个样本进行计算梯度,这个方法叫做随机下降梯度法(stochastic gradient descent):

随机下降梯度法与下降梯度法对比可能收敛更快,但是可能找不到最优点而在最优点附近徘徊。

矩阵求解法

由于梯度下降算法需要多次迭代,并且需要指定下降速率,如果下降速度过快则可能错过最优点,如果过慢则需要迭代多次,因此还可选用矩阵法求解。

首先,需要定义一些用到的线性代数知识:

对于一个函数,表示一个输入mxn的矩阵,输入为一个实数,即输入x为矩阵,则对此函数求导数为:

即对矩阵中每个元素求导,结果也为一个m*n的矩阵。

另外,定义矩阵的迹trace,为矩阵主对角线元素之和:

如果A为实数a,则 tr a=a。

以下是关于矩阵迹的一些性质:

对于多元线性回归,将训练数据的特征作为一个矩阵:

同时将其对应的y值也作为一个矩阵:

因此,

求导数,且:

则:

令上式为0,则

以上即为矩阵法的推导,其中涉及到线性代数的知识没有证明,只要将给定的公式带入求导即可得出此结论。

矩阵法与下降梯度法对比好处是不需要多次迭代,一次计算即可得出精确结果,但当数据量过大时,即设计矩阵X过大时,对矩阵的乘法即求逆有很大计算复杂度,因此此方法适用于小规模数据。另外,用矩阵法时不需要对输入特征数据中心化。

总结

以上就是简单多元线性回归,及其对应的下降梯度算法与矩阵算法,虽然简单,但是其他一些复杂算法的基础。

转载于:https://www.cnblogs.com/bonelee/p/8996304.html

简单多元线性回归(梯度下降算法与矩阵法)相关推荐

  1. Excel实现简单多元线性回归

    文章目录 1.打开对应数据的Excel文档 2.选择数据栏的数据分析 3.在数据分析中找到回归 4.选择对应的X和Y值.这里X的值是area.bedroom和bathroom.Y值为price. 5. ...

  2. excel计算二元线性回归_用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例)...

    文章目录 1.梯度 2.多元线性回归参数求解 3.梯度下降 4.梯度下降法求解多元线性回归 梯度下降算法在机器学习中出现频率特别高,是非常常用的优化算法. 本文借多元线性回归,用人话解释清楚梯度下降的 ...

  3. 波士顿房价的三种预测方式(模型预测,最小二乘法,多元线性回归)

    首先导入库并避免显示错误FutureWorning import numpy as np import matplotlib.pyplot as plt import pandas as pd imp ...

  4. python梯度下降法实现线性回归_【机器学习】线性回归——多变量向量化梯度下降算法实现(Python版)...

    [向量化] 单一变量的线性回归函数,我们将其假设为:hθ(χ)=θ0+θ1χh_\theta(\chi)=\theta_0+\theta_1\chihθ​(χ)=θ0​+θ1​χ但是如果我们的变量个数 ...

  5. 机器学习基础-多元线性回归-02

    矩阵运算 多元线性回归 梯度下降法-多元线性回归 import numpy as np from numpy import genfromtxt import matplotlib.pyplot as ...

  6. 【机器学习】监督学习--(回归)多元线性回归

    注:数据集放在文章末尾 (1)多元线性回归 -- 梯度下降法 port numpy as np from numpy import genfromtxt import matplotlib.pyplo ...

  7. 多元线性回归—自相关

    文章目录 @[toc] 1 什么是自相关 1.1 自相关概念 1.2 自相关产生的原因 1.3 自相关表现形式 2 自相关后果 2.1 对估计参数的影响 2.2 对模型检验的影响 3自相关检验 3.1 ...

  8. 如何正确理解近似点梯度下降算法

    学习笔记,仅供参考,有错必纠 转载自:凸优化笔记19:近似点梯度下降 近似点梯度下降算法 这一部分考虑的问题主要是 minmizef(x)=g(x)+h(x)minmize f(x) = g(x) + ...

  9. 梯度下降算法动图_一文看懂常用的梯度下降算法

    概述 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法.对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的.梯度下降算法背后的原理: ...

最新文章

  1. poj 3281 Dining 最大流
  2. hive分隔符_HIVE-默认分隔符的(linux系统的特殊字符)查看,输入和修改
  3. 常用正则表达式,来自新浪微博的js
  4. java 静态代码块_JAVA静态代码块
  5. codeforces B. Strongly Connected City(dfs水过)
  6. 使用JavaScript进行数组去重——一种高效的算法
  7. 人人都可以创造自己的AI:深度学习的6大应用及3大成熟领域
  8. 关于Redis的常识
  9. M1 Mac 屏幕截图录像工具:CleanShot X
  10. 杭电多校HDU 6579 Operation (线性基 区间最大)题解
  11. ti嵌入式linux设计外包,基于嵌入式Linux的PMP系统设计与实现
  12. 基于SSM框架开发的社区疫情管理系统 附带详细运行指导视频
  13. centos7 下载软件包
  14. 产品设计:《广告设计与创意》
  15. stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
  16. linux系统安装文网卫士,360主机卫士 linux版的安装/使用/卸载 方法
  17. HW-RTOS 概述
  18. python byte转str,str转byte
  19. 广州app开发:移动app排行榜出炉
  20. Svelte 实现 keypress 快捷键功能

热门文章

  1. ubuntu安装软件依赖
  2. Android11模拟定位开发,Android 11 中的位置信息更新
  3. linux修改定时后如何保存文件夹,linux定时任务的一些相关操作汇总
  4. python 模拟微信浏览器请求_使用Chrome修改user agent模拟微信内置浏览器
  5. 用php获取header头信息
  6. 【深度学习】Transformer解决计算机视觉问题(卷中卷)
  7. 【Network Security!】Banner信息收集
  8. 算法训练 连续正整数的和 (枚举)
  9. react不同环境不同配置angular_DevOps 前端项目(angular、vue、react)打包静态资源生成一份Docker镜像支持部署不同环境...
  10. 2020浙江9月计算机等级考试,浙江2020年9月计算机等级报考具体流程