数据挖掘报告-Kmeans算法
kmeans 算法

kmeans 算法K-Means算法,也称为K均值聚类算法,是一种无监督机器学习方法,用于将数据集分成K个簇群。
该算法的核心思想是将数据点划分为不同的簇群,使得同一簇群内的点相似度尽可能高,而不同簇群之间的相似度尽可能低。
该算法可用于许多领域,如计算机视觉、医学图像处理、自然语言处理等。
1.工作原理K-Means算法的工作原理如下:1. 首先,从数据集中随机选择K个点作为初始簇群的中心点。
2. 接下来,计算每个数据点与K个中心点之间的距离,并将它们归入距离最近的簇群中。
这个过程称为“分配”。
3. 在所有数据点都被分配到簇群后,重新计算每个簇群的中心点,即将簇群中所有数据点的坐标取平均值得出新的中心点。
这个过程称为“更新”。
4. 重复执行2-3步骤,直到簇群不再发生变化或达到最大迭代次数为止。
2.优缺点1. 简单易懂,实现方便。
2. 可用于处理大量数据集。
1. 随机初始化可能导致算法无法找到全局最优解。
2. 结果受到初始中心点的影响。
3. 对离群值敏感,可能导致簇群数量不足或簇群数量偏多。
4. 对于非球形簇群,K-Means算法的效果可能较差。
3.应用场景K-Means算法可以广泛应用于许多领域,如:1. 机器学习和数据挖掘:用于聚类分析和领域分类。
2. 计算机视觉:用于图像分割和物体识别。
3. 自然语言处理:用于文本聚类和词向量空间的子空间聚类。
4. 财务分析:用于分析财务数据,比如信用评分和市场分析。
5. 医学图像处理:用于医学影像分析和分类。
总之,K-Means算法是一种简单有效的聚类算法,可用于处理大量数据集、连续型数据、图像和文本等多种形式数据。
但在实际应用中,需要根据具体情况选择合适的簇群数量和初始中心点,在保证算法正确性和有效性的同时,减少误差和提高效率。
聚类算法:K-Means和DBSCAN的比较

聚类算法:K-Means和DBSCAN的比较K-Means和DBSCAN是两种常见的聚类算法,它们在数据挖掘和机器学习领域具有重要的应用价值。
本文将比较这两种算法的优缺点、适用场景等方面,以期帮助读者更好地理解它们的特点和区别。
1. K-Means算法K-Means算法是一种基于距离的聚类算法,它的基本思想是将数据集划分为K个簇,使得每个样本点都属于与其最近的簇。
具体来说,K-Means算法的工作流程如下:(1)随机初始化K个中心点;(2)将每个样本点分配到距离最近的中心点所对应的簇中;(3)更新每个簇的中心点,即将该簇内所有样本点的均值作为新的中心点;(4)重复执行步骤(2)和(3),直到中心点不再发生变化或达到迭代次数上限。
K-Means算法的优点包括实现简单、计算高效等,适用于数据量较大的情况。
但它也存在一些缺点,比如对初始中心点的选择敏感,容易陷入局部最优解,不适用于发现非凸簇等情况。
2. DBSCAN算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法是一种基于密度的聚类算法,它的核心思想是通过样本点的密度来发现聚类簇。
DBSCAN算法的具体步骤如下:(1)以任意顺序选择一个未访问的样本点;(2)计算该样本点的邻域内的样本点个数,若超过预设的阈值,则标记为核心点,否则标记为噪声点;(3)将与核心点密度相连的样本点放入同一个簇中,并继续递归地扩展该簇;(4)重复执行步骤(1)和(2),直到所有样本点都被访问为止。
DBSCAN算法的优点在于可以发现任意形状的簇,并且对噪声数据具有鲁棒性,不受初始参数的影响。
但它也存在一些局限性,比如对密度不同的簇难以处理,对参数的敏感性较强等。
3. K-Means和DBSCAN的比较K-Means和DBSCAN是两种不同的聚类算法,它们在很多方面存在明显的差异。
下面将分别从适用场景、对数据特点的适应性、算法复杂度等方面对它们进行比较。
kmeans算法原理

