当前位置: 首页 > article >正文

【机器学习】线性回归 多项式线性回归

【机器学习系列】

  • KNN算法
    KNN算法原理简介及要点
    特征归一化的重要性及方式
  • 线性回归算法
    线性回归与一元线性回归
    线性回归模型的损失函数
    多元线性回归
    多项式线性回归

多项式线性回归

    • V1.0
    • 多项式回归
      • 多项式回归的公式
    • 特征代换
    • 超越函数作为特征向量维度

V1.0

多项式回归

多项式回归可以看作多元线性回归模型的特殊版本,经过处理后多项式线性回归可以退化为多元线性回归

多项式回归的公式

多项式回归的公式如下
y = w 0 + w 1 , 1 ∗ x 1 + w 1 , 2 ∗ x 1 2 + . . . + w 1 , d 1 ∗ x 1 d 1 + w 2 , 1 ∗ x 2 + . . . + w n , d n ∗ x n d n y=w_0+w_{1,1}*x_1+w_{1,2}*x_1^2+...+w_{1,d_1}*x_1^{d_1}+w_{2,1}*x_2+...+w_{n,d_n}*x_n^{d_n} y=w0+w1,1x1+w1,2x12+...+w1,d1x1d1+w2,1x2+...+wn,dnxndn
公式中有 n n n元( x 1 . . . x n x_1...x_n x1...xn),每一元最高幂为 d n d_n dn次方。
多项式模回归模型的求解,即是要求最优的模型参数,使得模型的总体损失,比如使用MSE损失函数,对于训练样本最小。

特征代换

怎样求解含幂的特征维度的的参数呢,例如求解 x 1 2 x_1^2 x12 x 1 3 x_1^3 x13的的参数呢。
这里无需多虑,我们的输入数据是多维特征向量(假设 N N N维)是离散的,即数据(特征向量)是一条一条输入(是指不牵扯到连续性)的
例如对于 x 1 2 x_1^2 x12,在处理特征向量时,只需要将其使用 x 1 x_1 x1求平方,代入模型公式,再当成普通的特征维度处理即可,将所有的高次幂都使用这种方法处理,即可得到特征代换后的多元线性回归模型的公式。对于该多元线性回归模型求解,就是对多项式回归模型的求解。
这里需要理解的的重点是对于单一的特征维度,因其各次幂可以求出,且各次幂可以带入到多项式回归公式中,作为普通的一个维度,模型中的高次幂都可以这样处理。
所有的特征向量都可以如此处理,那么整个多项式回归模型就退化为了多元线性回归模型,求解该多元线性回归模型就是求解该多项式回归模型。
使用特征代换之后,得到下式,该式即可当做普通的多元线性回归模型处理,求解该模型得到的参数即为对应的多项式模型的参数
y = w 0 + w 1 , 1 ∗ x 1 , 1 + w 1 , 2 ∗ x 1 , 2 + . . . + w 1 , d 1 ∗ x 1 , d 1 + w 2 , 1 ∗ x 2 , 1 + . . . + w n , d n ∗ x n , d n y=w_0+w_{1,1}*x_{1,1}+w_{1,2}*x_{1,2}+...+w_{1,d_1}*x_{1,d_1}+w_{2,1}*x_{2,1}+...+w_{n,d_n}*x_{n,d_n} y=w0+w1,1x1,1+w1,2x1,2+...+w1,d1x1,d1+w2,1x2,1+...+wn,dnxn,dn
其中
x 1 , 1 = x 1 x_{1,1}=x_1 x1,1=x1
x 1 , 2 = x 1 2 x_{1,2}=x_1^2 x1,2=x12
x 1 , d 1 = x 1 d 1 x_{1,d_1}=x_1^{d_1} x1,d1=x1d1
x 2 , 1 = x 2 x_{2,1}=x_2 x2,1=x2

x k , d = x k d x_{k,d}=x_k^{d} xk,d=xkd(通式)

x n , d n = x n d n x_{n,d_n}=x_n^{d_n} xn,dn=xndn

超越函数作为特征向量维度

对于超越函数,如果一个特征向量的某个维度是超越函数,其跟某另一个特征向量相关,那么也可以用特征代换的方法。
比如 sin ⁡ ( x 1 ) \sin(x_1) sin(x1) 是特征向量中的特征维度。那么如果特征向量中有有 x 1 x_1 x1的维度,则可以使用 x 1 x_1 x1来计算 sin ⁡ ( x 1 ) \sin(x_1) sin(x1)一的值,并将其作为普通的特征维度代入,并使用多元线性回归解法求解即可。

相关文章:

【机器学习】线性回归 多项式线性回归

【机器学习系列】 KNN算法 KNN算法原理简介及要点 特征归一化的重要性及方式线性回归算法 线性回归与一元线性回归 线性回归模型的损失函数 多元线性回归 多项式线性回归 多项式线性回归 V1.0多项式回归多项式回归的公式 特征代换超越函数作为特征向量维度 V1.0 多项式回归 …...

