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

相关文章
|
5天前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
6天前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
13天前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
88 5
|
1月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
144 26
|
1月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
106 0
|
1月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
145 0
|
1月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
201 4
|
1月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
259 4
|
1月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
164 3
|
1月前
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
104 4

推荐镜像

更多