Python实现GA(遗传算法)对SVM分类模型参数的优化

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
简介: Python实现GA(遗传算法)对SVM分类模型参数的优化

说明:这是一个机器学习实战项目(附带数据+代码+文档),如需数据+代码+文档可以直接到文章最后获取。

image.png

image.png

1.需求分析

在国家一系列政策密集出台的环境下,在国内市场强劲需求的推动下,我国家用燃气灶具产业整体保持平稳较快增长。随着产业投入加大、技术突破与规模积累,在可以预见的未来,开始迎来发展的加速期。某电器公司的燃气灶产品销售额一直在国内处于领先地位,把产品质量视为重中之重,每年都要对其产品质量数据进行分析研究,以期不断完善,精益求精。本模型也是基于一些历史数据进行维修方式的建模、预测。

2.数据采集

本数据是模拟数据,分为两部分数据:

数据集:data.xlsx

在实际应用中,根据自己的数据进行替换即可。

特征数据:故障模式、故障模式细分、故障名称、单据类型

标签数据:维修方式

3.数据预处理

1)原始数据描述

image.png

 

2)原始数据文本转换为数值:

 

image.png

 

2)数据完整性、数据类型查看:

image.png

3)数据缺失值个数:

image.png

可以看到数据不存在缺失值。

 

 

4)哑特征处理

特征变量故障模式、故障模式细分、故障名称中的数值为文本类型,不符合机器学习数据要求,需要进行哑特征处理,变为0 1数值。

关键代码如下:

image.png

处理后,数据如下:

image.png

 

4.探索性数据分析

1)特征变量故障分析:

故障分析:在维修记录中不同部件维修数量不同,其中“电极针坏”的数量占比最多,占全部维修记录的64.12%。“热电偶坏”和“电磁阀坏”的占比次之,分别为14.87%和11.29%。

image.png

 

2)特征变量故障模式分析

故障模式又分别细分为5项:“开裂”、“变形”、“老化”、“调整电极针位置”、“热电偶与电磁阀接触不良”

image.png

 

3)相关性分析

image.png

说明:正值是正相关、负值时负相关,值越大变量之间的相关性越强。

 

5.特征工程

1)特征数据和标签数据拆分,y为标签数据,除y之外的为特征数据;

image.png

2)数据集拆分,分为训练集和尝试集,80%训练集和20%验证集;

 

image.png

 

3)数据归一化

image.png

6.机器建模  

1)遗传算法简单介绍:

遗传算法,也叫Genetic Algorithm,简称 GA 算法他既然叫遗传算法,那么遗传之中必然有基因,那么基因染色体(Chromosome)就是它的需要调节的参数。我们在生物中了解到,大自然的法则是“物竞天择,适者生存”,我觉得遗传算法更适用于“优胜劣汰”。

l 优:最优解,

l 劣:非最优解。

遗传算法的实现流程:

image.png

涉及到还是适应度函数、选择、交叉、变异这几个模块。下面就这几个模块展开说明。具体的流程图解释如下:

(1)需要先对初始种群进行一次适应度函数进行计算,这样方便我们对个体进行选择,适应度值越大的越容易被保留;

(2)对群体进行选择,选择出适应度值较大的一部分优势群体;

(3)对优势种群进行 “交配”,更容易产生优秀的个体;

(4)模拟大自然变异操作,对染色体个体进行变异操作;

2)本次机器学习工作流程:

(1)种群数量NIND = 50代表第一代种群先进行50次的模型训练作为50个初始个体,每次训练的[C,G](当然每次训练的C和G还是随机初始化的)就是这个个体的的染色体;

(2)目标函数就是训练集上的分类准确度(当然下面代码用的交叉验证分数,含义其实是一样的);

(3)选择、交叉、变异、进化

(4)最后末代种群中的最优个体得到我们想要的C和Gamma,把这两个参数代入到测试集上计算测试集结果

 

3)应用遗传算法GA得到最优的调参结果

image.png  

编号

名称

1

评价次数:750

2

时间已过 2950.9299054145813 秒

3

最优的目标函数值为:0.9611955168119551