Java面试第二山!《计算机网络》!

在 Java 面试里,计算机网络知识是高频考点,今天就来盘点那些最容易被问到的计算机网络面试题,帮你轻松应对面试,也方便和朋友们一起探讨学习。 一、HTTP 和 HTTPS 的区别 1. 面试题呈现 HTTP 和 HTTPS 有什么区别?在…...

RocketMQ 5.0安装部署

0.前言 在微服务架构逐渐成为主流的今天,消息队列如同数字世界的快递员,承担着系统间高效通信的重要使命。 Apache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余…...

go语言并发的最佳实践

Go 语言的并发模型是其最强大的特性之一,基于 CSP(Communicating Sequential Processes)理论,通过 goroutine 和 channel 实现轻量级并发. 一、并发核心概念 1. Goroutine 在 Go 语言中,Goroutine 是实现并发编程的…...

俄罗斯方块游戏完整代码示例

以下是一个基于Cocos Creator引擎开发的俄罗斯方块游戏的完整代码示例。该游戏实现了俄罗斯方块的基本功能,并且代码整合在单个文件中,无需任何外部依赖,可以直接在浏览器中运行。 1. 创建Cocos Creator项目 首先,确保你已经安装了…...

Ubuntu22.04配置cuda/cudnn/pytorch

Ubuntu22.04配置cuda/cudnn/pytorch 安装cuda官网下载.run文件并且安装/etc/profile中配置cuda环境变量 cudnn安装官网找cuda版本对应的cudnn版本下载复制相应文件到系统文件中 安装pytorch官网找cuda对应版本的pytorchpython代码测试pytorch-GPU版本安装情况 安装cuda 官网下…...

【九】Golang 数组

💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 数组数组初始化默认初始化显式初始化省略长度初始化索…...

百达翡丽(Patek Philippe):瑞士制表的巅峰之作(中英双语)

百达翡丽(Patek Philippe):瑞士制表的巅峰之作 在钟表界,百达翡丽(Patek Philippe) 一直被誉为“世界三大名表”之一,并且常被认为是其中的至高存在。一句“没人能真正拥有一枚百达翡丽&#x…...

【学习】软件测试中的分类树法介绍

分类树法是一种软件测试设计技术,它通过构建一个树状结构来组织和展示输入数据的多种组合。这种方法有助于系统地识别和分析可能的测试情况,从而确保对软件进行全面而详尽的测试。分类树法特别适用于具有多个选择或条件的复杂系统,它可以有效…...

打造智能语料库:通过Coco AI Server 实现 Notion 笔记 RAG 检索功能

本文将详细介绍如何将 Notion 作为语料库,部署 Coco Server 的 RAG(Retrieval-Augmented Generation)功能。我们将使用 Easysearch 作为语料库存储 Notion 素材,并通过 ollama 进行 LLM 推理。 1. 环境准备 1.1 启动 Easysearch…...

SP字体UI放大代码

代码: echo off set QT_SCALE_FACTOR放大倍数 start "" "你的SP.exe启动路径"...

spring boot知识点2

1.spring boot 要开启一些特性,可通过什么方式开启 a.通过Enable注解,可启动定时服务 b.通过application.properties可设置端口号等地址信息 2.什么是热部署,以及spring boot通过什么方式进行热部署 热部署这个概念,我知道。就…...

动手学Agent——Day2

文章目录 一、用 Llama-index 创建 Agent1. 测试模型2. 自定义一个接口类3. 使用 ReActAgent & FunctionTool 构建 Agent 二、数据库对话 Agent1. SQLite 数据库1.1 创建数据库 & 连接1.2 创建、插入、查询、更新、删除数据1.3 关闭连接建立数据库 2. ollama3. 配置对话…...

qt实习总结

创建一个滑动条 QSlider *slider new QSlider(Qt::Vertical); //创建一个垂直方向的 进度条 带有上下箭头的输入框 QSpinBox 提供了一个带有上下箭头的输入框 垂直 水平怎么说 horizontal vetical 布局知识 BtnLayout->addWidget(AmendBtn); BtnLayout->addWidg…...

SpringBoot3.x整合WebSocket

SpringBoot3.x整合WebSocket 本文主要介绍最新springboot3.x下如何整合WebSocket. WebSocket简述 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议&#xff…...

vLLM专题(二):安装-CPU

vLLM 是一个 Python 库,支持以下 CPU 变体。选择您的 CPU 类型以查看供应商特定的说明: Intel/AMD x86 vLLM 最初支持在 x86 CPU 平台上进行基本模型推理和服务,支持的数据类型包括 FP32、FP16 和 BF16。 注意 此设备没有预构建的 wheel 包或镜像,因此您必须从源代码构建 v…...

「软件设计模式」适配器模式(Adapter)

