AI学习-线性回归推导

线性回归

      • 1.简单线性回归
      • 2.多元线性回归
      • 3.相关概念熟悉
      • 4.损失函数推导
      • 5.MSE损失函数

1.简单线性回归

线性回归:有监督机器学习下一种算法思想。用于预测一个或多个连续型目标变量y与数值型自变量x之间的关系,自变量x可以是连续、离散,但是目标变量y必须连续。类似于初中的一元一次方程y = a + bx。不同的是以前可以根据两组值唯一确定a和b的关系,但是机器学习下这种算法是根据多种数据信息,计算出最优解

方程:
在这里插入图片描述
最优解:所有的样本数据都尽可能的贴合(拟合)到该方程(模型model)上方为最优解。说人话是: 我们根据样本数据,计算出很多的a、b值即为多种模型model,从多种模型中预测值Predicted value)和真实值Actual value)进行比较,误差Error越小的模型即为最优解。我们需要让机器知道什么是最优解的话,需要定义个损失函数Loss函数

字段描述
Actual value真实值,即已知的y
Predicted value预测值,是把已知的×带入到公式里面和猜出来的参数a,b计算得到的
Error误差,预测值和真实值的差距
最优解尽可能的找到一个模型使得整体的误差最小,整体的误差通常叫做损失Loss
Loss函数整体的误差,loss通过损失函数loss function计算得到

Loss 函数

平方均值损失

2.多元线性回归

​ 上面的简单线性回归影响其因素只有一个自变量X,但是在现实生活中影响y的可能有多个因素,所以多元线性回归也就用来解决这些问题。方程为:
在这里插入图片描述

上面写的过于复杂,学过数学矩阵的同学应该清楚:根据下面的图形示意图可以使用矩阵简写处理:
在这里插入图片描述

矩阵简写方程:

在这里插入图片描述

用矩阵表示符合我们机器学习相关编程语言的书写方式,便于使用编程语言实现。

3.相关概念熟悉

特征与维度

特征通常指的是影响结果或目标的一系列变量或因素,这些变量或因素构成了模型的 维度。在给定的例子中,x是由n列组成的,这些列可以看作是特征,它们共同构成了x的维度。这些特征会影响最后的结果y。

中心极限定理与正态分布

中心极限定理告诉我们,大量随机变量的总和会趋近于 正态分布

  • 中心极限定理和线性回归的关系:当使用线性回归对大量数据进行处理时,得到的结果可能会符合正态分布。

中心极限定理为线性回归提供了一个理论基础,而这种正态分布的性质,如平均值和标准差,可以被用来评估模型的性能和解释性

误差

第i个样本实际的值yi等于预测的值yihat加误差Ei,或者公式可以表达为如下
在这里插入图片描述
假定所有的样本的误差都是独立的随机变量,足够多的随机变量叠加之后形成的分布,根据中心极限定理,它服从的就是正态分布。

机器学习中我们假设误差符合均值为0,方差为定值的正态分布

最大似然估计

给定一个概率分布D,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为fD以及一个分布参数0我们可以从这个分布中抽出一个具有n个值的采样 ,利用f_D计算出其似然函数:
在这里插入图片描述
若D是离散分布,f0即是在参数为0时观测到这一采样的概率。若其是连续分布,f0则为x1,x2…xn联合分布的概率密度函数在观测值处的取值。

术语对应的函数术语描述
连续分布概率密度函数连续型随机变量的概率密度函数是一个描述这个随机变量的输出值
离散分布概率质量函数离散型随机变量的概率质量函数是一个描述这个随机变量的输出值

原理:假设样本数据是由某个概率分布生成的(连续分布、离散分布),而这个分布的参数是未知的。最大似然估计的目标是找到那些能使观察值出现的概率最大的参数值。

为啥要了解最大似然估计:上边我们不是假定了误差是符合正态分布的,正态分布又是是连续分布的。如果要求出其中的误差正态分布的相关参数值(均值=0,方差=参数值),则可以通过最大似然估计计算求出。

4.损失函数推导

正态分布的概率密度函数
在这里插入图片描述

误差的概率密度函数

误差是一个均值为0,方差为定值的正态分布,所以将误差带入得出:一条样本的概率密度方程如下:
在这里插入图片描述
误差属于正态分布,而正态分布的相关参数可以通过最大似然估计算出。

