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

基于python向量机算法的数据分析与预测

3.1 数据来源信息

该数据集来源于Kaggle网站,数据集中包含了罗平菜籽油的销售数据每行数据对应一条记录,记录了罗平菜籽油销售数据。其中,菜籽产量、菜籽价格和菜籽油价格是数值型数据,共2486条数据。

通过读取Excel文件并进行数据预处理,本文可以利用这些数据来进行罗平菜籽油销售数据的分析和预测。部分数据如下图3-1所示:

图3-1数据详情

3.2数据预处理

数据预处理的目的是清洗和准备数据,使其适用于后续的分析和建模。通过删除缺失值和异常值,可以提高数据的质量和准确性,避免错误的影响。而标准化则可以消除不同特征之间的尺度差异,使得模型能够更好地对特征进行学习和预测。通过这些数据预处理方法,本文可以得到更加干净、准确和可靠的罗平菜籽油销售数据集,为后续的分析和建模奠定基础。数据预处理阶段使用了以下几个方法来处理罗平菜籽油销售数据。

缺失值处理,通过使用统计空值方法检查每个字段是否存在缺失值,并使用dropna()方法删除包含缺失值的行。这样可以确保数据的完整性和准确性,避免在后续分析中对缺失值进行处理时引入偏差。异常值处理,首先计算每个字段的均值和标准差,然后根据均值加减3倍标准差的范围确定异常值的上下界,将超出该范围的数据点删除。这样可以有效去除异常值的影响,使得后续分析更加稳定和可靠。数据标准化,使用标准化函数对特征进行标准化处理,将菜籽产量和菜籽价格的数据进行归一化,消除不同特征之间的尺度差异。同时,将菜籽油价格转换为千克单位,以便更好地适应实际应用场景。标准化可以使得数据具有零均值和单位方差,使得模型训练过程更加稳定且更容易收敛。

3.2.1缺失值处理

使用统计空值方法检测每个字段是否存在缺失值。该方法返回一个布尔型的一维对象,其中缺失值对应的位置为True,非缺失值对应的位置为False。

使用删除空值方法删除包含缺失值的行。该方法会删除数据集中存在缺失值的所有行,并在原数据集上进行修改,即对数据集进行了操作。缺失值处理前如下图3-2:

图3-2缺失值处理前

通过这些步骤,可以实现对数据集中缺失值的处理。首先,通过检测每个字段是否存在缺失值,可以了解到数据集中哪些字段存在缺失值。然后,使用删除空值方法,将包含缺失值的行从数据集中删除,以保证数据的完整性和准确性。

3.2.2异常值处理

通过循环遍历数据集的每一列,获取列名列表。对于每一列,首先计算其均值和标准差,使用平均值和标准差方法来计算,确定异常值的上下界。根据均值加减3倍标准差的范围,使用循环遍历数据集中的每一行,检查每个字段的取值是否超出了异常值的上下界。如果某个字段的取值超出了上下界,则将该行数据从数据集中删除,使用删除空值方法进行删除操作。

通过重新设置索引,对数据集的索引进行重新排序,以保证索引的连续性和正确性。

通过以上步骤,可以实现对数据集中异常值的处理。具体地,通过计算均值和标准差,确定异常值的上下界,然后遍历数据集中的每一行,检查每个字段的取值是否超过上下界,如果超出则删除该行数据。这样可以有效去除异常值的影响,使得数据更加可靠和准确。异常值处理结果如下图3-4所示:

3.2.3数据标准化

数据标准化的实现包括以下几个步骤:

通过定位列分别获取特征和目标列。这里假设特征列位于数据集的前面,目标列位于最后一列。使用标准化函数创建一个标准化器对象stand。调用标准化器对象的特征进行标准化处理,将其转换为均值为0、方差为1的标准正态分布,同时进行拟合和转换操作。将目标列中的数据进行单位转换,以便更好地适应实际应用场景。在这个例子中,将菜籽油价格从千克转换为吨,即将每个值除以1000。

4.1 SVM模型构建

SVM 模型实现流程图如下图4-1所示:

图4-1模型实现流程

4.1.1 SVM模型构建原理

SVM 模型构建原理:

数据准备:准备罗平菜籽油销售数据集,包括特征(销售量、销售时间等)和目标变量(销售额等)。

特征工程:对数据进行特征选择、处理和转换,确保特征数据符合 SVM 模型的要求。

SVM 模型训练:使用罗平菜籽油销售数据集训练 SVM 模型,选择合适的核函数(如线性核、多项式核或高斯核)。

模型优化:调整 SVM 模型的超参数(如惩罚系数 C、核函数参数等),以获得最佳的模型性能。

模型评估:使用交叉验证等方法评估模型的性能,确保模型具有较好的泛化能力。

