【机器学习:四、多输入变量的回归问题】

news2025/1/8 11:45:38

多输入变量的回归问题

1. 多元线性回归概述

1.1 单变量线性回归与多变量线性回归的概念区分

  • 单变量线性回归:用于预测一个因变量(输出变量)与单一自变量(输入变量)之间的线性关系。模型形式为:

y = θ 0 + θ 1 x y = \theta_0 + \theta_1x y=θ0+θ1x

  • 多变量线性回归:扩展到多个自变量,模型形式为:

y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n y = \theta_0 + \theta_1x_1 + \theta_2x_2 + \cdots + \theta_nx_n y=θ0+θ1x1+θ2x2++θnxn
或者以向量形式表示:

y = θ T x y = \mathbf{\theta}^T \mathbf{x} y=θTx

其中:

  • θ \mathbf{\theta} θ 是参数向量。
  • x \mathbf{x} x 是特征向量。

1.2 实际应用——房价预测

  • 问题描述:假设我们要预测房屋的价格,影响价格的因素可能包括:

    • 面积(平方米)。
    • 卧室数量。
    • 房屋年龄。
  • 多元回归模型的目标:根据上述多个特征建立线性回归模型,用于预测房价。

2. 向量化表示与优势

2.1 向量化表示

  • 线性回归模型的向量形式
    假设有 m m m 个样本,每个样本有 n n n 个特征,设计矩阵 X \mathbf{X} X 和参数向量 θ \mathbf{\theta} θ 定义如下:

X = [ 1 x 1 , 1 x 1 , 2 … x 1 , n 1 x 2 , 1 x 2 , 2 … x 2 , n ⋮ ⋮ ⋮ ⋱ ⋮ 1 x m , 1 x m , 2 … x m , n ] , θ = [ θ 0 θ 1 ⋮ θ n ] \mathbf{X} = \begin{bmatrix} 1 & x_{1,1} & x_{1,2} & \dots & x_{1,n} \\ 1 & x_{2,1} & x_{2,2} & \dots & x_{2,n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{m,1} & x_{m,2} & \dots & x_{m,n} \end{bmatrix}, \mathbf{\theta} = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} X= 111x1,1x2,1xm,1x1,2x2,2xm,2x1,nx2,nxm,n ,θ= θ0θ1θn

模型预测值:

y = X θ \mathbf{y} = \mathbf{X} \mathbf{\theta} y=Xθ

2.2 向量化的优势

  • 计算效率高:利用矩阵运算可以快速计算多个样本的预测值。
  • 代码简洁:减少循环操作,简化实现。

3. 多元线性回归的优化方法

3.1 梯度下降法

  • 目标:通过最小化损失函数找到最优参数 θ \mathbf{\theta} θ
  • 损失函数

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\mathbf{\theta}) = \frac{1}{2m} \sum_{i=1}^m \left( h_\mathbf{\theta}(\mathbf{x}^{(i)}) - y^{(i)} \right)^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2

  • 梯度下降更新公式

θ : = θ − α ∂ J ( θ ) ∂ θ \mathbf{\theta} := \mathbf{\theta} - \alpha \frac{\partial J(\mathbf{\theta})}{\partial \mathbf{\theta}} θ:=θαθJ(θ)

更新过程向量化为:

θ : = θ − α 1 m X T ( X θ − y ) \mathbf{\theta} := \mathbf{\theta} - \alpha \frac{1}{m} \mathbf{X}^T (\mathbf{X} \mathbf{\theta} - \mathbf{y}) θ:=θαm1XT(Xθy)

  • 其中:

    • α \alpha α 是学习率。
    • m m m 是样本数量。

3.2 正规方程法

  • 目标:通过直接计算闭式解找到参数向量 θ \mathbf{\theta} θ
  • 公式

θ = ( X T X ) − 1 X T y \mathbf{\theta} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y} θ=(XTX)1XTy

  • 特点

    • 无需选择学习率。
    • 计算量较大,尤其是特征数较多时。

4. 总结与比较

方法优点缺点
梯度下降法易于处理大规模数据集;灵活性高需要选择学习率;可能收敛较慢
正规方程法无需调参,计算直接对高维特征敏感,计算复杂度较高

应用建议

  • 当特征数较少时,优先考虑正规方程法。
  • 当样本量大或特征维度高时,选择梯度下降法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VScode】设置代理,通过代理连接服务器

文章目录 VScode编辑器设置代理1.图形化界面1.1 进入proxy设置界面1.2 配置代理服务器 2.配置文件(推荐)2.1 打开setting.json 文件2.2 配置代理 VScode编辑器设置代理 根据情况安装nmap 1.图形化界面 1.1 进入proxy设置界面 或者使用快捷键ctrl , 。…

【HarmonyOS】鸿蒙应用点9图的处理(draw9patch)

【HarmonyOS】鸿蒙应用点9图的处理(draw9patch) 一、前言: 首先在鸿蒙中是不支持安卓 .9图的图片直接使用。只有类似拉伸的处理方案,鸿蒙提供的Image组件有与点九图相同功能的API设置。 可以通过设置resizable属性来设置Resiza…

光伏仿真与设计系统应用架构深度剖析

在光伏产业蓬勃发展的时代背景下,绿虫光伏仿真与设计系统成为推动其高效发展的核心力量。其应用架构涵盖多个关键步骤,每个环节都紧密相扣,共同构建起精准且高效的设计体系。 气象分析作为开篇之笔,起着基石般的重要作用。系统全…

