k-means和iosdata聚类算法在生活案例中的运用

引言:聚类是将数据分成类或者簇的过程,从而使同簇的对象之间具有很高的相似度,而不同的簇的对象相似度则存在差异。聚类技术是一种迭代重定位技术,在我们的生活中也得到了广泛的运用,比如:零件分组、数据评价、数据分析等很多方面;具体的比如对市场分析人员而言,聚类可以帮助市场分析人员从消费者数据库中分出不同的消费群体来,并且可以分析出每一类消费者的消费习惯等,从而帮助市场人员对销售做出更好的决策。

所以,本篇博客主要是对生活中的案例,运用k-means算法和isodata聚类算法进行数据评价和分析。本文是对“中国男足近几年在亚洲处于几流水平?”的问题进行分析。

首先,先让我们了解什么是k-means和iosdata聚类算法:

一、k-means算法

K-means算法是典型的基于距离的聚类算法,即对各个样本集采用距离作为相似性的评价指标,若两个样本集的距离越近,其相似度就越大。按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,且让簇间的距离尽量的大。最后把得到紧凑且独立的簇作为最终的目标。

实现过程如下:

(1)随机选取K个初始质心

(2)分别计算所有样本到这K个质心的距离

(3)如果样本离某质心Ki最近,那么这个样本属于Ki点群;如果到多个质心的距离相等,则可划分到任意组中

(4)按距离对所有样本分完组之后,计算每个组的均值(最简单的方法就是求样本每个维度的平均值),作为新的质心

(5)重复(2)(3)(4)直到新的质心和原质心相等,算法结束

二、iosdata聚类算法

算法思想:输入N个样本,预选Nc个初始聚类中心{z1,z2,…zNc},它可以不等于所要求的聚类中心的数目,其初始位置可以从样本中任意选取。K为预期的聚类中心数目;θN为每一聚类域中最少的样本数目,若少于此数即不作为一个独立的聚类;θS为一个聚类域中样本距离分布的标准差;θc为两个聚类中心间的最小距离,若小于此数,两个聚类需进行合并;L为在一次迭代运算中可以合并的聚类中心的最多对数;I为迭代运算的次数。当某两类聚类中心距离θc小于阙值则归为一类,否则为不同类,某类样本数θN小于阙值,则将其删掉。

三、K-means算法和iosdata算法的不同:

1、iosdata算法每次把全部样本都调整完毕之后重新计算一次样本的均值;

2、iosdata算法会自动进行类的“合并”和“分裂”,从而得到聚类数较为合理的各个聚类。

四、动态聚类算法的3个要点:

1、 选定某种距离度量作为样本间的相似度量;

2、 确定某个评价聚类结果的准则函数;

3、 给定某个初始分类,然后用迭代算法找出是准则函数取极值的最好聚类结果。

五、案例分析

我要进行分析的数据是采集了亚洲16只球队在2006-2018年间大型的比赛战绩。数据进行了如下预处理:对于世界杯,进入决赛则取其最终排名,没有进入决赛的但打入预选赛十强赛赋予40,预选赛小组未出线的赋予50。对于亚洲杯,前四名取其排名,八强赋予5,十六强赋予9,预选赛没有出现的赋予17.

未完待续(由于数据采集不完整还没有运用k-means算法和iostada聚类算法进行分析!!)

原文地址:https://www.cnblogs.com/twzh123456/p/11749373.html

时间: 2024-07-29 05:31:43

k-means和iosdata聚类算法在生活案例中的运用的相关文章

聚类算法:K均值、凝聚层次聚类和DBSCAN

聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不同类型,通常有以下几种: (1)层次的与划分的:如果允许簇具有子簇,则我们得到一个层次聚类.层次聚类是嵌套簇的集族,组织成一棵树.划分聚类简单地将数据对象划分成不重叠的子集(簇),使得每个数据对象恰在一个子集中. (2)互斥的.重叠的与模糊的:互斥的指每个对象都指派到单个簇.重叠的或是模糊聚类用来反

R-kmeans聚类算法

