Python实现随机分布式延迟PSO优化算法(RODDPSO)优化KMeans聚类模型项目实战

376 篇文章 275 订阅

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




1.项目背景

分布式时滞表现出独特的空间性质,可模拟在特定时间段内通过一定数量的并行通道/路径分布的信号传播延迟。

分布式时间延迟具有以下两个优点:1)更好地利用更长(更多累积)的种群进化历史,导致更好的准确性和2)更复杂的动力学行为导致捕获局部最优的可能性更小。

本项目通过RODDPSO随机分布式延迟PSO优化算法,对KMeans算法求初始的簇心,以达到优化聚类算法的目的。

2.数据获取

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

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

3.数据预处理

真实数据中可能包含了大量的缺失值和噪音数据或人工录入错误导致有异常点存在,非常不利于算法模型的训练。数据清洗的结果是对各种脏数据进行对应方式的处理,得到标准的、干净的、连续的数据,提供给数据统计、数据挖掘等使用。数据预处理通常包含数据清洗、归约、聚合、转换、抽样等方式,数据预处理质量决定了后续数据分析挖掘及建模工作的精度和泛化价值。以下简要介绍数据预处理工作中主要的预处理方法:

3.1用Pandas工具查看数据

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

关键代码:

3.2查看数据集摘要

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

从上图可以看到,总共有150条数据,5个数据项,所有数据中没有缺失值。

关键代码:

3.3数据描述性统计分析

使用Pandas工具的describe()方法查看数据描述性统计分析信息:

通过上图可以看到,总数据量150条,每个数据项的平均值、标准差、最大值、最小值以及分位数值。其中x1平均值为5.84、标准差为0.83、最小值为4.30、最大值为7.90。

关键代码:

4.探索性数据分析

4.1绘制特征与标签的小提琴图

用seaborn工具的violinplot()方法进行绘图,图形化展示如下:

从上面图中可以看到,品种与每个特征之间的数据分布,例如:花萼长度特征,可以看到中位数、最大值、最小值等,品种为山鸢尾的中位数在5左右、品种为杂色鸢尾的中位数为5.5左右、品种为维吉尼亚鸢尾的中位数为6.3左右,以及针对每个品种 花萼长度数据的一个分布情况,其它特征的分析一样,就不一个一个分析。

4.2绘制特征与标签的点图

用seaborn工具的pointplot ()方法进行绘图,图形化展示如下:

从上面图中可以看到,品种与每个特征之间的数据分布,例如:花萼长度特征,可以看到平均值,品种为山鸢尾的平均值在5左右、品种为杂色鸢尾的平均值为5.8左右、品种为维吉尼亚鸢尾的平均值为6.5左右,就不一个一个分析。

4.3生成各特征之间关系的矩阵图

用seaborn工具的pairplot ()方法进行绘图,图形化展示如下:

从上图可以看到,花萼长度越小、花瓣宽度越窄 品种越偏向于山鸢尾;其它特征的分析以此类推。

4.4多维数据线性可视化

用seaborn工具的andrews_curves()方法进行绘图,图形化展示如下:

通过上图可以清晰地看到每一个品种的鸢尾花数据的一个趋势,方便看到是否有异常的数据;本次可以看到无异常的数据。

4.5基于花萼和花瓣做线性回归可视化

用seaborn工具的lmplot()方法进行绘图,图形化展示如下:

通过上图可以看到三种品种鸢尾花的花萼宽度与花萼长度的线性数据分布。

通过上图可以看到三种品种鸢尾花的花瓣宽度与花瓣长度的线性数据分布。

4.6相关性分析

用Pandas工具的corr()方法 matplotlib seaborn进行相关性分析,结果如下:

通过上图可以看到,数据项之间正值是正相关/负值是负相关,数值越大相关性越强;花萼长度与花萼宽度不相关、花萼长度与花瓣长度、花瓣宽度相关性比较大。

5.特征工程

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

x5为标签数据,除x5之外的为特征数据。关键代码如下:

6.构建RODDPSO优化算法优化KMeans聚类模型

主要使用RODDPSO随机分布式延迟PSO优化算法优化KMeans聚类模型,用于目标聚类。

6.1RODDPSO随机分布式延迟PSO优化算法寻优

迭代次数过程:

适应度曲线图:

6.2建模

6.3聚类结果

随机分布式延迟PSO优化KMeans聚类模型散点图:

7.模型评估

7.1评估指标及结果

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

从上表可以看出,RODDPSO随机分布式延迟PSO粒子群优化算法优化KMeans聚类模型准确率为97.33% F1分值为97.33%,模型相当不错。

关键代码如下:

7.2聚类报告

RODDPSO随机分布式延迟PSO粒子群优化算法优化KMeans聚类模型聚类报告:

从上图可以看到,聚类类型为0的F1分值为0.97;聚类类型为1的F1分值为0.96;聚类类型为2的F1分值为0.99;整个模型的准确率为97%。

8.结论与展望

综上所述,本文采用了RODDPSO随机分布式延迟PSO粒子群优化算法优化KMeans聚类模型,最终证明了我们提出的模型效果良好。准确率达到了97%,可用于日常生活中进行建模预测,以提高价值。


# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:

# 链接:https://pan.baidu.com/s/1i3Ca0FiCx01FL8vlzYdLPw 
# 提取码:0c1p

# 用Pandas工具查看数据
print(data_points.head())

# 查看数据集摘要
print(data_points.info())

# 数据描述性统计分析
print(data_points.describe())

# 调用数据分析函数
data_analyse(data_points)

# 建立特征数据和标签数据
clusters = data_points['x5'].values
data_points = data_points.drop(['x5'], axis=1)

# 绘图设置
if plot:
    data_points = data_points[['x1', 'x2', 'x3', 'x4']]

# 转换为二维数组
data_points = data_points.values

dataset = data_points  # 赋值

# 参数初始化 用于更新加速度系数
# 个体认知加速度系数初始值
c1i = 2.5
c1f = 0.5
# 社会认知加速度系数初始值

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖哥真不错

您的鼓励,将是我最大的坚持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值