4.1.2 SVM模型评价指标

在 SVM 模型中,评价指标包括:准确率(Accuracy):(分类正确的样本数占总样本数的比例。精确率(Precision):预测为正类别且分类正确的样本数占预测为正类别的样本数的比例。召回率(Recall):预测为正类别且分类正确的样本数占实际正类别的样本数的比例。F1 分数(F1 Score):精确率和召回率的调和平均数,综合考虑了模型的准确性和召回性能。

其公式如下:

1准确率(Accuracy)

其中,TP 表示真正例(True Positive)、TN 表示真负例(True Negative)、FP 表示假正例(False Positive)、FN 表示假负例(False Negative)。

2精确率(Precision)

2召回率(Recall)

4F1 分数(F1 Score)

这些评价指标可以帮助评估分类模型的性能,并提供关于模型在正例和负例分类方面的表现的详细信息。综合考虑精确率和召回率可以更全面地评估模型的性能。

4.2模型评估

对模型进行评估的过程如下所示:使用测试集的特征数据进行预测,将预测结果存储变量中。然后,使用一些评估指标来评估模型的性能。包括均方误差、平均绝对误差和决定系数),分别计算了预测结果与实际结果之间的均方误差、平均绝对误差和决定系数。最后,根据评估结果,可以判断模型的拟合效果和预测准确度。均方误差和平均绝对误差越小,表示模型的预测结果与实际结果越接近;决定系数越接近1,表示模型对观测数据的拟合程度越好。评估结果如下图4-2所示:

图4-2评估结果

根据给定的评估结果,可以得出以下结论:

根据罗平菜籽油销售数据的分析结果显示,经过对 SVM 模型进行参数优化后,得到最佳参数组合为 C=0.1、epsilon=0.3、gamma='scale'、kernel='linear',对应的最佳 R² 得分为 0.9849。这意味着该 SVM 模型能够解释目标变量约 98.49% 的销售数据方差,具有较高的预测精度。进一步观察不同参数组合的评估结果发现,线性核函数在不同参数下的 R² 得分普遍较高,而径向基核函数的 R² 得分相对较低。参数 C 和 epsilon 对模型性能影响较小,而参数 gamma 的取值对模型性能有一定影响,较小的 gamma 值会导致模型 R² 得分下降。综合来看,经过优化的 SVM 模型在分析罗平菜籽油销售数据方面表现出色,具有较高的预测准确性和稳定性。最终优化后结果如下图4-3所示:

图4-3优化后结果

根据图4-2中罗平菜籽油销售数据的预测值和测试值的折线对比图,可以得出以下结论:

(1)模型预测值与实际测试值整体趋势一致,说明经过优化的 SVM 模型能够较好地拟合销售数据的变化趋势。

(2)预测值与测试值之间的偏差较小,表明该 SVM 模型在预测罗平菜籽油销售数据时具有较高的准确性和稳定性。

(3)随着时间的推移,预测值与测试值之间的偏差保持在较小的范围内,说明该模型对于未来销售数据的预测具有一定的可靠性和稳定性,为销售预测和决策提供了可靠的参考依据。

相关文章:

基于python向量机算法的数据分析与预测

3.1 数据来源信息 该数据集来源于Kaggle网站,数据集中包含了罗平菜籽油的销售数据,每行数据对应一条记录,记录了罗平菜籽油销售数据。其中,菜籽产量、菜籽价格和菜籽油价格是数值型数据,共2486条数据。 通过读取Exce…...

传输层 --- UDP

一、简述与回顾 传输层:负责数据能够从发送端传输接收端 在TCP/IP协议中,我们用"源IP","源端口号","目的IP","目的端口号",和"协议号"来表示一个通信。…...

图书管理系统(Java版本)

