模糊C均值聚类算法及实现

合集下载

模糊c均值算法

模糊c均值算法

模糊c均值算法模糊c均值算法概述模糊c均值算法(FCM)是一种聚类分析方法,用于将一组数据分成多个类别。

该算法通过最小化数据点与其所属的聚类中心之间的平方误差来实现聚类。

与传统的k均值算法相比,FCM可以处理更加复杂的数据集,因为它允许每个数据点属于多个聚类。

原理FCM的核心思想是将每个数据点表示为一个向量,并将这些向量分配到多个聚类中心。

这些聚类中心由算法自动确定,并且通常是随机初始化的。

在每次迭代中,FCM计算每个数据点与所有聚类中心之间的距离,并将其分配到最近的聚类中心。

然后,它重新计算每个聚类中心作为其所有成员向量的平均值,并使用这些新的聚类中心再次计算距离和分配。

这个过程重复进行直到满足某些收敛准则,例如固定数量的迭代或达到一定程度上的稳定性。

然而,在传统k均值算法中,一个数据点只能属于一个簇,但在FCM 中,一个数据点可以属于多个簇。

这是通过将每个数据点与每个聚类中心之间的距离表示为一个模糊值来实现的。

这个模糊值称为隶属度,它表示了数据点属于每个聚类中心的程度。

具体而言,对于一个数据点i和聚类中心j,隶属度u_ij表示数据点i属于聚类中心j的程度。

隶属度必须满足以下条件:1. $0 \leq u_{ij} \leq 1$ 对于所有的i和j2. $\sum_{j=1}^{c} u_{ij} = 1$ 对于所有的i在每次迭代中,FCM计算每个数据点与所有聚类中心之间的距离,并使用这些距离计算新的隶属度。

然后,它重新计算每个聚类中心作为其所有成员向量加权平均值,并使用这些新的聚类中心再次计算距离和分配。

优缺点优点:1. FCM可以处理多维数据,并且可以应用于各种各样的应用程序。

2. FCM允许数据点属于多个簇,因此更加灵活。

3. FCM不需要指定簇数量,因此更加自适应。

缺点:1. FCM对初始值敏感。

2. FCM的计算成本很高,特别是对于大型数据集。

3. FCM需要指定一些参数,例如模糊程度和收敛准则。

关于模糊c均值聚类算法

关于模糊c均值聚类算法

FCM模糊c均值1、原理详解模糊c-均值聚类算法fuzzy c-means algorithm (FCMA)或称(FCM)。

在众多模糊聚类算法中,模糊C-均值(FCM)算法应用最广泛且较成功,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。

聚类的经典例子然后通过机器学习中提到的相关的距离开始进行相关的聚类操作经过一定的处理之后可以得到相关的cluster,而cluster之间的元素或者是矩阵之间的距离相对较小,从而可以知晓其相关性质与参数较为接近C-Means Clustering:固定数量的集群。

每个群集一个质心。

每个数据点属于最接近质心对应的簇。

1.1关于FCM的流程解说其经典状态下的流程图如下所示集群是模糊集合。

一个点的隶属度可以是0到1之间的任何数字。

一个点的所有度数之和必须加起来为1。

1.2关于k均值与模糊c均值的区别k均值聚类:一种硬聚类算法,隶属度只有两个取值0或1,提出的基本根据是“类内误差平方和最小化”准则,进行相关的必要调整优先进行优化看是经典的欧拉距离,同样可以理解成通过对于cluster的类的内部的误差求解误差的平方和来决定是否完成相关的聚类操作;模糊的c均值聚类算法:一种模糊聚类算法,是k均值聚类算法的推广形式,隶属度取值为[0 1]区间内的任何数,提出的基本根据是“类内加权误差平方和最小化”准则;这两个方法都是迭代求取最终的聚类划分,即聚类中心与隶属度值。

两者都不能保证找到问题的最优解,都有可能收敛到局部极值,模糊c均值甚至可能是鞍点。

1.2.1关于kmeans详解K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。

K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。

模糊C均值聚类