kmeans算法原理K-Means算法,又叫k均值算法,是一种比较流行的数据聚类算法,它是一种迭代聚类算法,旨在将数据分为K个聚类,每个聚类具有最相似的数据点。
K-Means算法最初被使用于一些研究领域,例如音频处理和图像处理,但是在数据挖掘和机器学习领域中,K-Means 算法也被广泛使用,用于挖掘和识别隐藏的模式和结构,以及比较大型数据集的好处。
K-Means算法的基本原理K-Means算法是一种基于迭代的聚类算法,它利用距离公式将数据集分为k个不同的聚类,每个聚类具有最相似的数据点。
K-Means 算法的基本流程如下:(1)首先,确定数据集中簇的数量K。
(2)然后,将数据集中的每个数据点分配到K个不同的聚类。
(3)最后,按照每个聚类的平均值更新每个聚类的中心点,并将每个数据点根据距离新的聚类中心点的距离重新分配到新的聚类中。
K-Means算法的优点(1)K-Means算法的计算容易,它的时间复杂度较低,可以在大数据集上应用。
(2)可以用来快速对大型数据集进行聚类,可以轻松发现隐藏在数据中的模式和结构。
(3)K-Means算法也可以用来进行压缩,K-Means算法可以确定数据元素的聚类,从而减少数据集的大小。
(4)K-Means算法也可以用来发现预测模型,K-Means可以用来挖掘和识别隐藏的模式和结构,从而发现预测模型。
K-Means算法的缺点(1)K-Means算法为聚类选择的K值敏感,只有当K值适当时,K-Means算法才能得到最佳结果。
(2)K-Means算法在处理非球形数据集时效果不佳,K-Means算法会将数据分配到最近的聚类中心,但是对于非球形数据集来说,最近的聚类中心并不能很好的表示数据。
(3)K-Means算法在选择聚类中心的时候也有一定的局限性,K-Means算法选择的聚类中心受到初始值的影响,因此算法的结果受初始值的影响。
结论K-Means算法可以有效的将大型数据集分割成不同的聚类,是聚类分析中一种最常用的算法。
k-means算法实验报告

.哈尔滨工业大学数据挖掘理论与算法实验报告(2014年度秋季学期).课程编码S1300019C授课教师高宏学生姓名赵天意学号14S101018学院电气工程及自动化学院一、实验内容设计实现 k 均值聚类算法。
二、实验设计随机生成 2 维坐标点,对点进行聚类,进行k=2 聚类, k=3 聚类,多次 k=4 聚类,分析比较实验结果。
三、实验环境及测试数据实验环境: Windows7操作系统,Python2.7 IDLE测试数据:随机生成 3 个点集,点到中心点距离服从高斯分布:集合大小中心坐标半径11005,52 210010,62 31008,102四、实验过程编写程序随机生成测试点集,分别聚成2, 3, 4 类,观察实验结果多次 4 聚类,观察实验结果五、实验结果初始随机点:2聚类迭代 -平方误差1234561337677639634633633聚类中心与类中点数9.06 ,8.291915.05 ,5.011093聚类123456789101112 810692690688686681565385369.4369.8373700 4.99 ,5.05108,7.92 ,10.489310.15 ,6.16994聚类迭代 27次,平方误差 344.897291273 7.95,,10.56904.89,5.001038.41,6.313810.75 ,6.1,469多次4聚类迭代27次平方误差 352.19 4.95 ,5.031069.79 ,6.03937.85 ,10.509012.71 ,8.1611迭代 8 次平方误差356.1910.15 ,6.16997.92 ,10.48935.54 ,5.01674.09 ,5.1041迭代 7 次平方误差352.3510.39 ,6.04874.91 ,4.981038.00 ,10.79797.71 ,7.6931六、遇到的困难及解决方法、心得体会K-Means初值对最终的聚类结果有影响,不同初值,可能会有不同的聚类结果,也就是说, K-Means收敛于局部最优点K-Means趋向于收敛到球形,每类样本数相近K-Means随着k的增加,平方误差会降低,但聚类效果未必变好该例子, 2 聚类误差 633 , 3 聚类 370 ,4 聚类 350 ,可以发现 2 聚类到 3 聚类误差下降较快, 3 到 4 聚类误差下降较慢,所以 3 是最佳聚类个数。
kmeans的聚类算法

