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

简介: 本文通过数据预处理、标准化和SVM模型构建与优化,对罗平菜籽油销售数据进行分析和预测,使用优化后的SVM模型得到高准确度的销售预测结果,为销售决策提供参考依据。

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)

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

相关文章
|
4天前
|
数据挖掘 计算机视觉 Python
Python数据分析13
Pillow 是 PIL(Python Imaging Library)的升级版本,适应 Python 3 的更新而诞生,带来了诸多新特性。它采用模块化结构,主要包括:图像功能模块(Image)、图像滤波功能模块(ImageFilter)、图像增强功能模块(ImageEnhance)和图像绘画功能模块(ImageDraw)。Pillow 支持从多种图像格式读取数据,进行处理,并能输出为常见格式,其官网提供了丰富的应用示例供学习参考。
16 4
|
11天前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
26 1
|
1天前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
103 64
|
11天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
24 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
2天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【9月更文挑战第33天】本文旨在为初学者提供一个关于使用Python进行数据分析的全面概述。我们将从基本的安装和设置开始,逐步介绍数据处理、数据可视化以及机器学习的基本概念和应用。文章将通过实际代码示例来展示如何使用Python及其相关库来解决常见的数据分析问题。
|
5天前
|
数据挖掘 Serverless 计算机视觉
Python数据分析 11
SciPy是一款专为数学、科学及工程应用设计的开源软件,它基于NumPy的n维数组构建,提供了丰富的数值例程,包括积分、优化、线性代数等,适用于各种操作系统,安装简易且免费。它还包含了如快速傅里叶变换、信号处理、图像处理、特殊函数计算等功能,满足了科学计算与工程需求。相较于NumPy的一般数组,SciPy提供了真正的矩阵及其相关运算支持。
24 7
|
5天前
|
机器学习/深度学习 数据挖掘 算法框架/工具
Python数据分析6
Keras是一个用Python编写的深度学习框架,支持TensorFlow等多种后端,以其高度模块化、用户友好性和易扩展性著称。它不仅适用于搭建普通神经网络,还能够构建自编码器、循环神经网络、卷积神经网络等多种模型,并且可以无缝切换CPU和GPU。相比Theano,Keras极大简化了神经网络模型的搭建过程,使普通用户也能轻松创建复杂的深度学习模型,仅需几十行代码即可完成。需要注意的是,Keras的预测函数采用`model.predict()`输出概率,`model.predict_classes()`输出分类结果。
17 6
|
5天前
|
自然语言处理 搜索推荐 数据挖掘
Python 数据分析10
除了常用的Python数据挖掘建模库外,还有许多其他库也非常实用,例如 jieba、SciPy、OpenCV 和 Pillow 等。其中,jieba 是一个广泛使用的中文分词库,支持多种编程语言,包括 Python、R 和 C++,并且提供了三种分词模式:精确模式、全模式和搜索引擎模式。此外,jieba 还具备词性标注、添加自定义词典及关键词提取等功能,在 GitHub 社区中有较高讨论度,并拥有丰富的实例资源。
18 5
|
6天前
|
数据可视化 数据挖掘 Unix
Python数据分析3
Matplotlib是由约翰·亨特在2008年发明的一款广泛应用于数据可视化的Python工具包,起初用于可视化癞痢病人的健康指标。它是一个功能强大的绘图库,主要擅长二维绘图,也支持简单的三维绘图。Matplotlib提供类似且更丰富的Matlab命令集,能够快速实现数据可视化,并支持高质量图像输出及多种格式。它适用于交互和非交互式绘图,兼容Linux、Windows、macOS和Solaris系统,并且便于嵌入GUI应用及Web框架如CGI、Flask、Django中,同时支持LaTeX公式插入,降低了从Matlab迁移的学习成本。
24 7
|
5天前
|
机器学习/深度学习 数据挖掘 PyTorch
Python数据分析7
PyTorch是由Facebook(现Meta)人工智能研究院于2017年开源的Python机器学习库,基于Torch构建,支持GPU加速和动态神经网络,适用于自然语言处理等领域。其灵活的API和简洁的语法使得构建和调试深度学习模型变得简单快捷,成为深度学习领域的热门工具之一。社区支持广泛,拥有丰富的应用领域库。
12 3
下一篇
无影云桌面