模糊C均值聚类
模糊C均值聚类
主 单
讲:周润景 教授 位:电子信息工程学院
目 录
模糊C均值聚类应用背景 模糊C均值算法 模糊C均值聚类的MATLAB实现 模糊C均值聚类结果分析
一.模糊C均值聚类应用背景
传统的聚类分析是一种硬划分(Crisp Partition),它把每个待辨识的对 象严格地划分到某类中,具有“非此即彼”的性质,因此这种类别划分的界限 是分明的。然而实际上大多数对象并没有严格的属性,它们在性质和类属方面 存在着中介性,具有“亦此亦彼”的性质,因此适合进行软划分。Zadeh提出 的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊方法来处 理聚类问题,并称之为模糊聚类分析。模糊聚类得到了样本属于各个类别的不 确定性程度,表达了样本类属的中介性,建立起了样本对于类别的不确定性的
三.模糊C均值聚类的MATLAB实现
426.31 3105.29 2057.8 1507.13 1556.89 1954.51 343.07 3271.72 2036.94 2201.94 3196.22 935.53 2232.43 3077.87 1298.87 1580.1 1752.07 2463.04 1962.4 1594.97 1835.95 1495.18 1957.44 3498.02 1125.17 1594.39 2937.73 24.22 3447.31 2145.01 1269.07 1910.72 2701.97 1802.07 1725.81 1966.35 1817.36 1927.4 2328.79 1860.45 1782.88 1875.13]; [center,U,obj_fcn] = fcm(data,4); plot3(data(:,1),data(:,2),data(:,3),'o');

模糊c均值聚类算法及应用

模糊c均值聚类算法及应用

模糊c均值聚类算法及应用随着数字化时代的到来,数据量的增加让人们变得更加注重数据分析与聚类。

相比较传统的聚类算法,模糊c 均值聚类算法在实际应用中的效果更加出色。

本文将对模糊c均值算法进行详细介绍,并且剖析其在实际应用中的优势。

一、什么是模糊c均值聚类算法模糊c均值聚类算法是一种基于物理学中的隶属度理论,来对不同种类数据进行分类的一种算法。

其基本原理是通过计算不同数据在所属类别中的隶属程度,并根据不同的权重来计算数据的均值和方差,从而实现对数据进行分类的目的。

在传统的c均值聚类算法中,所有的数据点都必须完全属于某一个类别中,而在模糊c均值聚类算法中,一个数据点可以属于多个不同的类别,且归属于每个类别的隶属度都是按照百分比计算的。

换句话说,每个数据点都有可能属于多个不同的类别,且在不同类别中的权重不同。

二、模糊c均值聚类算法的优势模糊c均值聚类算法在大量实验中都取得了理想的效果。

其优势主要有以下几个方面:1.能够适应不同数据的分布情况在聚类分析中,很多数据不是严格遵循正态分布等统计规律的,这就使得传统的c均值聚类算法很难准确分类。

然而,采用模糊c均值算法处理这些数据时,可以很好地适应多样性的数据分布。

2. 更准确地表达数据之间的联系在实际应用中,很多数据点不仅需要分类,还要进行关联性分析。

在传统的c均值聚类算法中,只能体现点与点之间的距离远近,很难准确刻画数据之间的关联关系。

而在模糊c均值聚类算法中,可以很好地给每个点进行加权处理,使得每个点被分类后能更加准确地表达和传达其所代表的信息。

3. 更加灵活的聚类动态传统的c均值聚类所表现出来的聚类动态,很难被实时地调整。

而模糊c均值聚类算法中,每个数据点都有一定的隶属度,可以更加灵活地调整聚类动态。

使用模糊c 均值求解,总是能得到的比传统c均值聚类更加的平滑,不容易受到某些噪音的干扰,更能够优化每个点的分类。

三、模糊c均值聚类算法的应用1. 人脸识别在人脸识别领域,模糊c均值算法可以有效地应用于人脸的分类和特征提取。

模糊C均值聚类算法实现与应用

模糊C均值聚类算法实现与应用

模糊C均值聚类算法实现与应用聚类算法是一种无监督学习方法,在数据挖掘、图像处理、自然语言处理等领域得到广泛应用。

C均值聚类算法是聚类算法中的一种经典方法,它将数据对象划分为若干个不相交的类,使得同一类中的对象相似度较高,不同类之间的对象相似度较低。

模糊C均值聚类算法是对C均值聚类的扩展,它不是将每个数据对象划分到唯一的类别中,而是给每个对象分配一个隶属度,表示该对象属于不同类的可能性大小。

本文主要介绍模糊C均值聚类算法的实现方法和应用。

一、模糊C均值聚类算法实现方法模糊C均值聚类算法可以分为以下几个步骤:1. 确定聚类数k与参数m聚类数k表示将数据分成的类别数目,参数m表示隶属度的度量。

一般地,k和m都需要手动设定。