kmeans的聚类算法K-means是一种常见的聚类算法,它可以将数据集划分为K个簇,每个簇包含相似的数据点。
在本文中,我们将详细介绍K-means算法的原理、步骤和应用。
一、K-means算法原理K-means算法基于以下两个假设:1. 每个簇的中心是该簇内所有点的平均值。
2. 每个点都属于距离其最近的中心所在的簇。
基于这两个假设,K-means算法通过迭代寻找最佳中心来实现聚类。
具体来说,该算法包括以下步骤:二、K-means算法步骤1. 随机选择k个数据点作为初始质心。
2. 将每个数据点分配到距离其最近的质心所在的簇。
3. 计算每个簇内所有数据点的平均值,并将其作为新质心。
4. 重复步骤2和3直到质心不再变化或达到预定迭代次数。
三、K-means算法应用1. 数据挖掘:将大量数据分成几组可以帮助我们发现其中隐含的规律2. 图像分割:将图像分成几个部分,每个部分可以看做是一个簇,从而实现图像的分割。
3. 生物学:通过对生物数据进行聚类可以帮助我们理解生物之间的相似性和差异性。
四、K-means算法优缺点1. 优点:(1)简单易懂,易于实现。
(2)计算效率高,适用于大规模数据集。
(3)结果可解释性强。
2. 缺点:(1)需要预先设定簇数K。
(2)对初始质心的选择敏感,可能会陷入局部最优解。
(3)无法处理非球形簇和噪声数据。
五、K-means算法改进1. K-means++:改进了初始质心的选择方法,能够更好地避免陷入局部最优解。
2. Mini-batch K-means:通过随机抽样来加快计算速度,在保证精度的同时降低了计算复杂度。
K-means算法是一种常见的聚类算法,它通过迭代寻找最佳中心来实现聚类。
该算法应用广泛,但也存在一些缺点。
针对这些缺点,我们可以采用改进方法来提高其效果。
《数据挖掘实验》---K-means聚类及决策树算法实现预测分析实验报告

实验设计过程及分析:1、通过通信企业数据(USER_INFO_M.csv),使用K-means算法实现运营商客户价值分析,并制定相应的营销策略。
(预处理,构建5个特征后确定K 值,构建模型并评价)代码:setwd("D:\\Mi\\数据挖掘\\")datafile<-read.csv("USER_INFO_M.csv")zscoredFile<- na.omit(datafile)set.seed(123) # 设置随机种子result <- kmeans(zscoredFile[,c(9,10,14,19,20)], 4) # 建立模型,找聚类中心为4round(result$centers, 3) # 查看聚类中心table(result$cluster) # 统计不同类别样本的数目# 画出分析雷达图par(cex=0.8)library(fmsb)max <- apply(result$centers, 2, max)min <- apply(result$centers, 2, min)df <- data.frame(rbind(max, min, result$centers))radarchart(df = df, seg =5, plty = c(1:4), vlcex = 1, plwd = 2)# 给雷达图加图例L <- 1for(i in 1:4){legend(1.3, L, legend = paste("VIP_LVL", i), lty = i, lwd = 3, col = i, bty = "n")L <- L - 0.2}运行结果:2、根据企业在2016.01-2016.03客户的短信、流量、通话、消费的使用情况及客户基本信息的数据,构建决策树模型,实现对流失客户的预测,F1值。
kmeans聚类算法的算法流程

