最小二乘法处理线性回归

最小二乘法是一种数学优化技术,用于查找最适合一组数据点的函数。 该方法主要用于线性回归分析,当然,也可用于非线性问题。

开始之前,我们先理解一下什么是回归。

回归:回归是一种监督学习算法,用于建模和分析两个或多个变量之间的关系。 具体来说,回归分析旨在了解自变量(输入特征)和因变量(输出或目标)之间的关系。 当您有数据点并想要使用一个或多个变量来预测或解释另一个变量时,通常会使用回归分析。

回归有很多中:

  • 线性回归:因变量和自变量之间的关系被建模为线性方程
    y = a x + b y=ax+b y=ax+b

  • 多元线性回归:允许有两个或多个自变量。
    y = a 1 x 1 + a 2 x 2 + ⋯ + a n x n + b y=a 1x 1+a 2x 2+⋯+a nx n+b y=a1x1+a2x2++anxn+b

  • 多项式回归:因变量和自变量之间的关系被建模为多项式方程。

y = a 1 x 2 + a 2 x + b y=a 1x 2+a 2x+b y=a1x2+a2x+b

  • 逻辑回归、岭回归、决策树回归、随机森林回归等等…

由于一些问题,这里我们只从简单的线性回归开始。 如果还有其他疑问,或者想了解更多内容,欢迎评论。

简单线性方程公式如下:

y = a x + b y=ax+b y=ax+b

其中:

  • y 是因变量
  • x 是自变量
  • a 是斜率
  • b 是截距

x 和 y 是我们已知的值。 当我们找到a和b的值时,我们可以将它们带入公式来解决线性回归问题。

要求斜率和截距的值,可以使用最小二乘法来计算。

最小二乘法求解a、b公式如下:

a = n ( ∑ x y ) − ( ∑ x ) ( ∑ y ) n ( ∑ x 2 ) − ( ∑ x ) 2   a = \frac{n(\sum xy) - (\sum x)(\sum y)}{n(\sum x^2) - (\sum x)^2} \ a=n(x2)(x)2n(xy)(x)(y) 

b = ∑ y − a ∑ x n   b = \frac{\sum y - a \sum x}{n} \ b=nyax 

其中:

  • ∑ x \sum x x 是 x 值的总和
  • ∑ y \sum y y 是 y 值的总和
  • ∑ x y \sum xy xy 是 x 和 y 的乘积的总和
  • ∑ x 2 \sum x^2 x2 是 x 的平方的总和
  • n n n 是样本数量

假设我们有一堆数据:

a = [[1, 2], [2, 4], [3, 3], [4, 6], [5, 6]]

在这里插入图片描述

让我们使用这些公式来手动计算 a 和 b 的值:

import numpy as np

a = np.array([[1, 2], [2, 4], [3, 3], [4, 6], [5, 6]])
x = a[:, 0]
y = a[:, 1]

n = len(x)

sum_x = np.sum(x)
sum_y = np.sum(y)
sum_x2 = np.sum(x ** 2)
sum_xy = np.sum(x * y)

slope = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x ** 2)
intercept = (sum_y - slope * sum_x) / n

slope, intercept

你可以复制自己尝试一下,或者依此作为参考按照自己的想法手写一个。

得出的值为(1.0, 1.2),所以使用最小二乘法,我们得到拟合直线的斜率 a=1.0 和截距 b=1.2。因此,这条最佳拟合直线的方程是 y = 1.0 x + 1.2 y=1.0x+1.2 y=1.0x+1.2

在这里插入图片描述

有了这个公式,就可以进行预测了,比如我有一个坐标x=10,根据x来预测y的值:

y=1.0*10+1.2 = 11.2

如果你已经准备好了或者想使用现有库,可以:

  • 使用线性回归根据评分预测票房

此外,你也可以尝试搜索更多数据集,比如房价,汽车速度等,完成更多挑战。

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

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

相关文章

MySql时间

一、查询 查询mysql当前时间 SELECT now();查询mysql时区 show variables like%time_zone;二、修改时区 set global time_zone 8:00; (修改mysql全局时区为北京时间,也就是我们所在的东8区,需要root权限) set time_zone 8:0…

销量蹭蹭上涨!亚马逊上这几款宿舍神器火爆了!

一、BedShelfie床边置物架 每年返校季,收纳工具都是最畅销的产品。在亚马逊床头柜热销榜单中,这款产品位居第二。过去一个月里,有1000多名用户购买了这件产品。 二、U Brands磁性干擦日历板 目前,亚马逊上这款产品已经卖到断货。…

自建音乐服务器Navidrome之一

这里写自定义目录标题 1.1 官方网站 2. Navidrome 简介2.1 简介2.2 特性 3. 准备工作4. 视频教程5. 界面演示5.1 初始化页5.2 专辑页 前言 之前给大家介绍过 Koel 音频流服务,就是为了解决大家的这个问题:下载下来的音乐,只能在本机欣赏&…

The remote endpoint was in state [TEXT_FULL_WRITING]

报这个错是因为在websocket接收与发送消息时,资源互抢造成的,有很多帖子说将session锁住, 但是同一个账号多个客户端登陆的时候,session是不同的,所以只能锁住一个session,还是出现这个问题。 解决办法&a…