2. 随机初始化隶属度矩阵U随机初始化一个k×n的隶属度矩阵U,其中n是数据对象数目,U[i][j]表示第j个对象隶属于第i个类别的程度。

3. 计算聚类中心计算每个类别的聚类中心,即u[i] = (Σ (u[i][j]^m)*x[j]) / Σ(u[i][j]^m),其中x[j]表示第j个对象的属性向量。

4. 更新隶属度对于每个对象,重新计算它对每个类别的隶属度,即u[i][j] = 1 / Σ (d(x[j],u[i])/d(x[j],u[k])^(2/(m-1))),其中d(x[j],u[i])表示第j个对象与第i个聚类中心的距离,k表示其他聚类中心。

5. 重复步骤3和4重复执行步骤3和4,直到满足停止条件,例如聚类中心不再变化或者隶属度矩阵的变化趋于稳定。

二、模糊C均值聚类算法应用模糊C均值聚类算法可以应用于多个领域,包括图像处理、文本挖掘、医学图像分析等。

下面以图像分割为例,介绍模糊C均值聚类算法的应用。

图像分割是图像处理中的一个重要应用,旨在将一幅图像分割成多个区域,使得同一区域内的像素具有相似度较高,不同区域之间的像素相似度较低。

常见的图像分割算法包括全局阈值法、区域生长法、边缘检测法等。

模糊c均值聚类算法python

模糊c均值聚类算法python

模糊c均值聚类算法python以下是Python实现模糊c均值聚类算法的代码:pythonimport numpy as npimport randomclass FuzzyCMeans:def __init__(self, n_clusters=2, m=2, max_iter=100, tol=1e-4): self.n_clusters = n_clusters # 聚类数目self.m = m # 模糊因子self.max_iter = max_iter # 最大迭代次数self.tol = tol # 中心点变化停止阈值# 初始化隶属度矩阵def _init_membership_mat(self, X):n_samples = X.shape[0]self.membership_mat = np.random.rand(n_samples, self.n_clusters)self.membership_mat = self.membership_mat /np.sum(self.membership_mat, axis=1)[:, np.newaxis]# 更新聚类中心点def _update_centers(self, X):membership_mat_pow = np.power(self.membership_mat, self.m)self.centers = np.dot(X.T, membership_mat_pow) /np.sum(membership_mat_pow, axis=0)[:, np.newaxis]# 计算隶属度矩阵def _update_membership_mat(self, X):n_samples = X.shape[0]self.distances = np.zeros((n_samples, self.n_clusters))for j in range(self.n_clusters):self.distances[:, j] = np.linalg.norm(X-self.centers[j, :], axis=1) self.membership_mat = 1 / np.power(self.distances, 2/(self.m-1))self.membership_mat = self.membership_mat /np.sum(self.membership_mat, axis=1)[:, np.newaxis]# 判断是否满足停止迭代的条件def _check_stop_criteria(self):return np.sum(np.abs(self.centers - self.old_centers)) < self.tol # 聚类过程def fit(self, X):self._init_membership_mat(X)for i in range(self.max_iter):self.old_centers = self.centers.copy()self._update_centers(X)self._update_membership_mat(X)if self._check_stop_criteria():break# 预测样本所属的簇def predict(self, X):distances = np.zeros((X.shape[0], self.n_clusters))for j in range(self.n_clusters):distances[:, j] = np.linalg.norm(X-self.centers[j, :], axis=1) return np.argmin(distances, axis=1)使用方法:pythonfrom sklearn.datasets import make_blobsimport matplotlib.pyplot as pltX, y = make_blobs(n_samples=500, centers=3, random_state=42)fcm = FuzzyCMeans(n_clusters=3)fcm.fit(X)plt.scatter(X[:, 0], X[:, 1], c=fcm.predict(X))plt.show()。

模糊聚类算法的原理和实现方法

模糊聚类算法的原理和实现方法

模糊聚类算法的原理和实现方法模糊聚类算法是一种数据分类和聚类方法,它在实际问题中有着广泛的应用。

本文将介绍模糊聚类算法的原理和实现方法,包括模糊C均值(FCM)算法和模糊神经网络(FNN)算法。

一、模糊聚类算法的原理模糊聚类算法是基于模糊理论的一种聚类方法,它的原理是通过对数据进行模糊分割,将每个数据点对应到多个聚类中心上,从而得到每个数据点属于各个聚类的置信度。

模糊聚类算法的原理可以用数学公式进行描述。