4

最优的控制变量值为:

5

C的值:149.7418557703495

6

G的值:0.00390625

 

最优的空值变量C、G的值,大家在实际数据集过程种可以慢慢尝试。 

 

 

4) 建立支持向量机分类模型,模型参数如下:

 

编号

参数

1

C=C

2

kernel='rbf'

3

gamma=G

 

其它参数根据具体数据,具体设置。

7.模型评估  

1)评估指标主要采用准确率分值、查准率、查全率、F1

 

编号

评估指标名称

评估指标值

1

准确率分值

0.96

2

查准率

95.02%

3

查全率

99.73%

4

F1

97.32%

 

通过上述表格可以看出,此模型效果良好。

 

8.实际应用  

根据测试集的特征数据,来预测这些产品的维修方式。可以根据预测的维修方式类型,进行产品的优化和人员工作的安排。具体预测结果此处不粘贴图片了。

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1zn-fVeI-jamhr4y5lK9Gkw 
提取码:2o6v
相关文章
|
18天前
|
机器学习/深度学习 人工智能 算法框架/工具
使用Python实现深度学习模型:智能家电控制与优化
使用Python实现深度学习模型:智能家电控制与优化
57 22
使用Python实现深度学习模型:智能家电控制与优化
|
29天前
|
算法
基于GA遗传优化的TSP问题最优路线规划matlab仿真
本项目使用遗传算法(GA)解决旅行商问题(TSP),目标是在访问一系列城市后返回起点的最短路径。TSP属于NP-难问题,启发式方法尤其GA在此类问题上表现出色。项目在MATLAB 2022a中实现,通过编码、初始化种群、适应度评估、选择、交叉与变异等步骤,最终展示适应度收敛曲线及最优路径。
|
9天前
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
在数据密集型应用中,高效搜索算法至关重要。Trie树(前缀树/字典树)通过优化字符串处理和搜索效率成为理想选择。本文通过Python实战演示Trie树构建与应用,显著提升搜索性能。Trie树利用公共前缀减少查询时间,支持快速插入、删除和搜索。以下为简单示例代码,展示如何构建及使用Trie树进行搜索与前缀匹配,适用于自动补全、拼写检查等场景,助力提升应用性能与用户体验。
27 2
|
9天前
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
在快速发展的Web开发领域,高性能与高效响应是衡量应用质量的重要标准。随着Python在Web开发中的广泛应用,如何利用Python的协程(Coroutine)与异步函数(Async Functions)特性来优化Web应用的性能,成为了许多开发者关注的焦点。本文将从实战角度出发,通过具体案例展示如何运用这些技术来提升Web应用的响应速度和吞吐量。
12 1
|
13天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
30 4
|
18天前
|
并行计算 算法 Java
优化Python数据处理性能的策略
在数据密集型应用中,Python常因其解释性语言的特性而面临性能瓶颈。本文探讨了提升Python数据处理性能的几种策略,包括优化数据结构的选择、使用高效的库以及应用并行处理技术。通过具体示例和代码演示,读者将了解如何在实际开发中应用这些策略,从而显著提升数据处理速度。
|
18天前
|
存储 并行计算 大数据
优化Python数据处理性能的最佳实践
在数据科学和大数据时代,优化Python数据处理性能变得至关重要。通过探讨数据处理瓶颈、内存管理、并行计算以及高效库的使用,本篇文章旨在提供切实可行的最佳实践,以帮助开发者提升数据处理效率。
|
23天前
|
JSON 监控 数据挖掘
Python I/O管理新篇章:优化你的程序,让数据流动更顺畅
【9月更文挑战第13天】在数据驱动时代,Python因其在数据分析、科学计算及Web开发中的广泛应用而备受青睐。本文探讨了Python I/O管理的关键方面,包括理解I/O瓶颈、使用缓冲技术、并发与异步I/O、高效数据序列化及监控调试。通过具体示例,展示了如何优化文件读写和网络通信,提高程序性能。掌握这些技能,可使数据在程序中流动更加顺畅。
34 3
|
1月前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
|
3天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
下一篇
无影云桌面