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

相关文章
|
10天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
139 55
|
24天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
26天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
126 67
|
26天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
117 61
|
20天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
109 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2天前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
41 20
|
26天前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
|
26天前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
1月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
29天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势