设有n个数据样本点X={x1, x2, ..., xn},以及m个聚类中心V={v1, v2, ..., vm}。

对于每个数据样本点xi,令uij为其属于第j个聚类中心的置信度,其中j=1,2,..., m,满足0≤uij≤1,且∑uij=1。

根据模糊理论,uij的取值表示了xi属于第j个聚类中心的隶属度。

为了达到聚类的目的,我们需要对聚类中心进行调整,使得目标函数最小化。

目标函数的定义如下:J = ∑∑(uij)^m * d(xi,vj)^2其中,m为模糊度参数,d(xi,vj)为数据点xi与聚类中心vj之间的距离,常用的距离度量方法有欧氏距离和曼哈顿距离。

通过不断调整聚类中心的位置,最小化目标函数J,即可得到模糊聚类的结果。

二、模糊C均值(FCM)算法的实现方法模糊C均值算法是模糊聚类算法中最经典的一种方法。

其具体实现过程如下:1. 初始化聚类中心:随机选取m个数据点作为初始聚类中心。

2. 计算隶属度矩阵:根据当前聚类中心,计算每个数据点属于各个聚类中心的隶属度。

3. 更新聚类中心:根据隶属度矩阵,更新聚类中心的位置。

4. 判断是否收敛:判断聚类中心的变化是否小于设定的阈值,如果是则停止迭代,否则返回第2步。

5. 输出聚类结果:将每个数据点分配到最终确定的聚类中心,得到最终的聚类结果。

三、模糊神经网络(FNN)算法的实现方法模糊神经网络算法是一种基于模糊理论和神经网络的聚类方法。

其实现过程和传统的神经网络类似,主要包括以下几个步骤:1. 网络结构设计:确定模糊神经网络的层数和每层神经元的个数。

matlab模糊c均值聚类算法

matlab模糊c均值聚类算法

matlab模糊c均值聚类算法模糊C均值聚类算法是一种广泛应用于数据挖掘、图像分割等领域的聚类算法。

相比于传统的C均值聚类算法,模糊C均值聚类算法能够更好地处理噪声数据和模糊边界。

模糊C均值聚类算法的基本思想是将样本集合分为K个聚类集合,使得每个样本点属于某个聚类集合的概率最大。

同时,每个聚类集合的中心点被计算为该聚类集合中所有样本的均值。

具体实现中,模糊C均值聚类算法引入了模糊化权重向量来描述每个样本点属于各个聚类集合的程度。

这些权重值在每次迭代中被更新,直至达到预设的收敛精度为止。

模糊C均值聚类算法的目标函数可以表示为:J = ∑i∑j(wij)q||xi-cj||2其中,xi表示样本集合中的第i个样本,cj表示第j个聚类集合的中心点,wij表示第i个样本点属于第j个聚类集合的权重,q是模糊指数,通常取2。

不同于C均值聚类算法,模糊C均值聚类算法对每个样本点都考虑了其属于某个聚类集合的概率,因此能够更好地处理模糊边界和噪声数据。

同时,模糊C均值聚类算法可以自适应地确定聚类的数量,从而避免了事先设定聚类数量所带来的限制。

在MATLAB中,可以使用fcm函数实现模糊C均值聚类算法。

具体来说,fcm函数的使用方法如下:[idx,center] = fcm(data,k,[options]);其中,data表示样本矩阵,k表示聚类数量,options是一个包含算法参数的结构体。

fcm函数的输出包括聚类标签idx和聚类中心center。

MATLAB中的fcm函数还提供了其他参数和选项,例如模糊权重阈值、最大迭代次数和收敛精度等。

可以根据具体应用需求来设置这些参数和选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊C均值聚类算法及实现————————————————————————————————作者:————————————————————————————————日期:模糊C均值聚类算法及实现摘要:模糊聚类是一种重要数据分析和建模的无监督方法。

本文对模糊聚类进行了概述,从理论和实验方面研究了模糊c均值聚类算法,并对该算法的优点及存在的问题进行了分析。

该算法设计简单,应用范围广,但仍存在容易陷入局部极值点等问题,还需要进一步研究。

关键词:模糊c均值算法;模糊聚类;聚类分析Fuzzy c-Means Clustering Algorithm and ImplementationAbstract: Fuzzy clustering is a powerful unsupervised method for the analysis of data and construction of models.This paper presents an overview of fuzzy clustering and do some study of fuzzy c-means clustering algorithm in terms of theory and experiment.This algorithm is simple in design,can be widely used,but there are still some problems in it,and therefore,it is necessary to be studied further.Key words: fuzzy c-Mean algorithm;fuzzy clustering;clustering analysis1 引言20世纪90年代以来,随着信息技术和数据库技术的迅猛发展,人们可以非常方便地获取和存储大量的数据。