正态分布最大总似然数

上述公式我们只是推导出了一条误差的概率密度函数。接下来我们就是要把最大似然函数通过正太分布概率密度函数表达出来

在这里插入图片描述
样本误差服从正态分布也服务互相独立的假设,所以我们可以把上面式子写出连乘的形式概率的公式:

在这里插入图片描述
正态分布最大似然函数
在这里插入图片描述

等于

在这里插入图片描述
引入误差公式
在这里插入图片描述

最终推导出来的误差(正态分布)最大似然函数
在这里插入图片描述

5.MSE损失函数

因为数学的推导过程比较枯燥且晦涩难懂,所以我们先基于目的梳理一遍过程:获取线性回归的最优解即最优特征值。

  1. 线性回归最优解对应最小损失函数
  2. 最小损失函数基于中心极限定理服从正态分布
  3. 正态分布获取其取值的最大概率则基于最大似然函数
  4. 得到误差最大似然函数 最终可以求解其特征值

接下来继续推导MSE损失函数。总似然最大的那一时刻对应的参数 θ当成是要求的最优解!

最大总似然

获取最大总似然函数(连乘):
在这里插入图片描述
引入对数函数

因为log对数函数中,当底大于1的时候是单调递增,获取θ的最大值可以转换为获取loge的最大值(因为使用对数函数后便于简化公式,结果还是一样的) 公式如下:

在这里插入图片描述

基于对数函数的相关运算法则进行继续推导
在这里插入图片描述
在这里插入图片描述

MSE函数
因为前面有个负号,所以最大总似然变成了最小话负号后面的部分。 到这里,我们就已经推导出来了 MSE 损失函数,从公式我们也可以看出来 MSE 名字的来 历,mean squared error也叫做最小二乘
在这里插入图片描述
那么接下来问题就是 什么时候可以使得损失函数最小了。篇幅有限-下一篇对该问题进行求解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/296052.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLynx发布3.0.0版本:带来更流畅便捷的SQL开发体验

作为新一代的一站式数据库管理开发工具, SQLynx自发布上线以来,一直受到广大用户的好评与鼓励。 为了给用户提供更高效、更便捷、更可靠的数据库管理开发体验,SQLynx今日正式发布3.0.0版本,同步在麦聪软件官网上线,全…

通知中心架构:打造高效沟通平台,提升信息传递效率

随着信息技术的快速发展,通知中心架构作为一种关键的沟通工具,正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构? 通知中心架构是指通过集中管…

【零基础学数据结构】顺序表

目录 1.了解数据结构 什么是数据结构? 为什么要进行数据管理? 2.顺序表 顺序表概要解析: ​编辑顺序表的分类: 差别和使用优先度: 1.创建顺序表 1.1顺序表分为静态顺序表和动态顺序表 1.2顺序表的初始化…

【C++STL详解(二)】——string类模拟实现

目录 前言 一、接口总览 二、默认成员函数 1.构造函数 2.拷贝构造 写法一:传统写法 写法二:现代写法(复用构造函数) 3.赋值构造 写法一:传统写法 写法二:现代写法(复用拷贝构造) 4.析构函数 三、…

JVM原理

java 代码执行过程 ● 1.用javac代码编译为class ● 2.装载class ClassLoader ● 3.执行class,包括解释执行和编译执行 内存管理 jvm 内存区域 程序计数器(线程私有) 空间相对比较小,为数不多不会发送OutofMemoryError&#x…

数据文件大小扩容或缩容必备技能

欢迎关注“数据库运维之道”公众号,一起学习数据库技术! 本期将为大家分享“数据文件大小扩容或缩容必备技能” 。 关键词:Resize Datafile、ORA-03297、高水位线 表空间跟数据文件是一对多的关系,数据文件存放到磁盘或ASM磁盘组。当磁盘空间…

OSX-02-Mac OS应用开发系列课程大纲和章节内容设计

本节笔者会详细介绍下本系统专题的大纲,以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图,因为比较重要,在这里再冗余介绍一下。开发Apple公司相关产品的软件时,主要有两个框架…

JavaScript基础(5)之对象的方法和调用

JavaScript基础5之对象的方法和调用 对象对象使用语法属性和访问方法和调用null遍历对象 内置对象Math属性方法 基本数据类型和引用数据类型堆栈空间分配区别:简单类型的内存分配复杂类型的内存分配 对象 对象是 JavaScript 数据类型的一种,之前已经学习…

