#线性回归 多项式拟合和正规方程(最小二乘法)

多项式拟合和正规方程

特征点的创建和合并

对于一个特定的问题,可以产生不同的特征点,通过对问题参数的重新定义和对原有特征点的数学处理合并拆分,能够得到更加优秀的特征点。

多项式回归

对于更多更加常见的数学模型,其拟合往往是非线性关系的,这时候就需要考虑引用多项式来进行拟合,如: h ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 h(x)=θ_0+θ_1 x+θ_2 x^2+θ_3 x^3 h(x)=θ0+θ1x+θ2x2+θ3x3

正规方程算法

(最小二乘法)

在微积分中,对于函数 f ( x , y ) f(x,y) f(x,y),其局部最值往往是在 f x = 0 f_x=0 fx=0 f y = 0 f_y=0 fy=0处取得。
因此,对于代价函数 J ( θ ) J(θ) J(θ),求 J ( θ ) J(θ) J(θ)对每一个 θ i θ_i θi的偏导数,令它们都为0,即:
∂ J ( θ ) ∂ θ i = 0   f o r   i = 0 , 1 , 2 , … , n \frac{∂J(θ)}{∂θ_i}=0~for~i=0,1,2,…,n θiJ(θ)=0 for i=0,1,2,,n
称为正规方程(Regular expression)。正规方程提供了一种直接求出最小值的方法,而不需要依赖迭代进行一步一步地运算。

正规方程的矩阵形式

