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

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据

目录

  • 机器学习之线性回归算法预测数据
    • 线性回归算法
      • 概念
      • 理解
      • 算法导入
      • 线性回归模型
      • 参数理解
      • 误差项分析
    • LinearRegression理解
      • 参数理解
      • 返回值
      • 方法
      • 基本格式
    • 预测一元线性回归数据
      • 问题及理解
      • 可视化数据理解
      • 数据预测
    • 预测二元线性回归数据
      • 问题及理解
      • 数据测试
    • 预测多元线性回归数据
      • 问题及理解
      • 数据测试

线性回归算法


概念

线性回归线性回归是利用数理统计中回归分析, 来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

理解

有n个特征数据与数据结果有关,根据历史数据训练出线性回归模型,给定数据,预测结果。自变量为特征数据,因变量为数据结构。

算法导入

from sklearn.linear_model import LinearRegression

线性回归模型

  • 一元线性回归
    公式:
    在这里插入图片描述

  • 多元线性回归
    公式:
    在这里插入图片描述

参数理解

在这里插入图片描述

x可以理解为特征数据,y为要求的结果数据,线性回归只能求回归值,只能是数字结果。

误差项分析

  • 误差项可以省略吗?
    误差项不可省略,误差是必然产生的。并且由于产生了误差项,我们便可以基于误差的特点来进行对线性回归的参数估计的。
  • 误差项有什么特点?
    独立同分布。
    每个样本点都是独立的,在同一个分布函数下。
    例:贷款,每个人与每个间是没有联系的,贷多少钱完全基于你的工资和其他情况是独立的,同分布就是我的这套估计体系是我人民银行的估机体系,也就是说每个样本点是在同一个分布函数下。

LinearRegression理解

查看LinearRegression参数定义

def __init__(self,*,fit_intercept=True,normalize="deprecated",copy_X=True,n_jobs=None,positive=False,)

参数理解

  • fit_intercept:是否有截距(是否过原点)
  • normalize:是否归一化(归一化就是每个数据特征占比相同)
  • copy_X:是否复制x数据
  • n_jobs:任务个数占比CPU(-1代表所有)

一般不用设置,默认就可。

返回值

  • intercept:截距(β0)

(l.intercept_[0],2)

  • coef:系数(也就是β)

(l.coef_[0][0],2),如果有多个系数,更改第二个[0],为相应顺序,索引从0开始,第二个为(l.coef_[0][1],2),。

方法

  • fit(x,y):训练模型,x为特征数据,y为结果
    score(x,y):拟合度,x,y为已知的数据及结果,计算fit()模型与数据的拟合度在[0,1]间,趋于1优,趋于0劣
  • predict([[]数据]):预测数据结果,括号内为二维数组
  • corr():数据相关系数判断,若特征数据与数据结果的相关系数的绝对值为r,则
    • r>=0.8,高度相关
    • 0.5<=r<0.8,中度相关
    • 0.3<=r<0.5,低度相关
    • r<0.3,相关度极弱,可以视为不相关

基本格式

**
l = LinearRegression()
x=特征数据
y=数据结果
l.fit(x,y)
result = l.predict(x1)**
先引用LinearRegression函数,根据历史特征数据和数据结果,训练fit()模型,然后预测x1的回归结果result

预测一元线性回归数据


问题及理解

问题:给广告投入和销售额数据,预测其他广告投入的销售额

特征数据:广告投入
类别标签:销售额
给定的数据:
在这里插入图片描述

可视化数据理解

代码展示:

import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegressiondata = pd.read_csv('data.csv')
co = data.corr()plt.scatter(data.广告投入,data.销售额)
plt.show()

运行结果:
在这里插入图片描述

数据预测

代码展示:

import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegressiondata = pd.read_csv('data.csv')
co = data.corr()plt.scatter(data.广告投入,data.销售额)
plt.show()l = LinearRegression()
# 特征标签
x = data[['广告投入']]
# 回归结果
y = data[['销售额']]
# # 训练模型
l.fit(x,y)
# 拟合度
corr = data.corr()
re = l.predict(x)
sc = l.score(x,y)
# 截距
inte = round(l.intercept_[0],2)
# 系数
coef = round(l.coef_[0][0],2)
res = l.predict([[34]])
print(inte,coef)
print(f'一元线性回归:y={inte}+{coef}*x')
print(f'工资:34,预测:{res}')

运行结果:
相关系数调试查看:在这里插入图片描述
在这里插入图片描述

预测二元线性回归数据

问题及理解

问题:给体重、年龄和血压数据,预测其他体重、年龄的血压

特征数据:体重、年龄
类别标签:血压
给定的数据:

在这里插入图片描述

数据测试

代码展示:

import pandas as pd
from sklearn.linear_model import LinearRegression
data_2 = pd.read_csv('data2.csv', encoding='gbk')
# print(data_2)
co_2 = data_2.corr()
x_2 = data_2[['体重','年龄']]
y_2 = data_2[['血压收缩']]
ll = LinearRegression()
ll.fit(x_2,y_2)
# 预测结果
re_2 = ll.predict(x_2)
# 拟合度
sc_2 = ll.score(x_2,y_2)
# 截距
in_2 = round(ll.intercept_[0],2)
# 系数
coef_2 = round(ll.coef_[0][0],2)
coef_2_2 = round(ll.coef_[0][1],2)
print(in_2,coef_2,coef_2_2)
print(f'二元线性回归:y={in_2}+{coef_2}*x+{coef_2_2}*x2')
# 测试
result = ll.predict([[76,50]])
print(f'体重:70,年龄:50,血压预测:{result}')

运行结果:
在这里插入图片描述

预测多元线性回归数据

问题及理解

问题:给age,sex,bmi,bp,s1,s2,s3,s4,s5,s6和target数据,预测其他age,sex,bmi,bp,s1,s2,s3,s4,s5,s6的target

特征数据:age,sex,bmi,bp,s1,s2,s3,s4,s5,s6
类别标签:target
给定的数据:
在这里插入图片描述

数据测试

代码展示:

import pandas as pd
from sklearn.linear_model import LinearRegression
tdata = pd.read_csv('tnb.csv')
# age,sex,bmi,bp,s1,s2,s3,s4,s5,s6,target
# 拟合度
corr = tdata.corr()
l = LinearRegression()# 特征数据
x = tdata[["age","sex","bmi","bp","s1","s2","s3","s4","s5","s6"]]
y = tdata[['target']]
l.fit(x,y)
sc = l.score(x,y) #0.51,0.49
print(sc)
inte = round(l.intercept_[0],2)
# 系数
coef1 = round(l.coef_[0][0],2)
coef2 = round(l.coef_[0][1],2)
coef3 = round(l.coef_[0][2],2)
coef4 = round(l.coef_[0][3],2)
coef5 = round(l.coef_[0][4],2)
coef6 = round(l.coef_[0][5],2)
coef7 = round(l.coef_[0][6],2)
coef8 = round(l.coef_[0][7],2)
coef9 = round(l.coef_[0][8],2)
coef10 = round(l.coef_[0][9],2)
#0.0380759064334241,0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052
re = l.predict([[0.0380759064334241,0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052]])
print(f'预测:{re}')
print(f'线性回归:y={inte}+{coef1}*x1+{coef2}*x2+{coef3}*x3+{coef4}*x4+{coef5}*x5+{coef6}*x6+{coef7}*x7+{coef8}*x8+{coef9}*x9+{coef10}+*x10')

运行结果:

在这里插入图片描述

相关文章:

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据 目录 机器学习之线性回归算法预测数据线性回归算法概念理解算法导入线性回归模型参数理解误差项分析 LinearRegression理解参数理解返回值方法基本格式 预测一元线性回归数据问题及理解可视化数据理解数据预测 预测二元线性回归数据问题及理解数…...

Python | 如何在Matplotlib中仅绘制热图的上/下三角形

热图是一种强大的可视化工具&#xff0c;用于以矩阵格式表示数据&#xff0c;其中各个值由颜色表示。它们对于可视化相关矩阵特别有用&#xff0c;其中矩阵的对称性质使得显示上下三角形变得多余。本文将指导您使用Matplotlib&#xff08;Python中流行的绘图库&#xff09;仅绘…...

Leetcode经典题20--长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 输入输出示例 输入&…...

【计算机视觉】超简单!维纳滤波的经典案例

Hey小伙伴们&#xff01;今天来给大家分享一个 计算机视觉 中非常经典且实用的技术——维纳滤波&#xff08;Wiener Filter&#xff09;。维纳滤波是一种基于最小均方误差准则的滤波方法&#xff0c;广泛应用于图像去噪、模糊恢复等领域。它不仅可以有效去除图像中的噪声&#…...

【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!

添加图片注释,不超过 140 字(可选) 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存! 大家好,我是Jimmy。反推提示词的节点有很多,像Florence2 、Joycaption2、喵手等。都是非常优秀的。但是呢,就是占用设备资源,加…...

AE Dressler CESAR 1312 Generator Model User Manual

AE Dressler CESAR 1312 Generator Model User Manual...

【513. 找树左下角的值 中等】

题目&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 提示: 二叉树的节点个数的范围是 …...

网络通信的瑞士军刀:Python socket库全解析

文章目录 网络通信的瑞士军刀&#xff1a;Python socket库全解析背景库介绍安装与重要性简单库函数使用方法场景应用常见Bug及解决方案总结 网络通信的瑞士军刀&#xff1a;Python socket库全解析 背景 在现代编程中&#xff0c;网络通信是不可或缺的一部分。无论是构建客户端…...

【笔记️】魔爪 Mini mx 使用快捷键

