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最小。
算法采用误差平方和准则函数作为聚类准则函数。
关于其优点:
1.算法快速、简单;
2.对大数据集有较高的效率并且是可伸缩性的;
3.时间复杂度近于线性,而且适合挖掘大规模数据集。
关于其缺点:
①在K-means 算法中K 是事先给定的,这个K 值的选定是非常难以估计的。
很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。
这也是K-means 算法的一个不足。
有的算法是通过类的自动合并和分裂,得到较为合理的类型数目K。
根据方差分析理论,应用混合F统计量来确定最佳分类数,并应用了模糊划分熵来验证最佳分类数的正确性。
对每个输入而言,不仅竞争获胜单元的权值被修正以适应输入值,而且对次胜单元采用惩罚的方法使之远离输入值。
②在K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。
这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为K-means算法的一个主要问题。
对于该问题的解决,许多算法采用遗传算法(GA),例如文献中采用遗传算法(GA)进行初始化,以内部聚类准则作为评价指标。
也可以使用其他的第三方算法对于其进行必要的优化,诸如PSO、AFSA 等,目的在于使用其规避陷入不利的进化流程中的风险。
③从K-means 算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。
所以需要对算法的时间复杂度进行分析、改进,提高算法应用范围。
1.2.2关于模糊c均值
模糊c-均值聚类算法fuzzy c-means algorithm (FCMA)或称(FCM)。
在众多模糊聚类算法中,模糊C-均值(FCM)算法应用最广泛且较成功,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。
2、相关概念
2.1关于迭代
迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题的过程,其目的通常是为了逼近所需目标或结果。
每一次对过程的重复称为一次迭代,而每一次迭代得到的结果会作为下一次迭代的初始值。
在FCM聚类算法中,迭代的目的就是不断优化,使结果无限接近目标函数。
注意:迭代时需要有一个条件来对迭代过程进行控制,保证迭代过程不会无休止的进行。
2.2关于隶属度函数
隶属度函数是表示一个对象x隶属于集合A的程度的函数,通常记做μA(x),其自变量范围是所有可能属于集合A的对象(即集合A所在空间中的所有点),μA(x)的取值范围是[0,1],即0<= μA(x)<=1。
越接近于1表示隶属度越高,反之越低。
2.3关于模糊集合
一个定义在空间X={x}上的隶属度函数就定义了一个模糊集合A,即这个模糊集合里的元素对某一标准的隶属度是基本相近的。
在聚类的问题中,可以把聚类生成的簇看成一个个模糊集合,因此,每个样本点对簇的隶属度就在[0,1]区间内。
2.4关于聚类中心
经过查阅以往论文以及相关资料,我对聚类中心的理解大概就是“分类标准”这样一个概念。
聚类中心的选取大致有两种方式:
1典型的做法是从所有数据点中任取c个点作为聚类中心,这里的选取自然的随机进行初始化的相关选取,选点前提是要使价值函数(目标函数)达到最小。
—>价值函数下面会具体讲。
2每次选簇的均值作为新的中心,迭代直到簇中的对象的分布不再变化。
其缺点是对于离群点比较敏感,因为一个具有很大或者很小极端值的对象会对数据分布产生较大的影响。
2.5关于价值函数
其实就是Lagrange方程中的目标函数
目标函数本质上是各个点到各个类的欧式距离的和。
目标函数可通过隶属度一级样本x到聚类中心的距离这两个量来直观表示(其中μij是隶属度,dij是样本到聚类中心的距离):
该算法中的c表示聚类数目,假设有n个样本数据xj(1,2,…,j),每个数据有s个特征,将这n个数据分成c组,算法输出一个c行n列的矩阵U
求每组的聚类中心ci,使得目标函数最小(因为目标函数与欧几里德距离有关,目标函数达到最小时,欧式距离最短,相似度最高),这保证了组内相似度最高,组间相似度最低的聚类原则。
2.6关于加权指数
m实质是一个刻画模糊化程度的参数(m>1),当m=1时模糊聚类就退化为HCM,研究表明m的最佳选择范围为[1,2.5],一般m取2为宜。
3关于函数的求解
从推导的角度而言,最终使用的结论如下所示
4关于算法过程
步骤1:用值在0,1间的随机数初始化隶属矩阵U,使其满足式(1)中的约束条件。
步骤2:用式(3)计算c个聚类中心ci(i=1,…,c)。
步骤3:根据式(2)计算价值函数。
如果它小于某个确定的值,或它相对上次价值函数值的改变量小于某个阀值ε,则算法停止。
步骤4:用式(4)计算新的U矩阵。
返回步骤2。
上述算法也可以先初始化聚类中心,然后再执行迭代过程。
由于算法的性能依赖于初始聚类中心。
因此,我们要么用另外的快速算法来确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM,使结果不断接近目标函数。