K-means聚类算法是一种经典的基于距离的聚类算法,它被广泛应用于数据挖掘、模式识别、图像分割等领域。
K-means算法通过不断迭代更新簇中心来实现数据点的聚类,其算法流程如下:1. 初始化:首先需要确定要将数据分成的簇的个数K,然后随机初始化K个簇中心,可以从数据集中随机选择K个样本作为初始簇中心。
2. 分配数据:对于每个数据点,计算它与各个簇中心的距离,将该数据点分配给距离最近的簇,并更新该数据点所属簇的信息。
3. 更新簇中心:计算每个簇中所有数据点的均值,将该均值作为新的簇中心,更新所有簇中心的位置。
4. 重复迭代:重复步骤2和步骤3,直到簇中心不再发生变化或者达到预定的迭代次数。
5. 输出结果:最终得到K个簇,每个簇包含一组数据点,形成了聚类结果。
K-means算法的优点在于简单易实现,时间复杂度低,适用于大规模数据;但也存在一些缺点,如对初始聚类中心敏感,对噪声和离裙点敏感,需要事先确定聚类个数K等。
K-means聚类算法是一种常用的聚类方法,通过迭代更新簇中心的方式逐步将数据点划分为不同的簇,实现数据的聚类分析。
通过对算法流程的详细了解,可以更好地应用K-means算法解决实际问题。
K-means算法是一种非常经典的聚类算法,它在数据挖掘和机器学习领域有着广泛的应用。
在实际问题中,K-means算法可以帮助我们对数据进行分组和分类,从而更好地理解数据的内在规律,为我们提供更准确的数据分析和预测。
接下来,我们将对K-means聚类算法的一些关键要点进行探讨,包括算法的优化、应用场景、以及与其他聚类算法的比较等方面。
1. 算法的优化:在实际应用中,K-means算法可能会受到初始簇中心的选择和迭代次数的影响,容易收敛到局部最优解。
有一些改进的方法可以用来优化K-means算法,例如K-means++算法通过改进初始簇中心的选择方式,来减少算法收敛到局部最优解的可能性;另外,Batch K-means算法通过批量更新簇中心的方式来加快算法的收敛速度;而Distributed K-means算法则是针对大规模数据集,通过并行计算的方式来提高算法的效率。
数据挖掘十大算法之K均值聚类算法