B站教程地址&#xff1a;MOZA魔爪的个人空间-MOZA魔爪个人主页-哔哩哔哩视频 1、开关键: 单击 → 开启录制/拍照 → 再次单击结束&#xff1b;休眠时,单击晚醒 双击 → 切换拍照/录制模式 三击 → 切换横竖拍 长按 → 关机 2、变焦键: 单击 → 切换航向俯仰跟随模式 ( 开机默…...

去除 el-input 输入框的边框(element-ui@2.15.13)

dgqdgqdeMac-mini spid-admin % yarn list --pattern element-ui yarn list v1.22.22 └─ element-ui2.15.13 ✨ Done in 0.23s.dgqdgqdeMac-mini spid-admin % yarn list vue yarn list v1.22.22 warning Filtering by arguments is deprecated. Please use the pattern opt…...

Vue中的一些用法

一、验证规则&#xff1a; 身份证的验证规则&#xff1a; 电话号码的验证规则&#xff1a; 二、选中一项后禁用其他选项&#xff1a; data(){ return{ dataForm{ medicalHistory:[] } }, 三、多选框选择后页面中不显示数据&#xff1a; 在表单提交时加 .join(",&…...

异步爬虫之协程的基本原理

我们知道爬虫是 IO 密集型任务&#xff0c;例如使用 requests 库来爬取某个站点&#xff0c;当发出一个请求后&#xff0c;程序必须等待网站返回响应&#xff0c;才能接着运行&#xff0c;而在等待响应的过程中&#xff0c;整个爬虫程序是一直在等待的&#xff0c;实际上没有做…...

Diffusion Transformer(DiT)——将扩散过程中的U-Net换成ViT:近频繁用于视频生成与机器人动作预测(含清华PAD详解)

前言 本文最开始属于此文《视频生成Sora的全面解析&#xff1a;从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等》 但考虑到DiT除了广泛应用于视频生成领域中&#xff0c;在机器人动作预测也被运用的越来越多&#xff0c;加之DiT确实是一个比较大的创新&#xff0c;影响力大&…...

CPT203 Software Engineering 软件工程 Pt.2 敏捷方法和需求工程(中英双语)

文章目录 3. Aglie methods&#xff08;敏捷方法&#xff09;3.1 Aglie methods&#xff08;敏捷方法&#xff09;3.1.1 特点3.1.2 优点3.1.3 缺点3.1.4 原则3.1.5 计划驱动与敏捷方法的对比 3.2 Scrum3.2.1 Scrum roles3.2.2 Scrum Activities and Artifacts3.2.2.1 Product B…...

【Git】-- 在本地执行 git fetch 发生异常

目录 1、现象 2、解决参考 2.1 检查网络连接 2.2 更新 Git 客户端 2.3 更改 GitHub URL 的访问协议 2.4 禁用 SSL 验证&#xff08;临时解决&#xff09; 2.5 检查系统的 CA 证书 2.6 重新克隆仓库 1、现象 在本地执行 $ git fetch upstream 时&#xff0c;抛出以下…...

Apache Doris 创始人:何为“现代化”的数据仓库?

在 12 月 14 日的 Doris Summit Asia 2024 上&#xff0c;Apache Doris 创始人 & PMC 成员马如悦在开场演讲中&#xff0c;围绕“现代化数据仓库”这一主题&#xff0c;指出 3.0 版本是 Apache Doris 研发路程中的重要里程碑&#xff0c;他将这一进展总结为“实时之路”、“…...

高校网络安全存在的问题与对策研究

目 录 摘 要1 第1章 引言2 1.1研究背景2 1.2研究意义2 第2章系统开发的相关技术简介3 2.1 Spring boot框架3 2.2 MySQL简介3 2.3 Vue框架3 2.4 JAVA简介3 第3章 系统需求分析4 3.1可行性分析4 3.1.1技术可行性4 3.1.2运行可行性4 3.1.3经济可行性5 3.2功能需求…...

Redis的数据类型,线程,持久化机制

1. Redis是单线程还是多线程的&#xff0c;为什么&#xff1f; Redis是单线程的&#xff08;传统实现&#xff09; Redis在传统的实现中是单线程的。尽管它处理的任务很多&#xff0c;但它使用单线程来处理所有客户端的请求。这个设计决策有几个关键原因&#xff1a; 简化模型…...

什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例

什么是ondelete cascade ‌ON DELETE CASCADE是数据库中的一种约束&#xff0c;用于自动删除相关的记录‌。具体来说&#xff0c;当一个表中的记录&#xff08;父表&#xff09;被删除时&#xff0c;与其相关的其他表&#xff08;子表&#xff09;中的记录也会被自动删除&…...

Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解

文章目录 概述结构案例实现优缺点及使用场景 概述 享元模式也叫蝇量模式&#xff1a;运用共享技术有效地支持大量细粒度的对象&#xff1b; 常用于系统底层开发&#xff0c;解决系统的性能问题。像数据库连接池&#xff0c;里面都是创建好的连接对象&#xff0c;在这些连接对象…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...