AI音乐GPT时刻来临:Suno 快速入门手册!

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

回溯算法|78.子集

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {result.push_back(path); // 收集子集&#xff0c;要放在终止添加的上面&#xff0c;否则会漏掉自…

Leaflet使用多面(MultiPolygon)进行遥感影像掩膜报错解决之道

目录 前言 一、问题初诊断 1、山重水复 2、柳暗花明 3、庖丁解牛 4、问题定位 二、解决多面掩膜问题 1、尝试数据修复 2、实际修复 3、最终效果 三、总结 前言 之前一篇讲解遥感影像掩膜实现&#xff1a;基于SpringBoot和Leaflet的行政区划地图掩膜效果实战&#xff0…

Docker实例

华子目录 docker实例1.为Ubuntu镜像添加ssh服务2.Docker安装mysql docker实例 1.为Ubuntu镜像添加ssh服务 (1)访问https://hub.docker.com&#xff0c;寻找合适的Ubuntu镜像 (2)拉取Ubuntu镜像 [rootserver ~]# docker pull ubuntu:latest latest: Pulling from library/ub…

开源大模型AI代理操作系统:像Windows一样,操控AI代理

去年&#xff0c;AutoGPT的出现让我们见识到了AI代理强大的自动化能力&#xff0c;并开创了一个全新的AI代理赛道。但在子任务调度、资源分配以及AI之间协作还有不少的难题。 因此&#xff0c;罗格斯大学的研究人员开源了AIOS&#xff0c;这是一种以大模型为核心的AI代理操作系…

【智能算法】蜜獾算法(HBA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;FA Hashim等人受到自然界中蜜獾狩猎行为启发&#xff0c;提出了蜜獾算法&#xff08;(Honey Badger Algorithm&#xff0c;HBA&#xff09;。 2.算法原理 2.1算法思想 蜜獾以其…

C++重载和模板

重载与模板 函数模板可以被另一个模板或一个普通非模板函数重载。 与往常一样&#xff0c;名字相同的函数必须具有不同数量或类型的参数。 如果涉及函数模板&#xff0c;则函数匹配规则会在以下几方面受到影响&#xff1a; 对于一个调用&#xff0c;其候选函数包括所有模板…

成都欣丰洪泰文化传媒有限公司引领电商新风向

在当今数字化时代&#xff0c;电子商务行业日新月异&#xff0c;竞争激烈。然而&#xff0c;在这股浪潮中&#xff0c;成都欣丰洪泰文化传媒有限公司凭借其独特的战略眼光和创新精神&#xff0c;正引领着电商领域的新浪潮。本文将探讨成都欣丰洪泰文化传媒有限公司如何在激烈的…

C++ //练习 11.12 编写程序,读入string和int的序列,将每个string和int存入一个pair中,pair保存在一个vector中。

C Primer&#xff08;第5版&#xff09; 练习 11.12 练习 11.12 编写程序&#xff0c;读入string和int的序列&#xff0c;将每个string和int存入一个pair中&#xff0c;pair保存在一个vector中。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#x…

Linux简单介绍

Linux简单介绍 编译器VMware虚拟机Ubuntu——LinuxOS为什么使用LinuxOS&#xff1f; 目录结构Windows目录结构Linux操作系统home是不是家目录&#xff1f; Linux常用命令终端命令行提示符与权限切换命令tab 作用&#xff1a;自动补全上下箭头pwd命令ls命令mkdir命令touch命令rm…

笔记: JavaSE day15 笔记

第十五天课堂笔记 数组 可变长参数★★★ 方法 : 返回值类型 方法名(参数类型 参数名 , 参数类型 … 可变长参数名){}方法体 : 变长参数 相当于一个数组一个数组最多只能有一个可变长参数, 并放到列表的最后parameter : 方法参数 数组相关算法★★ 冒泡排序 由小到大: 从前…

Docker之ruoyi-vue项目部署

文章目录 创建自定义网络安装redis安装mysql发布若依项目--后端使用Dockerfile自定义镜像运行容器 nginx 创建自定义网络 #搭建net-ry局域网&#xff0c;用于部署若依项目 docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1 注意1&#xff1a;关闭宿主…