对于数据集 { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) } \{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\} {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}, 其中每一个 x ( i ) x^{(i)} x(i)都是一个向量: x ( i ) = [ x 0 ( i ) x 1 ( i ) . . . x n ( i ) ] x^{(i)}=\begin{bmatrix}x_0^{(i)}\\x_1^{(i)}\\...\\x_n^{(i)}\end{bmatrix} x(i)= x0(i)x1(i)...xn(i)
构建设计矩阵(Design matrix) X = [ ( x ( 1 ) ) T ( x ( 2 ) T . . . ( x ( m ) ) T ] X=\begin{bmatrix}(x^{(1)})^T\\(x^{(2})^T\\...\\(x^{(m)})^T\end{bmatrix} X= (x(1))T(x(2)T...(x(m))T 和值向量 y = [ y ( 1 ) y ( 2 ) . . . y ( m ) ] y=\begin{bmatrix} y^{(1)}\\y^{(2)}\\...\\y^{(m)} \end{bmatrix} y= y(1)y(2)...y(m)
将代价函数转化为矩阵方程的形式,再对其求导,令其等于0,得到代价函数取得最小值时的 θ θ θ
θ = ( X T X ) − 1 X T y θ=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
对比梯度下降算法:
正规方程算法不需要学习率和迭代,但对大规模数量(万数量级以上)的特征点(n),工作效率十分低下。对于一些如分类算法等等更加复杂的算法,正规方程法并不适用于求它们在极值处的θ值。

正规方程的不可逆性

在使用正规方程时,要注意的问题是,如果设计矩阵X不可逆(为奇异矩阵),正规方程会无法使用。

设计矩阵为奇异矩阵的常见情况:

  1. x-I 不满足线性关系
  2. 正在运行的学习算法中,特征点的数量大于样本点的数量(使得 m ≤ n m≤n mn

当设计矩阵X不可逆时,应当尝试删除一些特征点,或者考虑正规化(Regularation)。
但是总体而言,矩阵X不可逆的情况是极少数的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDK 动态代理从入门到掌握

快速入门 本文介绍 JDK 实现的动态代理及其原理,通过 ProxyGenerator 生成的动态代理类字节码文件 环境要求 要求原因JDK 8 及以下在 JDK 9 之后无法使用直接调用 ProxyGenerator 中的方法,不便于将动态代理类对应的字节码文件输出lombok为了使用 Sne…

Linux:docker的网络通信(7)

1.端口映射 端口映射---端口映射机制将容器内的服务提供给外部网络访问 启动容器时,不指定对应的端口,在容器外无法通过网络访问容器内的服务 可随机或指定映射端口范围 -P ---------大写P,开启随机端口 -p 宿主机端口:容器端口…

【java扫盲贴】final修饰变量

引用类型:地址不可变 //Java中的引用类型分为类(class)、接口(interface)、数组(array)和枚举(enum)。//string是特殊的引用类型,他的底层是被final修饰的字…

Python下利用Selenium获取动态页面数据

利用python爬取网站数据非常便捷,效率非常高,但是常用的一般都是使用BeautifSoup、requests搭配组合抓取静态页面(即网页上显示的数据都可以在html源码中找到,而不是网站通过js或者ajax异步加载的),这种类型…

【排序,直接插入排序 折半插入排序 希尔插入排序】

文章目录 排序排序方法的分类插入排序直接插入排序折半插入排序希尔插入排序 排序 将一组杂乱无章的数据按照一定规律排列起来。将无序序列排成一个有序序列。 排序方法的分类 储存介质: 内部排序:数据量不大,数据在内存,无需…

学习笔记-接口测试(postman、jmeter)

一、什么是接口测试 通常做的接口测试指的是系统对外的接口,比如你需要从别的系统来获取到或者同步资源与信息,他们会提供给你一个写好的接口方法供你调用,比如常用的app,用户同步这些在处理数据的时候需要通过接口进行调用。 w…

一文讲透Python函数中的局部变量和全局变量

变量的作用域就是变量能够发挥作用的区域,超出既定区域后就无法发挥作用。根据变量的作用域可以将变量分为局部变量和全局变量。 1.局部变量 局部变量是在函数内部定义并使用的变量,也就是说只有在函数内部,在函数运行时才会有效&#xff0…

Flask SocketIO 实现动态绘图

Flask-SocketIO 是基于 Flask 的一个扩展,用于简化在 Flask 应用中集成 WebSocket 功能。WebSocket 是一种在客户端和服务器之间实现实时双向通信的协议,常用于实现实时性要求较高的应用,如聊天应用、实时通知等,使得开发者可以更…

#zookeeper集群+kafka集群

kafka3.0之前是依赖于zookeeper的。 zookeeper是开源,分布式的架构。提供协调服务(Apache项目) 基于观察者模式涉及的分布式服务管理架构。 存储和管理数据。分布式节点上的服务接受观察者的注册。一旦分布式节点上的数据发生变化&#xf…

【Linux学习】文件描述符重定向缓冲区

目录 九.文件描述符 9.1 文件描述符概念 9.2 文件描述符的分配规则 9.3 重定向 9.3.1 常见的重定向操作 9.3.2 重定向的原理 9.4 缓冲区 9.4.1 缓冲区概念 9.4.2 缓冲区刷新策略 9.4.3 C语言的缓冲区在哪里? 九.文件描述符 9.1 文件描述符概念 在上一篇讲到基础IO时,我们说到…

Java项目学生管理系统二查询所有

学生管理 近年来,Java作为一门广泛应用于后端开发的编程语言,具备了广泛的应用领域和丰富的开发资源。在前几天的博客中,我们探讨了如何搭建前后端环境,为接下来的开发工作打下了坚实的基础。今天,我们将进一步扩展我…

10.0 输入输出 I/O

IO操作主要是指使用Java程序完成输入(Input)、输出(Output)操作。所谓输入是指将文件内容以数据流的形式读取到内存中,输出是指通过Java程序将内存中的数据写入到文件中,输入、输出操作在实际开发中应用较为…

Rust UI开发(5):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)

注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第五篇,前四篇链接: 1、Rust UI开发(一):使用iced构建UI时…

Springboot+vue的客户关系管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的客户关系管理系统(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的客户关系管理系统,采用M&#xff08…

C++学习之继承中修改成员权限细节

看看下面的代码 这是错误的 class A { public:int x 10; }; class B :public A {using A::x;int x 100; };看看函数 class A { public:void fun(){cout << "uuuu" << endl;} }; class B :public A { public:using A::fun;void fun(){cout << …

C++基础——文件操作

文章目录 1 概述2 文本文件2.1 写文件2.1.1 写文件流程2.1.2 文件打开方式 2.2 读文件 3 二进制文件3.1 写文件3.2 读文件 1 概述 程序最基本的操作之一就是文件操作&#xff0c;程序运行时的数据都是临时数据&#xff0c;当程序结束后就不复存在了。通常都是通过文件或其他持…

2000-2021年各省人口密度数据

2000-2021年各省人口密度数据 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;地区、年份、年末常住总人口(万人&#xff09;、面积&#xff08;平方千米&#xff09;、人口密度&#xff08;人/平方千米&#xff09; 3、来源&#xff1a;各省年鉴、统计年鉴、各省统计局…

File类

File 概述 File: 路径 IO流: 传输 路径 相对路径, 绝对路径 File File对象就表示一个路径&#xff0c;可以是文件的路径、也可以是文件夹的路径这个路径可以是存在的&#xff0c;也允许是不存在的 构造方法 代码示例: package FileTest1;import java.io.File;public c…

Verilog 入门(四)(门电平模型化)

文章目录 内置基本门多输入门简单示例 内置基本门 Verilog HDL 中提供下列内置基本门&#xff1a; 多输入门 and&#xff0c;nand&#xff0c;or&#xff0c;nor&#xff0c;xor&#xff0c;xnor 多输出门 buf&#xff0c;not 三态门上拉、下拉电阻MOS 开关双向开关 门级逻辑…

CAN总线学习(STM32的CAN寄存器使用)(笔记二)

CAN总线基础基础知识的文章&#xff1a;CAN总线学习&#xff08;CAN总线基础知识&#xff09;&#xff08;笔记一&#xff09;-CSDN博客 在前面CAN总线基础知识和报文中介绍的是报文内容是比较全面的&#xff0c;STM32在CAN协议的基础上做了一些简单的简化&#xff0c;例如下图…