在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means算法主要解决的问题如下图所示.我们可以看到,在图的左边有一些点,我们用肉眼可以看出来有四个点群,但是我们怎么通过计算机程序找出这几个点群来呢?于是就出现了我们的K-Means算法(Wikipedia链接) K-Means要解决的问题 算法概要 这个算法其实很简单,如下图所示: 从上图中,我们可以看到,A,B,C,D,E是五个在图

【转载】各种聚类算法的比较

聚类的目标是使同一类对象的相似度尽可能地大:不同类对象之间的相似度尽可能地小.目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法.分割聚类算法.基于约束的聚类算法.机器学习中的聚类算法和用于高维度的聚类算法.摘自 数据挖掘中的聚类分析研究综述 这篇论文. 1.层次聚类算法 1.1聚合聚类 1.1.1相似度依据距离不同:Single-Link:最近距离.Complete-Link:最远距离.Average-Link:平均距离 1.1.2最具代表性算法 1)CURE算

各种聚类算法的比较

各种聚类算法的比较 聚类的目标是使同一类对象的相似度尽可能地大:不同类对象之间的相似度尽可能地小.目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法.分割聚类算法.基于约束的聚类算法.机器学习中的聚类算法和用于高维度的聚类算法.摘自 数据挖掘中的聚类分析研究综述 这篇论文. 1.层次聚类算法 1.1聚合聚类 1.1.1相似度依据距离不同:Single-Link:最近距离.Complete-Link:最远距离.Average-Link:平均距离 1.1.2最具代表性

K-Mean聚类算法

K-Means 是发现给定数据集的 K 个簇的聚类算法, 之所以称之为 K-均值 是因为它可以发现 K 个不同的簇, 且每个簇的中心采用簇中所含值的均值计算而成. 优缺点: 优点: 属于无监督学习,无须准备训练集 原理简单,实现起来较为容易 结果可解释性较好 缺点: 需手动设置k值. 在算法开始预测之前,我们需要手动设置k值,即估计数据大概的类别个数,不合理的k值会使结果缺乏解释性 可能收敛到局部最小值, 在大规模数据集上收敛较慢 对于异常点.离群点敏感 流程伪代码: 创建 k 个点作为起始质心

R语言最优聚类数目k改进kmean聚类算法

原文链接:http://tecdat.cn/?p=7237 在本文中,我们将探讨应用聚类算法(例如k均值和期望最大化)来确定集群的最佳数量时所遇到的问题之一.从数据集本身来看,确定集群数量的最佳值的问题通常不是很清楚.在本文中,我们将介绍几种技术,可用于帮助确定给定数据集的最佳k值.  我们将在当前的R Studio环境中下载数据集: StudentKnowledgeData <-read_csv(“ YourdownloadFolderPath / StudentKnowledgeData.c

聚类算法之K-means 、 K中心点、hierarchical methods

聚类算法有以下几类: 一 层次方法 层次方法创建给定数据对象集的层次分解.根据层次的分解的形成方式,层次的方法又可以分为凝聚和分裂方法. 凝聚法:自底向上.开始将每个对象形成单独的组,然后层次合并相似的组,直到所有的组合合并成一个或者满足某个终止条件. 分裂法:自顶向下.开始将所有对象置于一个簇中,每次迭代,簇分裂成更小的簇,直到每个对象都各在一个簇中或者满足某个终止条件. 二 划分方法 给定n个对象或者数据元组的数据库,划分方法构造数据的k个划分,每个划分为一个簇,k<n.给定要构造的划分数组

基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登后,陆陆续续收到本科生.研究生还有博士生的来信和短信微信等,表示了对论文的兴趣以及寻求算法的效果和实现细节,所以,我也就通过邮件或者短信微信来回信,但是有时候也会忘记回复. 另外一个原因也是时间久了,我对于论文以及改进的算法的记忆也越来越模糊,或者那天无意间把代码遗失在哪个角落,真的很难想象我还会全

k-均值聚类算法;二分k均值聚类算法

根据<机器学习实战>一书第十章学习k均值聚类算法和二分k均值聚类算法,自己把代码边敲边理解了一下,修正了一些原书中代码的细微差错.目前代码有时会出现如下4种报错信息,这有待继续探究和完善. 报错信息: Warning (from warnings module): File "F:\Python2.7.6\lib\site-packages\numpy\core\_methods.py", line 55 warnings.warn("Mean of empty