软件设计模式深度解析:适配器模式(Adapter)(C实现) 一、模式概述 适配器模式(Adapter Pattern)是结构型设计模式中的"接口转换器",它像现实世界中的电源适配器一样&#…...

Dify平台搭建面试机器人

无代码搭建面试机器人 什么是Dify 什么是Dify Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能…...

Vue 3 中可读可写的计算属性(Computed Properties)的使用场景

在 Vue 3 中,计算属性(Computed Properties)是一种基于响应式依赖进行缓存的属性。它们通常用于处理复杂的逻辑,并且只有当依赖的响应式数据发生变化时,才会重新计算。计算属性非常适合用于处理模板中的复杂表达式&…...

如何通过AI轻松制作PPT?让PPT一键生成变得简单又高效

如何通过AI轻松制作PPT?让PPT一键生成变得简单又高效!在这个信息化飞速发展的时代,PPT已经成为我们日常工作、学习和生活中不可或缺的一部分。无论是公司会议、学术报告,还是个人展示,PPT的作用都不容忽视。很多人对于…...

从零开始部署DeepSeek:基于Ollama+Flask的本地化AI对话系统

从零开始部署DeepSeek:基于OllamaFlask的本地化AI对话系统 一、部署背景与工具选型 在AI大模型遍地开花的2025年,DeepSeek R1凭借其出色的推理能力和开源特性成为开发者首选。本文将以零基础视角,通过以下工具链实现本地化部署: …...

STM32 CubeMx配置串口收发使用DMA并调用Idle模式(二)

本篇主要结合代码落实,之前串口已经配置好的DMA方式。 一、首先我们把串口看成一个对象,它有属性、私有数据和方法; 每个串口都有名字属性;有初始化、发送、接收方法;还有一个私有数据(这个私有数据是每个…...

使用Redis实现分布式锁,基于原本单体系统进行业务改造

一、单体系统下&#xff0c;使用锁机制实现秒杀功能&#xff0c;并限制一人一单功能 1.流程图&#xff1a; 2.代码实现&#xff1a; Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderSe…...

数据结构中的邻接表

一、概念 邻接表&#xff08;Adjacency List&#xff09;是一种用于表示图&#xff08;Graph&#xff09;数据结构的常用方法。它特别适用于稀疏图&#xff0c;即边的数量远小于顶点数量平方的图。邻接表通过为每个顶点维护一个列表来存储与该顶点相邻的顶点&#xff0c;从而高…...

js第九题

题九&#xff1a;放大镜效果 要求&#xff1a; 1.鼠标移至图片上方&#xff0c;鼠标周围出现黄色的的正方形框&#xff0c;黄色矩形 框会随着鼠标的移动而移动&#xff1b; 2.将黄色正方形框里的内容的长和宽均放大2.4倍&#xff0c;并在图片右边进 行显示。 html <div …...

基于单片机ht7038 demo

单片机与ht7038 demo&#xff0c;三相电能表&#xff0c;电量数据包括电流电压功能&#xff0c;采用免校准方法 列表 ht7038模块/CORE/core_cm3.c , 17273 ht7038模块/CORE/core_cm3.h , 85714 ht7038模块/CORE/startup_stm32f10x_hd.s , 15503 ht7038模块/CORE/startup_stm32…...

轮播图html

题十二&#xff1a;轮播图 要求&#xff1a; 1.鼠标不在图片上方时&#xff0c;进行自动轮播&#xff0c;并且左右箭头不会显示&#xff1b;当鼠标放在图片上方时&#xff0c;停止轮播&#xff0c;并且左右箭头会显示&#xff1b; 2.图片切换之后&#xff0c;图片中下方的小圆…...

Nginx内存池源代码剖析----ngx_create_pool函数

ngx_create_pool 是 Nginx 内存池 的初始化函数&#xff0c;负责创建并初始化一个内存池对象。它的作用是 为后续的内存分配操作提供统一的管理入口&#xff0c;通过预分配一块较大的内存区域&#xff0c;并基于此区域实现高效的内存分配、对齐管理和资源回收。 源代码定义&…...

DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法

近几天DeepSeek开放平台无法充值目前已经关闭状态&#xff0c;大家都是忙着接入DeepSeek模型 &#xff0c;很多人想使用DeepSeek怎么办&#xff1f; 当然还有改用其他平台API调用方法&#xff0c;本文以本站的提供chatgpt系统为例&#xff0c;如何修改DeepSeek-chat模型API接口…...

QT基础一、学会建一个项目

注&#xff1a;因为CSDN有很多付费才能吃到的史&#xff0c;本人对此深恶痛绝&#xff0c;所以我打算出一期免费的QT基础入门专栏&#xff0c;这是QT基础知识的第一期&#xff0c;学会建一个项目&#xff0c;本专栏是适用于c / c基础不错的朋友的一个免费专栏&#xff0c;接下来…...