Go 官方标准编译器中所做的优化

本文是对#102 Go 官方标准编译器中实现的优化集锦汇总[1] 内容的记录与总结. 优化1-4: 字符串和字节切片之间的转化 1.紧跟range关键字的 从字符串到字节切片的转换; package mainimport ( "fmt" "strings" "testing")var cs10086 s…

正则表达式练习

(function() {//#region 定义正则表达式// const reg /前端/g;// ------------test-------------// const res reg.test("学java,找黑马");// console.log(res)// ------------exec--------------// const res reg.exec("学好前端,找黑马"…

【调试经验】Ubuntu22.04 安装和配置MySQL 8.0.34

本文共计1469字,预计阅读时间5分钟 在安装新版本的MySQL到电脑时,按着网上一些教程执行发现错误繁多,最后索性自己摸索并把服务装好了。自己也整理了一下在操作时的笔记,上传上来希望能帮助到大家。 目录 正文 安装MySQL 配置…

串口接收数据-控制LED灯

目标 通过串口接收数据,对数据分析,控制8个LED灯按照设定时间闪烁。 8个LED灯可以任意设计,是否闪烁。闪烁时间按ms计算,通过串口发送,可设置1~4,294,967,296ms,也就是4字节数据协议自拟,有数…

Oracle21C--Windows卸载与安装

卸载方法: (1)WinR,输入services.msc,打开服务,把Oracle相关的服务全部停止运行(重要) (2)WinR,输入regedit,打开注册表,删除Oracle开…

MATLAB中circshift函数转化为C语言

背景 有项目算法使用matlab中circshift函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。 MATLAB中circshift简单介绍 circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。 当A是数组 Bcircshift(A,p);如果…

虚拟世界指南:从零开始,一步步教你安装、配置和使用VMware,镜像ISO文件!

本章目录 CentOS简介镜像下载一、新建虚拟机(自定义)1、进入主页,在主页中点击“创建新的虚拟机”2、点击创建虚拟机创建自己的虚拟机。可以选择自定义3、在“硬件兼容性(H)中选择:Workststion 15.x” ->下一步4、选择“稍后安…

浅析Linux虚拟网络技术

文章目录 概述Tap/tun设备tun/tap的工作机制 Bridge网桥Bridge的工作机制Bridge IP 相关参考 概述 在传统的网络环境中,一台物理主机包含一张或多张网卡,要实现与其它物理主机之间的通信,需要将自身的网卡通过路由器或者交换机连接到外部的物…

Flutter 状态管理引子

1、为了更好地了解状态管理,先看看什么是状态。 在类似Flutter这样的响应式编程框架中,我们可以认为U相关的开发就是对数据进行封装,将之转换为具体的U1布局或者组件。借用Flutter官网的一张图,可以把我们在第二部分做的所有开发…

CSS流光按钮-圆形

主要思路 仅保留一条边框 border-radius 50%drop-shadow动画 animation keyframes 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

【MySQL】用户管理

之前我们一直都使用root身份来对mysql进行操作&#xff0c;但这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理 目录 一、用户 1.1 用户信息 1.2 添加用户 1.3 删除用户 1.4 修改用户密码 二、用户权限 2.1 赋予授权 2.2 回收权限 一、用户 1.1 用户信息…

2023数学建模国赛四天速成计划来啦!(内含大量资料)

大家好呀。高教社杯全国大学生数学建模竞赛&#xff08;下称国赛&#xff09;9.7日下午6点就正式开始了&#xff1a; 在这里给大家带来一个五天的速成计划啦&#xff01;大家可以收藏本文章或者转发到你们队友群哈&#xff0c;此外我还会发放很多资料给大家&#xff0c;注意&am…

12. 自动化项目实战

目录 1. 登录测试 2. 测试首页的帖子列表数不为0 3. 帖子详情页校验 4. 发布帖子 5. 退出登录 自动化项目实施的基本流程如下图所示&#xff1a; 手工测试用例、自动化测试用例。 1. 登录测试 校验登录后主页显示的用户名称和登录时输入的用户名是否相等。 public class…

机器学习——手写数字识别

0、&#xff1a;前言 这篇文章能够帮助你从数据到模型的整个过程实现不过至于安装第三方库等基础问题&#xff0c;本文不涉及&#xff0c;因为确实不难&#xff0c;搜一搜一大把本此实验运行环境为jupyter&#xff0c;当然通过pycharm也是可行的 1、数据&#xff1a; 手写数字…

JVM 判定对象是否死亡的两种方式

引用计数法&#xff1a;&#xff08;脑门刻字法&#xff09;和 可达性分析 引用计数算法 引用计数器的算法是这样的&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一…

volatile 关键字 与 CPU cache line 的效率问题

分析&回答 Cache Line可以简单的理解为CPU Cache中的最小缓存单位。目前主流的CPU Cache的Cache Line大小都是64Bytes。假设我们有一个512字节的一级缓存&#xff0c;那么按照64B的缓存单位大小来算&#xff0c;这个一级缓存所能存放的缓存个数就是512/64 8个。具体参见下…