数据挖掘⼗⼤算法之K均值聚类算法K均值聚类算法⼀、相异度计算在正式讨论聚类前,我们要先弄清楚⼀个问题:如何定量计算两个可⽐较元素间的相异度。
⽤通俗的话说,相异度就是两个东西差别有多⼤,例如⼈类与章鱼的相异度明显⼤于⼈类与⿊猩猩的相异度,这是能我们直观感受到的。
但是,计算机没有这种直观感受能⼒,我们必须对相异度在数学上进⾏定量定义。
设,其中X,Y是两个元素项,各⾃具有n个可度量特征属性,那么X和Y的相异度定义为:,其中R为实数域。
也就是说相异度是两个元素对实数域的⼀个映射,所映射的实数定量表⽰两个元素的相异度。
下⾯介绍不同类型变量相异度计算⽅法。
1、标量(1)标量也就是⽆⽅向意义的数字,也叫标度变量。
现在先考虑元素的所有特征属性都是标量的情况。
例如,计算X={2,1,102}和Y={1,3,2}的相异度。
⼀种很⾃然的想法是⽤两者的欧⼏⾥得距离来作为相异度,欧⼏⾥得距离的定义如下:其意义就是两个元素在欧⽒空间中的集合距离,因为其直观易懂且可解释性强,被⼴泛⽤于标识两个标量元素的相异度。
将上⾯两个⽰例数据代⼊公式,可得两者的欧⽒距离为:除欧⽒距离外,常⽤作度量标量相异度的还有曼哈顿距离和闵可夫斯基距离,两者定义如下:(2)曼哈顿距离:(3)闵可夫斯基距离:(4)⽪尔逊系数(Pearson Correlation Coefficient)两个变量之间的⽪尔逊相关系数定义为两个变量之间的协⽅差和标准差的商.(其中,E为数学期望或均值,D为⽅差,D开根号为标准差,E{ [X-ux] [Y-uy]}称为随机变量X与Y的协⽅差,记为Cov(X,Y),即Cov(X,Y) = E{ [X-ux] [Y-ux]},⽽两个变量之间的协⽅差和标准差的商则称为随机变量X与Y的相关系数,记为欧⽒距离和曼哈顿距离可以看做是闵可夫斯基距离在p=2和p=1下的特例。
另外这三种距离都可以加权,这个很容易理解。
下⾯要说⼀下标量的规格化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据挖掘课程报告班级 XXXXXX学生姓名 XXXXXX学号 2010100XXXXX指导教师 XXXXXXX日期 2013年10月15日k-means 算法与猫群算法的聚类效果比较分析摘要:本文在聚类个数k 值预先设定的前提下,分别应用了k-means 算法、猫群算法对储层含油性问题进行聚类分析,比较了这两种算法的聚类效果。
实验结果显示:本文所采用的传统的k-means 算法常容易陷入局部最优。
而猫群算法在样本数目较小时(如以表oilsk81为例时),是一种快速、高效的识别算法。
当样本数目翻倍时,受实际算法代码设计的影响,识别的正确率将会下降,这也充分说明了猫群算法的运算效果受代码和样本大小的影响,有较大的不确定性。
关键词:k-means ;猫群算法;聚类分析;1 引言K-means 算法[1]是由J.B. Mac Queen 于1967 年提出的,该算法是一个经典的基于划分的聚类算法,因其算法效率较高,易于其它方法相结合,目前已成为数据挖掘、机器学习、模式识别和数量统计等领域应用最广的聚类算法之一。
近几年来提出了很多的群体智能算法,这些算法都是通过模仿生物界中某些动物的行为演化出来的智能算法[2]。
猫群算法作为群体智能算法之一,具有良好的局部搜索和全局搜索能力[3],算法控制参数较少,通过两种模式的结合搜索,大大的提高了搜索优良解的可能性和搜索效率,较其他算法较容易实现,收敛速度快,具有较高的运算速度,易于其他算法结合。
但也有出现“早熟”现象的弊端[4]。
群体中个体的优化只是根据一些表层的信息,即只是通过适应度值来判断个体的好坏,缺乏深层次的理论分析和综合因素的考虑。
由于猫群算法出现较晚,该算法目前主要应用于函数优化问题[5],故在聚类分析研究方面,很有必要对猫群算法进行深入研究。
传统的k-means 算法与新兴的聚类方法猫群算法相比较会有哪些异同点呢,接下来将具体阐述。
2 算法模型2.1 K-means 算法模型设对n 个m 维样本集进行聚类,n 个样本集表示为12{,,,}n X X X X = ,其中12(,,,)i i i im X x x x = ,聚类成k 个分类表示为12{,,}k C C C C = ,其质心表示为1,1,2,....jj ix C jz X j kn ∈==∑,jn 为jC 中包含的数据点的个数,则聚类的目标是使k 个类满足以下条件:1(,)i jkiji j j x C dx z Min=∈−−→∑∑式中,(,)ij i j d x z 表示计算数据间距离的函数,他可以是不同的度量方式,本文选择欧氏距离度量函数来度量,k 为聚类数目,j z 为j 类样本的聚类中心。
2.1 猫群算法模型 基本流程:猫群算法的基本流程分为以下5步。
具体流程如图1所示。
① 初始化猫群。
② 根据分组率将猫群随机分成搜寻模式和跟踪模式两组。
③ 根据猫的模式标志位所确定的模式进行位置更新,如果猫在搜寻模式下,则执行搜寻模式的行为;否则,执行跟踪模式的行为。
④ 通过适应度函数来计算每一只猫的适应度,记录保留适应度最优的猫。
⑤ 判断是否满足终止条件,若满足则输出最优解,结束程序;否则继续执行步骤 。
3 储层含油性识别问题的聚类分析本文从储层含油性问题入手,以Oilsk81等3口井测井解释成果为例,对储层参数分布特征通过K-means 算法、猫群算法进行了聚类分析,最后与测井原有结果对比,研究比较K-means 算法、猫群算法基于不同数据集以及不同迭代次数的分类准确率。
3.1 样本和指标的选取实验数据来自于江汉油田某区块,该区块有oilsk81等3口井,本文选用的实验数据来分别自于oilsk81、oilsk83、oilsk85井。
其中oilsk81井属性和对应的测井解释结论如表1所示。
表1 oilsk81井测井解释成果表层号 声波(μs/m) 中子 (%) 深测向电阻率 (Ω.m) 孔隙度 (%) 含油饱和度 (%) 渗透率 (mμm 2) 结论1 195 7.5 13.0 6.0 0 0 干层2 225 10.0 7.3 11.0 0 0 水层 3 230 14.0 5.5 12.0 0 0 水层4 220 9.0 25.0 9.0 56 1.3 油层 52258.030.09.0582.3油层 算法开始设定算法参数(如分组率、基因位变化范围等)计算猫的适应度值根据分组率,一部分猫处于搜寻模式,剩下的猫处于跟踪模式判断猫是否处在搜寻模式搜寻模式跟踪模式是否计算适应度值并保留最优解是否满足结束条件?输出最优解,算法结束是否图1 猫群算法的基本流程6 210 7.0 26.0 6.0 0 0 干层7 220 8.0 26.0 10.0 60 2.4 油层8 225 9.0 30.0 10.0 62 2.5 油层9 195 4.0 36.0 5.5 0 0 干层10 220 9.0 30.0 9.0 61 1.7 油层11 217 7.5 50.0 8.0 55 1.1 油层12 210 6.0 130.0 7.0 48 0.7 差油层13 195 4.0 100.0 5.0 0 0 干层14 195 4.0 70.0 5.0 0 0 干层15 200 6.0 90.0 6.0 0 0 干层16 200 4.0 130.0 6.0 0 0 干层17 200 4.0 90.0 5.0 0 0 干层18 215 9.0 25.0 9.0 54 1.6 油层19 195 4.0 70.0 4.0 0 0 干层20 200 6.0 55.0 6.0 0 0 干层21 200 4.0 100.0 5.0 0 0 干层22 240 13.5 12.0 12.0 40 2.4 油层23 212 8.0 36.0 8.0 60 1.5 油层24 197 6.0 50.0 6.0 0 0 干层25 202 6.0 55.0 7.0 52 0.8 差油层26 195 4.5 50.0 6.0 0 0 干层27 203 5.0 45.0 7.0 46 0.6 差油层28 195 6.0 50.0 6.0 0 0 干层29 210 7.5 20.0 8.0 57 1.2 油层30 201 6.0 16.0 7.0 40 0.4 差油层31 213 9.5 12.0 9.0 61 2 油层从表1中的数据可以看出,用于储层含油性识别的属性集合为:声波时差,中子,深测向电阻率,孔隙度,含油饱和度和渗透率。
测并解释结论为:油层,差油层,水层和干层。
3.2 K-means算法的聚类分析本文应用的是matlab软件自带的K-means函数,即传统的K-means算法。
K值是已知的,值为4。
在命令窗口中输入命令“[cid,C,sumD]=Kmeans(x,4)”。
输出参数分别为cid,C,sumD,cid为N*1的向量,存储的是每个点的聚类标号;C为K*P的矩阵,存储的是K个聚类质心位置;sumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和。
x为样本数据的矩阵。
以Oilsk81为样本数据集,结果为{3 3 3 1 1 3 1 1 4 1 1 2 2 4 2 2 2 1 4 4 2 1 1 4 1 4 1 4 1 1 1}。
图3 K-means聚类分析结果图4 最优聚类结果以Oilsk83为样本数据集,聚类分析结果如图:图3 K-means聚类分析结果图4 最优聚类结果以Oilsk85为样本数据集,聚类分析结果如图:图3 K-means聚类分析结果图4 最优聚类结果由于K-means算法采用随机法选取k个初始聚类中心点,随机选择的初始中心点可能导致算法聚类效果不稳定,且使算法常陷入局部最优而聚类结果非全局最优。
从上述K-means聚类分析结果与最优聚类结果的对比图中,可看出K-means算法对初始聚类中心选择具有依赖性。
3.2 猫群算法的聚类分析设猫群数量CatNum=200,记忆池大小SMP=5,启发式因子Ot=1,样本特征值变化概率CDC=1,样本变化值范围SRD=0.2,每个猫个体所属行为模式标志flag=0为搜寻模式,flag=1时为跟踪模式,同时在种群中选择2%个猫执行跟踪模式,其他为搜寻模式。
聚类时以欧氏距离衡量相似性,为消除数值在不同量纲下的差异,对数据进行了归一化处理。
数据集的6个属性全部用于储层含油性的识别。
聚类的结果如表1、表二所示:表2基于不同数据集的聚类正确率井号迭代次数为50 迭代次数为100 迭代次数为200 迭代次数为500 Oilsk81 100% 100% 100% 100%Oilsk83 94% 94% 94% 94%Oilsk85 66.15% 69.23% 70.77% 76.92%表3基于不同数据集的样本聚类错误情况井号迭代次数为50 迭代次数为100 迭代次数为200 迭代次数为500 Oilsk81 无无无无Oilsk82 4,5,6 4,5,6 4,5,6 4,5,6Oilsk85 13,14,16,18,19,20,21,22,23,24,25,26,27,31,34,40,43,49,50,55,58,13,14,15,16,17,18,19,20,21,22,24,25,26,31,34,40,43,49,50,55,58,5,13,14,18,19,20,21,22,24,25,26,31,40,43,46,47,49,50,51,54,57,13,14,15,16,17,18,19,20,21,22,24,25,26,31,34,40,43,49,50,55,58,在猫群算法针对oilsk81井测井解释成果表中的特征值进行反复地运行分类后,可以发现oilsk81表的特征值在迭代10次后,在第10代出现了与原有结果完全一致的结论,而后分别在迭代50次、100次、200次、500次中得出了完全一样的结果。
所以猫群算法针对oilsk81表的数据集在以上4种迭代次数的环境下,其准确率达到了100%。
在猫群算法针对oilsk83井测井解释成果表中的特征值进行反复地运行分类后,发现oilsk83表的特征值在迭代20次后,与原有结论相比,出现了三个不同的结论,即第4,5,6项中的差油层和干层均被分为水层。
而后进行了50次、100次、200次、500次的迭代,结果与原结论相比,仍有三个差异项。
由于oilsk83表与oilsk81表相比,数据项增多,故在相同迭代条件下,未能达到完全准确。
固定的分类错误项受算法本身的代码设计影响,所以猫群算法针对oilsk83表的数据集在以上4种迭代次数的环境下,其准确率达到94%。
3.3 两种算法的聚类效果比较K-means 算法是聚类分析中一种常用的基于划分的方法,同时存在不足,聚类结果受初始类中心影响较大而过早收敛于次优解。