文章目录 前言要求1.设置对象1.1.图书1.2.书架2.管理员3.功能的实现 2.搭建框架2.1.登录(login)2.2.菜单2.3.操作方法的获取 3.操作方法的实现3.1.退出系统(ExitOperation)3.2.显示图书(ShowOperation)3.3.查阅图书(FindOperation)3.4.新增图书(AddOperation)3.5.借出图书(Borr…...

全同态加密生态项目盘点:FHE技术的崛起以及应用

撰文:Chris,Techub News 在当今数字化的时代,隐私保护已成为一个全球性的焦点话题,特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺,引发了广泛的关注和批评&#xff0c…...

山脉数组的峰顶索引 ---- 二分查找

题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…...

【简单介绍下7-Zip,什么是7-Zip?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

SCSS基本使用:构建高效、可维护的CSS架构

SCSS基本使用&#xff1a;构建高效、可维护的CSS架构 SCSS&#xff08;Sassy CSS&#xff09;是一个流行的CSS预处理器&#xff0c;它扩展了CSS的功能&#xff0c;提供了变量、嵌套规则、混合&#xff08;Mixins&#xff09;、函数等强大的编程特性&#xff0c;使得开发者能够编…...

allegro 无法删除Xnet

allegro 无法删除Xnet Orcad中打开Constraint Manager之后&#xff0c;再生成网表&#xff0c;导入PCB后就会出现一堆Xnet网络。无法去除Xnet。 解决办法 在原理图ORCAD中&#xff0c; 1、打开Edit Object properties 2、选择Filter by:Capture 3、点击New Property 4、设置…...

2024年甘肃特岗教师招聘报名流程,速速查收哦!

2024年甘肃特岗教师招聘报名流程&#xff0c;速速查收哦&#xff01;...

【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误

起因&#xff1a;使用huggingface构建一个问答程序时出现的问题。 错误内容&#xff1a; 分析&#xff1a; 查看代码发现&#xff0c;HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决&#xff1a; 安装sentenc…...

C++中的四种类型转换运算符

隐式类型转换是安全的&#xff0c;显式类型转换是有风险的&#xff0c;C语言之所以增加强制类型转换的语法&#xff0c;就是为了强调风险&#xff0c;让程序员意识到自己在做什么。但是&#xff0c;这种强调风险的方式还是比较粗放&#xff0c;粒度比较大&#xff0c;它并没有表…...

k8s 1.28.10 浏览器访问6443查看api,需要证书

添加证书 使用client-certificate-data和client-key-data生成一个p12文件 1.生成client-certificate-data grep client-certificate-data ~/.kube/config | head -n 1 | awk {print $2} | base64 -d >> kubecfg.crt2.生成client-key-data grep client-key-data ~/.kub…...

新火种AI|复旦团队在“冷冻人脑”领域获得重大进展!人工智能是否会对此形成助力?

​在低温医学领域&#xff0c;“冷冻人脑”技术的研究和突破既是重点&#xff0c;也是难点。因为这项技术关乎着人类是否可以取得一个令人瞩目的突破——人类的生命是否能够得到延续。 早几年&#xff0c;诸如“利用人体冷冻技术将身患绝症的病人保存十几年&#xff0c;几十年…...

echarts 散点图修改散点图中图形形状颜色大小

话不多说&#xff0c;直接上代码 let option {color:[xxx, xxx, xxx, xxx], //直接设置color可修改图形颜色title: {text: 散点图图形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…...

SpringBoot3.x + JDK21 整合 Mybatis-Plus

前言 SpringBoot3.0 开始最低要求 Java 17&#xff0c;虽然目前最新的版本为 JDK22&#xff0c;但是在官网上看到 JDK23 在今年9月又要发布了&#xff0c;感觉这 JDK 也有点太过于给力了 所以我们选择用目前的 LTS 版本 JDK21 就好了&#xff0c;不用追求最新的 springboot 版…...

Java类和对象(五)—— 抽象类、接口、Object类和内部类

抽象类 在继承体系下&#xff0c;父类有些方法可能是要被重写的&#xff0c;如果我们事先就知道某些方法需要重写的话&#xff0c;我们可以不用在父类里面具体实现这个方法&#xff0c;这时候我们会用到抽象方法&#xff0c;这时候我们会用到关键字abstract关键字来修饰 publ…...

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知&#xff0c;大型语言模型在小样本上下文学习&#xff08;ICL&#xff09;方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口&#xff0c;为探索其执行 ICL 的能力提供了机会&#xff0c;并提供了更多演示示例。在这项工作中&#xff0c;我…...

汇编:函数以及函数参数传递

汇编语言中的函数&#xff08;或过程&#xff09;是指一段可以被调用和执行的代码块&#xff1b;它们用于组织和重用代码&#xff0c;并使程序结构更加清晰&#xff1b;由于汇编语言没有高层次语言的语法糖&#xff0c;编写和调用函数涉及直接的堆栈操作和寄存器管理&#xff1…...

linux-ftp服务器搭建简介

安装ftp服务器&#xff1a; vsftpd全称为“very secure FTP daemon”&#xff0c;是一个在UNIX类操作系统上运行的服务&#xff0c;可以提供高安全性的FTP服务。 vsftpd是一个免费和开放源代码的FTP服务器软件&#xff0c;它提供了许多其他FTP服务器不支持的特性&#xff0c;例…...

二十一、openlayers官网示例Custom Controls解析——自定义控件扩展Control类

官网demo地址&#xff1a; Custom Controls 这个示例讲的是如何自定义控件 首先创建了一个新的类继承了原本的Control&#xff0c;新增了一个button元素&#xff0c;然后调用了super方法将参数传给了父类。 const button document.createElement("button");button.…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

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)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...