Python实现哈里斯鹰优化算法(HHO)优化支持向量机分类模型(SVC算法)项目实战

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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



 


1.项目背景


       2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)该算法有较强的全局搜索能力并且需要调节的参数较少的优点。


       本项目通过HHO哈里斯鹰优化算法寻找最优的参数值来优化支持向量机分类模型。


2.数据获取


      本次建模数据来源于网络(本项目撰写人整理而成)数据项统计如下


编号 

变量名称

描述

1

x1

2

x2

3

x3

4

x4

5

x5

6

x6

7

x7

8

x8

9

x9

10

y

因变量


数据详情如下(部分展示)


3.数据预处理

3.1 用Pandas工具查看数据


使用Pandas工具的head()方法查看前五行数据



关键代码


3.2数据缺失查看


使用Pandas工具的info()方法查看数据信息



从上图可以看到总共有10个变量数据中无缺失值共1000条数据。

关键代码


3.3数据描述性统计


通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。



关键代码如下 


4.探索性数据分析

4.1 y变量柱状图


用Matplotlib工具的plot()方法绘制柱状图


4.2 y=1样本x1变量分布直方图


用Matplotlib工具的hist()方法绘制直方图


4.3 相关性分析 


从上图中可以看到数值越大相关性越强正值是正相关、负值是负相关。


5.特征工程

5.1 建立特征数据和标签数据


关键代码如下


5.2 数据集拆分


通过train_test_split()方法按照80%训练集、20%测试集进行划分关键代码如下


6.构建HHO哈里斯鹰优化算法优化支持向量机分类模型


主要使用HHO哈里斯鹰优化算法优化SVC算法用于目标分类。


6.1 算法介绍


     说明HHO算法介绍来源于网络供参考,需要更多算法原理请自行查找资料


算法原理


       哈里斯鹰优化算法是一种模拟哈里斯鹰捕食行为的智能优化算法主要由 3 部分组成搜索阶段、搜索与开发的转换和开发阶段。


搜索阶段


哈里斯鹰随机栖息在某个地方通过2种策略找到猎物



       其中X(t)、X(t+1)分别为分别为当前和下一次迭代式时个体的位置t为迭代次数Xrand(t)  为随机选出的个体位置Xrabbit(t)  为猎物位置即拥有最优适应度的个体位置r1 , r2 r3 r4 q都是[0,1]之间的随机数。q用来随机选择要采用的策略Xm(t)  为个体平均位置表达式为 



其中Xk(t)  为种群中第k个个体的位置M为种群规模。


搜索与开发的转换


HHO 算法根据猎物的逃逸能量在搜索和不同的开发行为之间转换逃逸能量定义为


 


       其中E0 是猎物的初始能量为 [-1,1] 之间的随机数每次迭代时自动更新t为迭代次数T 为最大迭代次数。当|E|≥1 时进入搜索阶段|E|<1当时进入开发阶段。


开发阶段


       定义r为[0,1] 之间的随机数用于选择不同的开发策略。当0.5 ≤ |E| < 1 且r ≥ 0.5 时采取软围攻策略进行位置更新


 


       其中ΔX(t) = Xrabbit(t)  -X(t)表示猎物位置与个体当前位置的差值J为 [0, 2] 之间的随机数。


当|E|<0.5且r ≥ 0.5 时采取硬围攻策略进行位置更新



当0.5 ≤ |E| < 1 且r < 0.5时采取渐近式快速俯冲的软包围策略进行位置更新



      其中f()为适应度函数S为 2 维随机向量元素为[0,1] 之间的随机数LF() 是莱维飞行的数学表达式。


当|E|<0.5且r < 0.5 时采取渐近式快速俯冲的硬包围策略进行位置更新



算法步骤


步骤 1种群初始化。根据搜索空间每一维的上界和下界初始化每个个体。

步骤 2计算初始适应度。将适应度最优的个体位置设为当前猎物位置。

步骤 3位置更新。先通过更新猎物逃逸能量然后根据逃逸能量和生成的随机数执行搜索或开发行为中对应的位置更新策略。

步骤 4计算适应度。计算位置更新后的个体适应度并与猎物适应度值进行比较若位置更新后的个体适应度值优于猎物则以适应度

值更优的个体位置作为新的猎物位置。

重复步骤 3 和步骤 4当算法迭代次数达到最大迭代次数时。输出当前猎物位置作为目标的估计位置。


6.2 HHO哈里斯鹰优化算法寻找最优参数值


关键代码



迭代过程 


最优参数 

6.3 最优参数值构建模型 

编号

模型名称

参数

1

支持向量机分类模型

C= 1.0

2

gamma= 0.09910165345655175

7.模型评估

7.1评估指标及结果


评估指标主要包括准确率、查准率、查全率、F1分值等等。


模型名称

指标名称

指标值

测试集

支持向量机分类模型

准确率

0.9300

查准率

0.9885

查全率

0.8687

F1分值

0.9247


从上表可以看出F1分值为0.9247说明模型效果良好。

关键代码如下


7.2 查看是否过拟合

 


从上图可以看出训练集和测试集分值相当无过拟合现象。


7.3 分类报告


从上图可以看出分类为0的F1分值为0.93分类为1的F1分值为0.92。


7.4 混淆矩阵 


       从上图可以看出实际为0预测不为0的 有13个样本实际为1预测不为1的 有1个样本整体预测准确率良好。  


8.结论与展望


       综上所述本文采用了HHO哈里斯鹰优化算法寻找支持向量机SVC算法的最优参数值来构建分类模型最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。


本次机器学习项目实战所需的资料项目资源如下

项目说明
链接https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ 
提取码thgk 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python