但是,面对大规模的数据,传统的数据分析工具只能进行一些表层的处理,比如查询、统计等,而不能获得数据之间的内在关系和隐含的信息。

为了摆脱“数据丰富,知识贫乏”的困境,人们迫切需要一种能够智能地、自动地把数据转换成有用信息和知识的技术和工具,这种对强有力数据分析工具的迫切需求使得数据挖掘技术应运而生。

将物理或抽象对象的集合分组成由类似的对象组成的多个类的过程称为聚类。

由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其它簇中的对象相异。

聚类是一种重要的数据分析技术,搜索并且识别一个有限的种类集合或簇集合,进而描述数据。

聚类分析作为统计学的一个分支,己经被广泛研究了许多年。

而且,聚类分析也已经广泛地应用到诸多领域中,包括数据分析、模式识别、图像处理以及市场研究[1]。

通过聚类,人们能够识别密集的和稀疏的区域,因而发现全局的分布模式,以及数据属性之间的有趣的相互关系。

在商务上,聚类能帮助市场分析人员从客户基本信息库中发现不同的客户群,并且用购买模式来刻画不同的客户群的特征。

在生物学上,聚类能用于推导植物和动物的分类,对基因进行分类,获得对种群中固有结构的认识。

聚类在地球观测数据库中相似地区的确定,汽车保险单持有者的分组,及根据房屋的类型、价值和地理位置对一个城市中房屋的分组上也可以发挥作用。

聚类也能用于对Web上的文档进行分类,以发现信息。

基于层次的聚类算法文献中最早出现的Single-Linkage层次聚类算法是1957年在Lloyd的文章中最早出现的,之后MacQueen独立提出了经典的模糊C均值聚类算法,FCM算法中模糊划分的概念最早起源于Ruspini的文章中,但关于FCM的算法的详细的分析与改进则是由Dunn和Bezdek完成的。

聚类分析是多元统计分析的一种,也是非监督模式识别的一个重要分支,在模式分类、图像处理和模糊规则处理等众多领域中获得最广泛的应用。

它把一个没有类别标记的样本集按某种准则划分为若干个子集(类) ,使相似的样本尽可能的归为一类,而将不相似的样本尽量划分到不同的类中。

硬聚类把每个待辨识的对象严格地划分到某类中,具有非此即彼的性质,模糊聚类由于能够描述样本类属的中介性,能够客观地反映现实世界,已逐渐成为聚类分析的主流[2 - 3 ]。

在众多的模糊聚类算法中,模糊c均值聚类算法(FCM)应用最为广泛。

它按照某种判别准则,将数据的聚类转化为一个非线性优化问题,并通过迭代来进行求解,目前已成为非监督模式识别的一个重要分支。

数据挖掘中的聚类分析主要集中在针对海量数据的有一效和实用的聚类方法研究,聚类方法的可伸缩性,高维聚类分析,分类属性数据聚类和具有混合属性数据的聚类,非距离模糊聚类等。

因此,数据挖掘对聚类分析有其特殊的要求;可伸缩性,能够处理不同类型属性,强抗噪性,高维性,对输入顺序不敏感性,可解释性和可用性等。

本文正是在此背景下对数据挖掘中的聚类分析进行论述,并着重研究了FCM 算法。

2 模糊聚类算法2.1 模糊聚类算法概述模糊聚类算法是一种基于函数最优方法的聚类算法,使用微积分计算技术求最优代价函数。

在基于概率算法的聚类方法中将使用概率密度函数,为此要假定合适的模型,模糊聚类算法的向量可以同时属于多个聚类,从而摆脱上述问题。

在模糊聚类算法中,定义了向量与聚类之间的近邻函数,并且聚类中向量的隶属度由隶属函数集合提供。

对模糊方法而言,在不同聚类中的向量隶属函数值是相互关联的。

硬聚类可以看成是模糊聚类方法的一个特例。

2.2 模糊聚类算法的分类模糊聚类分析算法大致可分为三类[4]:1)分类数不定,根据不同要求对事物进行动态聚类,此类方法是基于模糊等价矩阵聚类的,称为模糊等价矩阵动态聚类分析法。

2)分类数给定,寻找出对事物的最佳分析方案,此类方法是基于目标函数聚类的,称为模c均值聚类。

3)在摄动有意义的情况下,根据模糊相似矩阵聚类,此类方法称为基于摄动的模糊聚类分析法。

3 模糊c均值(FCM)聚类算法3.1 算法描述模糊c均值聚类算法的步骤还是比较简单的,模糊c均值聚类(FCM),即众所周知的模糊ISODATA,是用隶属度确定每个数据点属于某个聚类的程度的一种聚类算法。

1973年,Bezdek提出了该算法,作为早期硬c均值聚类(HCM)方法的一种改进。

FCM把n个向量x i(i=1,2,…,n)分为c个模糊组,并求每组的聚类中心,使得非相似性指标的价值函数达到最小。

FCM与HCM的主要区别在于FCM用模糊划分,使得每个给定数据点用值在0,1间的隶属度来确定其属于各个组的程度。

与引入模糊划分相适应,隶属矩阵U允许有取值在0,1间的元素。

不过,加上归一化规定,一个数据集的隶属度的和总等于1:∑==∀=ci ijn j u1,...,1,1 (3.1)那么,FCM 的价值函数(或目标函数)就是:∑∑∑====ci njijm ij ci i c d u J c c U J 1211),...,,(, (3.2)这里u ij 介于0,1间;c i 为模糊组I 的聚类中心,d ij =||c i -x j ||为第I 个聚类中心与第j 个数据点间的欧几里德距离;且[)∞∈,1m 是一个加权指数。

构造如下新的目标函数,可求得使(3.2)式达到最小值的必要条件:∑∑∑∑∑∑=====-+=-+=n j ci ij j c i n jijmijnj ci ij j c n c u d u u c c U J c c U J 111211111)1()1(),...,,(),...,,,...,,(λλλλ (3.3)这里λj ,j=1到n ,是(3.1)式的n 个约束式的拉格朗日乘子。

对所有输入参量求导,使式(3.2)达到最小的必要条件为:∑∑===n j m ijnj jm iji ux uc 11 (3.4)和∑=-⎪⎪⎭⎫ ⎝⎛=ck m kj ij ij d d u 1)1/(21 (3.5)由上述两个必要条件,模糊c 均值聚类算法是一个简单的迭代过程。

在批处理方式运行时,FCM 用下列步骤确定聚类中心c i 和隶属矩阵U[1]:步骤1:用值在0,1间的随机数初始化隶属矩阵U ,使其满足式(3.1)中的约束条件步骤2:用式(3.4)计算c 个聚类中心ci ,i=1,…,c 。

步骤3:根据式(3.2)计算价值函数。

如果它小于某个确定的阀值,或它相对上次价值函数值的改变量小于某个阀值,则算法停止。

步骤4:用(3.5)计算新的U 矩阵。

返回步骤2。

上述算法也可以先初始化聚类中心,然后再执行迭代过程。

由于不能确保FCM 收敛于一个最优解。

算法的性能依赖于初始聚类中心。

因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM 。

设被分类的对象的集合为:X = { x 1 , x 2 ,…,x N },其中每一个对象x k 有n 个特性指标,设为x k = ( x 1k ,x 2k , …, x nk ) T , 如果要把X 分成c 类,则它的每一个分类结果都对应一个c ×N 阶的Boolean 矩阵U= [ u ik ] c ×N ,对应的模糊c 划分空间为:M fc = { R cNU ⊂ | u ik ∈ [0,1 ],∀i ,∀k ;∑=N1k iku= 1 ,∀k;0<∑=N1k iku,∀i}在此空间上,模糊c 均值算法如下:Repeat for l = 1 ,2……Step 1:compute the cluseter prototypes(means):ci p nk ml ik k mNk l ik u x u l i≤≤∑∑=--=-1,1)1(1)1()()()(Step 2:compete the distance :n k c i p x A p x d i k T l i k ik ≤≤≤≤--=1,1),()()()(2Step 3:Update the partition matrix : For N k ≤≤1If 0)(2>ik d for all i=1,2,…,c∑==-cj m Ajkd Aik d l iku1)1(2)(1)(Otherwise)(l iku =0 ifA ik d >0,and )(l iku∈[0,1] with11)(=∑=ci l ikuUntil ||||)1()(--l l U U <ε3.2 实验采用著名的iris数据集对算法进行测试实现,其中样本总数m=150,样本属性数n=4,设定的划分内别k=3。

运算次数为10次的输出结果:能对数组实现分类,但是分类正确率不是很理想。

相关文档
最新文档