作业四对数据进行聚类分析
- 格式:docx
- 大小:117.29 KB
- 文档页数:5
聚类分析实验报告一、实验目的:通过聚类分析方法,对给定的数据进行聚类,并分析聚类结果,探索数据之间的关系和规律。
二、实验原理:聚类分析是一种无监督学习方法,将具有相似特征的数据样本归为同一类别。
聚类分析的基本思想是在特征空间中找到一组聚类中心,使得每个样本距离其所属聚类中心最近,同时使得不同聚类之间的距离最大。
聚类分析的主要步骤有:数据预处理、选择聚类算法、确定聚类数目、聚类过程和聚类结果评价等。
三、实验步骤:1.数据预处理:将原始数据进行去噪、异常值处理、缺失值处理等,确保数据的准确性和一致性。
2.选择聚类算法:根据实际情况选择合适的聚类算法,常用的聚类算法有K均值算法、层次聚类算法、DBSCAN算法等。
3.确定聚类数目:根据数据的特征和实际需求,确定合适的聚类数目。
4.聚类过程:根据选定的聚类算法和聚类数目进行聚类过程,得到最终的聚类结果。
5. 聚类结果评价:通过评价指标(如轮廓系数、Davies-Bouldin指数等),对聚类结果进行评价,判断聚类效果的好坏。
四、实验结果:根据给定的数据集,我们选用K均值算法进行聚类分析。
首先,根据数据特点和需求,我们确定聚类数目为3、然后,进行数据预处理,包括去噪、异常值处理和缺失值处理。
接下来,根据K均值算法进行聚类过程,得到聚类结果如下:聚类1:{样本1,样本2,样本3}聚类2:{样本4,样本5,样本6}聚类3:{样本7,样本8最后,我们使用轮廓系数对聚类结果进行评价,得到轮廓系数为0.8,说明聚类效果较好。
五、实验分析和总结:通过本次实验,我们利用聚类分析方法对给定的数据进行了聚类,并进行了聚类结果的评价。
实验结果显示,选用K均值算法进行聚类分析,得到了较好的聚类效果。
实验中还发现,数据预处理对聚类分析结果具有重要影响,必要的数据清洗和处理工作是确保聚类结果准确性的关键。
此外,聚类数目的选择也是影响聚类结果的重要因素,过多或过少的聚类数目都会造成聚类效果的下降。
聚类分析数据聚类分析是一种数据分析方法,它将相似的数据点分组为具有共同特征的簇。
通过聚类分析,我们可以发现数据中的潜在模式、结构和关联性,从而帮助我们理解数据集的特征和性质。
本文将详细介绍聚类分析的基本概念、常用方法和应用场景。
一、概念介绍聚类分析是一种无监督学习方法,它不需要事先标记好的训练样本。
聚类分析的目标是将数据点划分为不同的簇,使得同一簇内的数据点相似度较高,而不同簇之间的相似度较低。
聚类分析的结果通常以可视化的方式展示,例如散点图或热力图。
二、常用方法1. K-means聚类K-means聚类是最常用的聚类算法之一。
它将数据点分为K个簇,其中K是用户事先指定的。
算法的核心思想是通过迭代优化来找到使得簇内差异最小化的簇中心。
K-means聚类的步骤包括初始化簇中心、分配数据点到最近的簇、更新簇中心,重复执行这些步骤直到满足停止准则。
2. 层次聚类层次聚类是一种基于距离的聚类方法,它将数据点逐步合并成越来越大的簇。
层次聚类可以分为凝聚式和分裂式两种。
凝聚式层次聚类从每个数据点作为一个簇开始,然后逐渐合并最相似的簇,直到达到指定的簇数目。
分裂式层次聚类从所有数据点作为一个簇开始,然后逐渐分裂成更小的簇,直到达到指定的簇数目。
3. 密度聚类密度聚类是一种基于密度的聚类方法,它将数据点分为高密度区域和低密度区域。
密度聚类的核心思想是通过计算每个数据点的密度来确定簇的边界。
常用的密度聚类算法包括DBSCAN和OPTICS。
三、应用场景聚类分析在各个领域都有广泛的应用,下面介绍几个常见的应用场景。
1. 市场细分聚类分析可以帮助企业将市场细分为不同的消费者群体。
通过对消费者的购买行为、偏好和特征进行聚类分析,企业可以更好地了解不同群体的需求,从而制定个性化的营销策略。
2. 社交网络分析聚类分析可以帮助研究人员发现社交网络中的社区结构。
通过对社交网络中的节点(用户)进行聚类分析,可以揭示出节点之间的紧密关系和群体特征,从而更好地理解社交网络的组织结构和信息传播模式。
聚类分析数据聚类分析是一种无监督学习方法,用于将相似的数据点分组成不同的类别或簇。
它是数据挖掘和统计分析中常用的技术,能够帮助我们发现数据中的隐藏模式和结构。
在进行聚类分析之前,首先需要明确的是要分析的数据集。
假设我们有一份销售数据集,其中包含了不同产品的销售额和销售量。
我们希望通过聚类分析来探索这些产品之间的关系和相似性。
首先,我们需要对数据进行预处理。
这包括数据清洗、缺失值处理和数据标准化等步骤。
例如,我们可以删除缺失值较多的样本,使用均值或中位数填充缺失值,并对数据进行标准化,以消除不同特征之间的尺度差异。
接下来,我们选择合适的聚类算法。
常见的聚类算法包括K均值聚类、层次聚类和DBSCAN等。
在本次分析中,我们选择使用K均值聚类算法进行分析。
K均值聚类算法是一种基于距离的聚类方法,通过将数据点分配到K个簇中,使得同一簇内的数据点之间的距离最小化,不同簇之间的距离最大化。
对于我们的销售数据集,我们可以选择将产品分为不同的簇,每个簇代表一类相似的产品。
在进行K均值聚类之前,我们需要确定簇的数量K。
一种常用的方法是通过绘制“肘部曲线”来选择最合适的K值。
肘部曲线显示了不同K值下聚类的误差平方和(SSE)的变化情况。
我们选择使得SSE开始显著下降的K值作为最终的簇数。
接下来,我们使用K均值聚类算法对数据进行聚类。
该算法的基本步骤如下:1. 随机选择K个初始聚类中心。
2. 将每个数据点分配到距离最近的聚类中心所在的簇。
3. 更新每个簇的聚类中心,即计算簇内所有数据点的均值。
4. 重复步骤2和3,直到聚类中心不再变化或达到最大迭代次数。
在完成聚类之后,我们可以对结果进行评估和解释。
常用的评估指标包括簇内平方和(WCSS)和轮廓系数等。
WCSS表示簇内数据点与其聚类中心的距离之和,越小表示聚类效果越好。
轮廓系数则度量了数据点在自己所属的簇内的紧密度与与其他簇的分离度,取值范围在-1到1之间,越接近1表示聚类效果越好。
04聚类分析范文聚类分析是一种常用的数据挖掘技术,用于将一组数据点根据它们的相似性分组到不同的类别中。
聚类分析可以帮助我们发现数据的内在结构和模式,并从中获得有关数据的洞察力。
聚类分析的目标是将数据点划分为不同的类别,使得同一类别内的数据点彼此相似,而不同类别之间的数据点之间有很大的不相似性。
聚类分析通常有两种方法:层次聚类和划分聚类。
层次聚类是一种从底层开始逐渐合并类别的方法。
该方法不需要事先确定类别的数量,而是根据数据点之间的相似性逐渐合并类别,形成一个类别的层次结构。
层次聚类可以通过聚合聚类或分裂聚类来实现。
聚合聚类是从每个数据点作为一个单独的类别开始,并将相似的类别逐渐合并。
分裂聚类则是从一个包含所有数据点的类别开始,然后逐渐分裂成更小的类别,直到每个数据点都是一个单独的类别。
划分聚类是一种将数据点划分为预定数量的类别的方法。
该方法需要事先确定类别的数量,并且试图将数据点分配到这些类别中。
划分聚类通常使用迭代算法来优化类别的划分。
最常用的划分聚类算法是K均值聚类。
K均值聚类从随机选择的K个聚类中心开始,然后迭代地将每个数据点分配到最近的聚类中心,并更新聚类中心的位置,直到达到收敛。
聚类分析的应用广泛,可以用于许多领域。
在市场营销中,聚类分析可以帮助企业发现不同市场细分中的潜在客户群体,以制定有针对性的营销策略。
在医学领域,聚类分析可以帮助研究人员将患者分为不同的亚型,以便更好地理解疾病的发病机制并制订个性化的治疗方案。
在社交网络分析中,聚类分析可以帮助研究人员发现不同的社区结构,并研究信息传播的模式和机制。
然而,聚类分析也面临一些挑战和限制。
首先,聚类分析需要预先确定参数或类别的数量,这对于一些数据集可能是困难的。
其次,聚类结果的质量高度依赖于所选择的相似性度量和聚类算法的选择。
不同的相似性度量和聚类算法可能会得出不同的聚类结果。
此外,聚类分析是一种无监督学习方法,它不会给出有关类别之间差异的解释。
第1篇一、实验背景聚类分析是数据挖掘中的一种重要技术,它将数据集划分成若干个类或簇,使得同一簇内的数据点具有较高的相似度,而不同簇之间的数据点则具有较低相似度。
本实验旨在通过实际操作,了解并掌握聚类分析的基本原理,并对比分析不同聚类算法的性能。
二、实验环境1. 操作系统:Windows 102. 软件环境:Python3.8、NumPy 1.19、Matplotlib 3.3.4、Scikit-learn0.24.03. 数据集:Iris数据集三、实验内容本实验主要对比分析以下聚类算法:1. K-means算法2. 聚类层次算法(Agglomerative Clustering)3. DBSCAN算法四、实验步骤1. K-means算法(1)导入Iris数据集,提取特征数据。
(2)使用Scikit-learn库中的KMeans类进行聚类,设置聚类数为3。
(3)计算聚类中心,并计算每个样本到聚类中心的距离。
(4)绘制聚类结果图。
2. 聚类层次算法(1)导入Iris数据集,提取特征数据。
(2)使用Scikit-learn库中的AgglomerativeClustering类进行聚类,设置链接方法为'ward'。
(3)计算聚类结果,并绘制树状图。
3. DBSCAN算法(1)导入Iris数据集,提取特征数据。
(2)使用Scikit-learn库中的DBSCAN类进行聚类,设置邻域半径为0.5,最小样本数为5。
(3)计算聚类结果,并绘制聚类结果图。
五、实验结果与分析1. K-means算法实验结果显示,K-means算法将Iris数据集划分为3个簇,每个簇包含3个样本。
从聚类结果图可以看出,K-means算法能够较好地将Iris数据集划分为3个簇,但存在一些噪声点。
2. 聚类层次算法聚类层次算法将Iris数据集划分为3个簇,与K-means算法的结果相同。
从树状图可以看出,聚类层次算法在聚类过程中形成了多个分支,说明该算法能够较好地处理不同簇之间的相似度。
聚类分析数据聚类分析是一种常用的数据分析方法,用于将一组数据对象划分为具有相似特征的若干个类别或者簇。
通过聚类分析,可以发现数据中的内在规律和结构,匡助我们理解数据集的特点和相似性。
一、数据准备在进行聚类分析之前,首先需要准备好待分析的数据。
数据可以是结构化的,如表格形式的数据,也可以是非结构化的,如文本数据或者图象数据。
为了方便说明,我们以一个虚拟的电商数据集为例进行讲解。
假设我们有一个电商平台的销售数据,包含了用户的购买记录。
数据集的字段包括用户ID、购买日期、购买金额、购买商品类别等信息。
我们需要将这些用户按照他们的购买行为进行聚类分析,找出具有相似购买行为的用户群体。
二、数据预处理在进行聚类分析之前,通常需要对数据进行预处理,以便消除数据中的噪声和冗余信息,提高聚类的准确性。
数据预处理的步骤包括数据清洗、数据变换和数据归一化等。
1. 数据清洗数据清洗是指对数据进行筛选和处理,去除不符合要求或者无效的数据。
在我们的电商数据集中,可能会存在一些缺失值、异常值或者重复值。
我们需要对这些问题进行处理,以确保数据的质量。
2. 数据变换数据变换是指对数据进行转换,使其更适合进行聚类分析。
常见的数据变换方法包括对数变换、标准化、归一化等。
在我们的电商数据集中,可以对购买金额进行对数变换,以消除数据的偏度。
3. 数据归一化数据归一化是指将数据按照一定的比例缩放,使其数值范围在一定的区间内。
常见的数据归一化方法包括最小-最大归一化和Z-score归一化。
在我们的电商数据集中,可以对购买金额进行最小-最大归一化,将其缩放到0-1的范围内。
三、选择聚类算法选择适合的聚类算法是进行聚类分析的关键步骤。
常见的聚类算法包括K-means算法、层次聚类算法、DBSCAN算法等。
不同的聚类算法适合于不同类型的数据和问题。
在我们的电商数据集中,我们可以选择K-means算法进行聚类分析。
K-means算法是一种基于距离的聚类算法,它将数据对象划分为K个簇,使得同一簇内的数据对象之间的距离最小化。
聚类分析数据聚类分析是一种数据挖掘技术,用于将一组数据分成不同的组或者类别,使得同一类别内的数据相似度较高,不同类别间的数据相似度较低。
聚类分析可以匡助我们发现数据中的隐藏模式和结构,从而更好地理解数据和做出决策。
在进行聚类分析之前,我们需要明确以下几个步骤:1. 数据采集:首先,我们需要采集相应的数据。
数据可以来自于各种渠道,如数据库、文件、传感器等。
采集到的数据应该能够反映我们所关注的问题或者目标。
2. 数据预处理:在进行聚类分析之前,我们需要对数据进行预处理,以确保数据的质量和可用性。
预处理包括数据清洗、数据变换和数据规范化等步骤。
数据清洗可以去除异常值和缺失值,数据变换可以将数据转换为适合聚类分析的形式,数据规范化可以将数据缩放到相同的范围内。
3. 特征选择:在进行聚类分析之前,我们需要选择合适的特征或者变量。
特征选择可以匡助我们减少数据维度,提高聚类分析的效果。
选择合适的特征需要考虑特征的相关性、重要性和可解释性等因素。
4. 聚类算法选择:选择合适的聚类算法是进行聚类分析的关键步骤。
常用的聚类算法包括K均值聚类、层次聚类和密度聚类等。
不同的聚类算法适合于不同的数据类型和问题场景。
我们可以根据数据的特点和需求选择合适的聚类算法。
5. 聚类分析:在选择了合适的聚类算法之后,我们可以开始进行聚类分析。
聚类分析的目标是将数据分成不同的组或者类别,使得同一类别内的数据相似度较高,不同类别间的数据相似度较低。
聚类分析可以通过计算样本之间的距离或者相似度来实现。
聚类分析的结果可以通过可视化或者统计指标来展示。
6. 结果解释和应用:最后,我们需要对聚类分析的结果进行解释和应用。
我们可以通过可视化、统计分析和模型评估等方法来解释聚类分析的结果。
聚类分析的结果可以匡助我们发现数据中的隐藏模式和结构,从而更好地理解数据和做出决策。
总结起来,聚类分析是一种数据挖掘技术,用于将一组数据分成不同的组或者类别。
在进行聚类分析之前,我们需要进行数据采集、数据预处理、特征选择、聚类算法选择、聚类分析和结果解释和应用等步骤。
聚类分析数据聚类分析是一种常用的数据分析方法,它能够将相似的数据点聚集在一起,形成具有相似特征的群组。
通过对数据进行聚类分析,我们可以发现数据中的潜在模式和结构,从而更好地理解数据集的特点和规律。
在进行聚类分析之前,需要明确以下几个步骤:1. 数据收集和准备:首先,我们需要收集相关的数据,并对数据进行清洗和预处理。
清洗数据包括处理缺失值、异常值和重复值等,确保数据的质量和准确性。
预处理数据包括特征选择、特征缩放和特征转换等,以便于后续的聚类分析。
2. 特征选择:在进行聚类分析之前,需要选择合适的特征用于聚类。
特征选择的目标是选择那些能够最好地区分不同类别的特征。
可以使用统计方法、领域知识或者特征工程技术来进行特征选择。
3. 聚类算法选择:聚类算法是进行聚类分析的核心方法,常用的聚类算法包括K均值聚类、层次聚类、DBSCAN等。
在选择聚类算法时,需要考虑数据的特点、聚类的目标和算法的适用性。
不同的聚类算法有不同的假设和参数设置,需要根据实际情况进行选择。
4. 聚类分析:在进行聚类分析时,首先需要确定聚类的数量。
可以使用肘部法则、轮廓系数等方法来确定最优的聚类数量。
然后,使用选择的聚类算法对数据进行聚类,将数据点划分到不同的簇中。
聚类结果可以通过可视化方法进行展示,如散点图、簇状图等。
5. 结果评估:在完成聚类分析后,需要对聚类结果进行评估。
常用的评估指标包括簇内相似性、簇间距离和轮廓系数等。
评估结果可以帮助我们判断聚类的效果和质量,进而进行后续的分析和决策。
聚类分析可以应用于各个领域,如市场营销、客户分群、图像分析等。
通过对数据进行聚类分析,我们可以发现数据中的规律和潜在关系,为决策提供有力的支持。
然而,在进行聚类分析时需要注意以下几点:1. 数据质量:聚类分析的结果受到数据质量的影响,因此需要确保数据的准确性和完整性。
在进行聚类分析之前,需要对数据进行清洗和预处理,以排除无效数据对结果的影响。
2. 特征选择:特征选择是聚类分析的关键步骤,选择合适的特征能够提高聚类的效果。
数据聚类分析方法
数据聚类分析方法是一种将数据分组或分类的技术。
聚类分析的目标是将相似的数据聚集在一起,同时将不相似的数据分开。
以下是常见的数据聚类分析方法:
1. K-means聚类算法:K-means算法是一种迭代的聚类算法。
它将数据集分为预先指定的K个簇,其中每个数据点属于距离该数据点最近的簇。
该算法通过不断迭代更新簇的中心来优化聚类结果。
2. 层次聚类算法:层次聚类算法通过以下两种方法进行聚类分析:聚合和分裂。
聚合方法将每个数据点作为一个单独的簇,并逐渐将相似的簇合并在一起。
分裂方法则是从一个包含所有数据点的簇开始,并逐渐将不相似的数据点分离开来。
3. 密度聚类算法:密度聚类算法将数据点密度作为聚类的基础。
该算法通过确定数据点周围的密度来划分不同的簇。
常见的密度聚类算法有DBSCAN和OPTICS。
4. 基于网格的聚类算法:基于网格的聚类算法将数据空间划分为网格,并将数据点分配到各个网格中。
该算法通常适用于高维数据集,可以减少计算复杂度。
5. 谱聚类算法:谱聚类算法将数据点表示为一个图的拉普拉斯矩阵,并通过谱分解将数据点分配到不同的簇中。
该算法通常用于非线性可分的数据集。
需要根据具体的数据集和分析目标来选择适合的数据聚类分析方法。
聚类分析数据聚类分析数据是一种常用的数据分析方法,它主要用于将相似的数据点分组或聚集在一起。
通过聚类分析,我们可以发现数据中的隐藏模式、相似性和结构,并从中获得有关数据集的洞察。
在进行聚类分析之前,首先需要明确的是聚类的目标和数据集。
假设我们的目标是对一组消费者进行市场细分,以便更好地了解他们的消费习惯和需求。
我们收集了一份包含消费者购买行为的数据集,包括购买的产品类别、购买数量和购买频率等信息。
接下来,我们将按照以下标准格式来进行聚类分析:1. 数据预处理:在进行聚类分析之前,我们需要对数据进行预处理。
这包括数据清洗、缺失值处理和数据标准化等步骤。
例如,我们可以删除缺失值较多的样本,或者用均值或中位数填充缺失值。
同时,我们还需要对数据进行标准化,以确保不同特征之间的尺度一致。
2. 特征选择:在进行聚类分析时,我们需要选择合适的特征来描述数据集。
这些特征应该具有一定的区分度和代表性。
例如,在消费者市场细分的例子中,我们可以选择购买产品的类别和购买数量作为特征。
3. 聚类算法选择:根据数据集的特点和聚类的目标,我们需要选择合适的聚类算法。
常见的聚类算法包括K-means、层次聚类和DBSCAN等。
每种算法都有其优缺点和适用场景。
例如,如果我们希望将数据分为固定数量的簇,可以选择K-means算法;如果我们不确定簇的数量,可以选择层次聚类算法。
4. 聚类分析:在选择聚类算法之后,我们可以开始进行聚类分析。
聚类分析的目标是将数据点划分为不同的簇,使得同一簇内的数据点相似度较高,而不同簇之间的相似度较低。
聚类分析的结果可以用于后续的数据分析和决策制定。
5. 聚类结果评估:在完成聚类分析之后,我们需要对聚类结果进行评估。
常用的评估指标包括轮廓系数、Davies-Bouldin指数和Calinski-Harabasz指数等。
这些指标可以帮助我们评估聚类的质量和效果。
6. 结果解释和应用:最后,我们需要对聚类结果进行解释和应用。
作业四对数据进行聚类分析
一实验要求
用FAMALE.TXT、MALE.TXT的数据作为本次作业使用的样本集,利用C均值聚类方法对样
本集进行聚类分析,对结果进行分析,从而加深对所学内容的理解和感性认识。
二实验内容
1、把FAMALE.TXT 和MALE.TXT两个文件合并成一个,同时采用身高和体重数据作为特征,设类别数为2,利用C均值聚类方法对数据进行聚类,并将聚类结果表示在二维平面上。
尝试不同初始值对此数据集是否会造成不同的结果。
2、对1中的数据利用C均值聚类方法分别进行两类、三类、四类、五类聚类,画出聚类指标与类别数之间的关系曲线,探讨是否可以确定出合理的类别数目。
三实验程序及结果分析
%利用C均值聚类方法对FAMALE.TXT和MALE.TXT数据进行聚类clc;clear all;close all
%合并数据
x=[17 1 168 160 161 153 1 60 165 163 164 160 161 154 152 166
165 183 165 169 170 163 165 160 140 170 171 164 149 167
165 163 163 166 16
6 168 160 163 15
7 163 169 167 165 157
163 162 153 166 170 160 15
7 160 175 176 187 172 174 164
175 180 176 180 178 175 175 173 177 168 170 175 178 165 170
168 169 178 179 172 172 170 165 177 170 175 172 178 176 167 178 173 171 180 173 180 169 171 174 176 174 171 180 175;53 57
58 45 51 5
3
5
3
44 55 51 50 63 50 52 55 67 58
57 60 47 50 51 46 60 57 5
5
5
57 57 44 50 60
47 57 50 4
8 50 51 50 54 52 46 50 53 65 55 56
45 40 46 68 73 70 70 69 53 59 63 80 70 65 60 70 60 58 56 57 65 77 56 58 55 65 67 69 55
65 57 55 70 68 66 60 69 66 60 90 65 68 72 60 80 60 58 65 66 68 66 84 70]';
[n,d] = size(x);
%两类聚类
k2=2;
nc2=[x(1,:);x(2,:)];% 初始聚类中心%nc2=[x(2,:);x(3,:)];% 更改不同的初%nc2=[x(4,:);x(5,:)];% 更改不同
的初始聚类中心
[cid2,nr2,centers2] = kmeans(x,k2,nc2);% 调用kmeans 函数
distO=O;
figure⑴
for i = 1:n
if cid2(i)==1
plot(x(i,1),x(i,2),'r*') % 显示第一类
hold on
distO = distO + sum((x(i,:)-ce nters2(1,:))42,2);
else if cid2(i)==2 plot(x(i,1),x(i,2),'b+') % 显示第二类hold on distO = distO + sum((x(i,:)-ce nters2(2,:))42,2);
end
end
end
xlabel('图1 二类聚类(1)');
dist2=dist0
%三类聚类
k3=3;
n c3=[x(1,:);x(2,:);x(3,:)];% 初始聚类中心
[cid3,nr3,centers3] = kmeans(x,k3,nc3);% 调用kmeans 函数distO=O; figure(2)
for i = 1:n
if cid3(i)==1
plot(x(i,1),x(i,2),'r*') % 显示第一类
hold on
distO = distO + sum((x(i,:)-ce nters3(1,:))92,2);
else if cid3(i)==2 plot(x(i,1),x(i,2),'b+') % 显示第一类hold on distO = distO + sum((x(i,:)-ce nters3(2,:))42,2);
else if cid3(i)==3 plot(x(i,1),x(i,2),'go') % 显示第三类hold on distO = distO + sum((x(i,:)-ce nters3(3,:))42,2);
end
end
end
end
xlabel('图2三类聚类');
dist3=distO
k4=4;%四类聚类
n c4=[x(1,:);x(2,:);x(3,:);x(4,:)];% 初始聚类中心
[cid4,nr4,centers4] = kmeans(x,k4,nc4);% 调用kmeans 函数distO=O; figure(3)
for i = 1:n
if cid4(i)==1 plot(x(i,1),x(i,2),'r*') % 显示第三类hold on
distO = distO + sum((x(i,:)-ce nters4(1,:)).A2,2);
else if cid4(i)==2 plot(x(i,1),x(i,2),'b+') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters4(2,:)).A2,2);
else if cid4(i)==3 plot(x(i,1),x(i,2),'go') % 显示第三类hold on distO = distO + sum((x(i,:)-ce nters4(3,:))92,2);
else if cid4(i)==4
plot(x(i,1),x(i,2),'c+') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters4(4,:))92,2);
end
end
end
end
end
xlabel('图3四类聚类');
dist4=distO
%五类聚类
k5=5;
n c5=[x(1,:);x(2,:);x(3,:);x(4,:);x(5,:)];% 初始聚类中心
[cid5,nr5,centers5] = kmeans(x,k5,nc5);% 调用kmeans 函数distO=O; figure(4)
for i = 1:n
if cid5(i)==1 plot(x(i,1),x(i,2),'r*') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters5(1,:))42,2);
else if cid5(i)==2 plot(x(i,1),x(i,2),'b+') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters5(2,:))42,2);
else if cid5(i)==3 plot(x(i,1),x(i,2),'go') % 显示第三类hold on distO = distO + sum((x(i,:)-ce nters5(3,:))92,2);
else if cid5(i)==4
plot(x(i,1),x(i,2),'c+') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters5(4,:))92,2);
else if cid5(i)==5
plot(x(i,1),x(i,2),'m*') % 显示第三类
hold on
distO = distO + sum((x(i,:)-ce nters5(5,:)).A2,2);
end
end
end
end
end
end
xlabel('图4五类聚类');
dist5=dist0
%画出聚类指标与类别数之间的关系曲线
ff=[2 3 4 5;dist2 dist3 dist4 dist5]';
figure(5)
for i=1:4
plot(ff(i,1),ff(i,2),'b*')
hold on
图1不同初始值下的二类聚类
结果分析:
由图1可知,不同初始值可能会使数据集在同一聚类分类下分布正好相反,其中分布线上的数据可能会在两个分布上有所跳动。
图2~图5分别为三类聚类,四类聚类,五类聚类以及聚类指标与类别数之间的关系曲线,从图
中可知,该实验数据整体上可以划分为三个区域,只是随着类别数的增加,某些数据可能单独分布,
由此,经分析,进行三类聚类是比较合理的。