k8s dashboard离线部署步骤

确定k8s版本,以1.23为例。 部署metrics-server服务,最好用v0.5.2。 用v0.6.0,可能会报以下错误: nodekubemaster:~/Desktop/metric$ kubectl top nodes Error from server (ServiceUnavailable): the server is currently unabl…

05-Linux系统编程之进程(下)

一、子进程资源回收 1.概述 在每个进程退出的时候,内核释放该进程所有的资源,包括一些存储在栈区、全局区的数据、打开的文件、占用的内存等。但是仍有一部分信息没有释放,这些信息主要指进程控制块 PCB 的信息(包括进程号、退出…

HDFS异构存储和存储策略

一、HDFS异构存储类型 1.1 冷、热、温、冻数据 通常,公司或者组织总是有相当多的历史数据占用昂贵的存储空间。典型的数据使用模式是新传入的数据被应用程序大量使用,从而该数据被标记为"热"数据。随着时间的推移,存储的数据每周…

【51单片机】02LED流水灯实验

点亮你的LED 一、点亮第一个LED1.GPIO介绍2.P1、P2、P3端口 二、LED实验2.尝试点亮LED3.LED流水灯 一、点亮第一个LED 1.GPIO介绍 这块内容这里可以做简单的了解,与数电知识强相关。后续可以再回过头来学习 GPIO (general purpose input output) 通用输入输出端口…

springboot 集成 etcd

springboot 集成 etcd 往期内容 ETCD 简介docker部署ETCD 前言 好久不见各位小伙伴们,上两期内容中,我们对于分布式kv存储中间件有了简单的认识,完成了docker-compose 部署etcd集群以及可视化工具 etcd Keeper,既然有了认识&a…

云安全相关博客阅读(一)

2024-03-04 Cloudflare announces Firewall for AI 关注问题: 传统的WAF功能能够保护web和api安全,但是随着LLM等AI模型等出现,保护这些AI相关应用等安全是一个新出现的问题虽然AI应用是新的场景,但是以往的攻击方法也能够直接用…

2025年01月07日Github流行趋势

项目名称:khoj 项目地址url:https://github.com/khoj-ai/khoj项目语言:Python历史star数:20105今日star数:363项目维护者:debanjum, sabaimran, MythicalCow, aam-at, shantanuSakpal项目简介:你…

从零手写线性回归模型:PyTorch 实现深度学习入门教程

系列文章目录 01-PyTorch新手必看:张量是什么?5 分钟教你快速创建张量! 02-张量运算真简单!PyTorch 数值计算操作完全指南 03-Numpy 还是 PyTorch?张量与 Numpy 的神奇转换技巧 04-揭秘数据处理神器:PyTor…

【python】matplotlib(radar chart)

文章目录 1、功能描述和原理介绍2、代码实现3、效果展示4、完整代码5、多个雷达图绘制在一张图上6、参考 1、功能描述和原理介绍 基于 matplotlib 实现雷达图的绘制 一、雷达图的基本概念 雷达图(Radar Chart),也被称为蛛网图或星型图&…

数据库环境安装(day1)

网址:MySQL 下载(环境准备): (2-5点击此处,然后选择合适的版本) 1.linux在线YUM仓库 下载/安装: wget https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm rpm -i https://r…

Fabric链码部署测试

参考链接:运行 Fabric 应用程序 — Hyperledger Fabric Docs 主文档 (hyperledger-fabric.readthedocs.io) (2)fabric2.4.3部署运行自己的链码 - 知乎 (zhihu.com) Fabric2.0测试网络部署链码 - 辉哥哥~ - 博客园 (cnblogs.com) 1.启动测试…

数据结构与算法之二叉树: LeetCode 107. 二叉树的层序遍历 II (Ts版)

二叉树的层序遍历 II https://leetcode.cn/problems/binary-tree-level-order-traversal-ii/description/ 描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历&a…

Python插件化开发实战:开发个图片浏览器

在本篇教程中,我将详细介绍如何使用Python开发一个基于插件架构的图片浏览器。这个项目将展示如何实现插件系统、如何处理图片显示,以及如何使用wxPython构建GUI界面。 “C:\pythoncode\pythonplugin\your_project\main_app.py” 项目概述 我们将开发一个具有以下…

根据python代码自动生成类图的实现方法[附带python源码]

概述 利用python库抽象语法树(AST)和类图描述语言(PlantUML),实现自动将python代码生成类图的目的。 环境 windowsvscodepythonplantuml ✒️网上好像大部分都是用Pyreverse库来实现的,但是我实际测试发现只能在一个文件中才能行,当然应该有解决方法…

下载b站高清视频

需要使用的edge上的一个扩展插件,所以选择使用edge浏览器。 1、在edge浏览器上下载 强力视频下载合并 扩展插件 2、在edge上打开b站,登录自己账号(登录后才能下载到高清!!)。打开一个视频,选择自…

flutter 专题二十四 Flutter性能优化在携程酒店的实践

Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年,这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合,大大提高了研发效率。在开发过程中,也遇到了一些性能相关问题和…

UE5 打包要点

------------------------- 1、需要环境 win sdk ,大约3G VS,大约10G 不安装就无法打包,就是这么简单。 ----------------------- 2、打包设置 编译类型,开发、调试、发行 项目设置-地图和模式,默认地图 项目…