简单多元线性回归(梯度下降算法与矩阵法)
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
简单多元线性回归(梯度下降算法与矩阵法)相关推荐
- Excel实现简单多元线性回归
文章目录 1.打开对应数据的Excel文档 2.选择数据栏的数据分析 3.在数据分析中找到回归 4.选择对应的X和Y值.这里X的值是area.bedroom和bathroom.Y值为price. 5. ...
- excel计算二元线性回归_用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例)...
文章目录 1.梯度 2.多元线性回归参数求解 3.梯度下降 4.梯度下降法求解多元线性回归 梯度下降算法在机器学习中出现频率特别高,是非常常用的优化算法. 本文借多元线性回归,用人话解释清楚梯度下降的 ...
- 波士顿房价的三种预测方式(模型预测,最小二乘法,多元线性回归)
首先导入库并避免显示错误FutureWorning import numpy as np import matplotlib.pyplot as plt import pandas as pd imp ...
- python梯度下降法实现线性回归_【机器学习】线性回归——多变量向量化梯度下降算法实现(Python版)...
[向量化] 单一变量的线性回归函数,我们将其假设为:hθ(χ)=θ0+θ1χh_\theta(\chi)=\theta_0+\theta_1\chihθ(χ)=θ0+θ1χ但是如果我们的变量个数 ...
- 机器学习基础-多元线性回归-02
矩阵运算 多元线性回归 梯度下降法-多元线性回归 import numpy as np from numpy import genfromtxt import matplotlib.pyplot as ...
- 【机器学习】监督学习--(回归)多元线性回归
注:数据集放在文章末尾 (1)多元线性回归 -- 梯度下降法 port numpy as np from numpy import genfromtxt import matplotlib.pyplo ...
- 多元线性回归—自相关
文章目录 @[toc] 1 什么是自相关 1.1 自相关概念 1.2 自相关产生的原因 1.3 自相关表现形式 2 自相关后果 2.1 对估计参数的影响 2.2 对模型检验的影响 3自相关检验 3.1 ...
- 如何正确理解近似点梯度下降算法
学习笔记,仅供参考,有错必纠 转载自:凸优化笔记19:近似点梯度下降 近似点梯度下降算法 这一部分考虑的问题主要是 minmizef(x)=g(x)+h(x)minmize f(x) = g(x) + ...
- 梯度下降算法动图_一文看懂常用的梯度下降算法
概述 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法.对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的.梯度下降算法背后的原理: ...
最新文章
- poj 3281 Dining 最大流
- hive分隔符_HIVE-默认分隔符的(linux系统的特殊字符)查看,输入和修改
- 常用正则表达式,来自新浪微博的js
- java 静态代码块_JAVA静态代码块
- codeforces B. Strongly Connected City(dfs水过)
- 使用JavaScript进行数组去重——一种高效的算法
- 人人都可以创造自己的AI:深度学习的6大应用及3大成熟领域
- 关于Redis的常识
- M1 Mac 屏幕截图录像工具:CleanShot X
- 杭电多校HDU 6579 Operation (线性基 区间最大)题解
- ti嵌入式linux设计外包,基于嵌入式Linux的PMP系统设计与实现
- 基于SSM框架开发的社区疫情管理系统 附带详细运行指导视频
- centos7 下载软件包
- 产品设计:《广告设计与创意》
- stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
- linux系统安装文网卫士,360主机卫士 linux版的安装/使用/卸载 方法
- HW-RTOS 概述
- python byte转str,str转byte
- 广州app开发:移动app排行榜出炉
- Svelte 实现 keypress 快捷键功能
热门文章
- ubuntu安装软件依赖
- Android11模拟定位开发,Android 11 中的位置信息更新
- linux修改定时后如何保存文件夹,linux定时任务的一些相关操作汇总
- python 模拟微信浏览器请求_使用Chrome修改user agent模拟微信内置浏览器
- 用php获取header头信息
- 【深度学习】Transformer解决计算机视觉问题(卷中卷)
- 【Network Security!】Banner信息收集
- 算法训练 连续正整数的和 (枚举)
- react不同环境不同配置angular_DevOps 前端项目(angular、vue、react)打包静态资源生成一份Docker镜像支持部署不同环境...
- 2020浙江9月计算机等级考试,浙江2020年9月计算机等级报考具体流程