您的位置:首页 > 编程语言 > Python开发

Fuzzy C Means 算法及其 Python 实现——写得很清楚,见原文

2017-07-24 16:46 1191 查看

Fuzzy C Means 算法及其 Python 实现

转自:http://note4code.com/2015/04/14/fuzzy-c-means-%E7%AE%97%E6%B3%95%E5%8F%8A%E5%85%B6-python-%E5%AE%9E%E7%8E%B0/

1.

算法向

算法的扩展



算法中,如果要将数据集合

划分为

个类,使得任意数据对象

必须属于并且仅属于一个类,同时每一个类至少包含一个数据对象,那么可以用一个

的矩阵

来表示,矩阵中的任意一个元素

可以表示为:



其中

表示第

个类。并且

需要满足如下条件





如果上述矩阵

中的元素

的取值范围不仅仅是 0 或者 1,那么就可以推广到模糊集合上的划分,

就变成了模糊判定矩阵。此时

需满足:

(1)


2. 目标函数与聚类中心


算法在度量数据对象的非相似性(或者说距离)时一般使用欧几里得距离,要求每个类的聚类中心与数据对象的距离平方之和最小,目标函数可以表示为:





其中

表示任意聚类中心,而聚类中心一般取类内所有对象在各属性上的平均值,因此可以表示为:




表示任意一个类。

将算法推广到模糊集后,

对样本与类中心之间的距离采用隶属度的平方来加权,

则进一步引入了隶属度的加权指数

从而得到了新的目标函数:

(2)


要使得 (2) 式达到最小值则要求聚类中心

和隶属度

满足如下条件:

(3)


(4)


3.

算法计算过程

见原文和代码实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: