FCM聚类算法(Fuzzy C-Means)
##算法初识
FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。
情景:
假设现在有一群人,要将他们自动分成大人和小孩两类,以身高作为分类标准(若身高大于160cm为大人,小于160cm为小孩)。现有一人身高为100cm,那么根据上述标准,不难判断,他会被划分到小孩一组。但是如果他的身高为159cm,该如何划分呢?
IDEA1:无论如何159cm总是小于160cm,应该被分到小孩组。
IDEA2:159cm很接近160cm,更偏离小孩组,应该被分到大人组。
以上两种说法体现了普通C均值算法(HCM)和模糊C均值算法(FCM)的差异:
普通C均值算法在分类时有一个硬性标准,根据该标准进行划分,分类结果非此即彼。(IDEA1)
模糊C均值算法更看重隶属度,即更接近于哪一方,隶属度越高,其相似度越高。(IDEA2)
由以上叙述不难判断,用模糊C均值算法来进行组类划分会使结果更加准确!
##清楚概念
大概认识上述二者区别之后,正式了解算法之前,首先分享一些基本概念。
迭代
迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题的过程,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次”迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。在FCM聚类算法中,迭代的目的就是不断优化,使结果无限接近目标函数。