k-means算法
(1)k-means算法和fuzzy-c-means算法都是聚类划分法的一种。聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集,这样让在同一个子集中的成员对象都有相似的一些属性
(2)聚类中的划分法:给定一个有N个元组或者纪录的数据集,构造K ( K < N)个分组,每一个分组就代表一个聚类:每一个分组至少包含一个数据纪录且每一个数据纪录属于且仅属于一个分组。对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好
聚类算法可以应用于许多领域,例如:
营销:找到具有相似行为的客户群体,提供包含其属性和过去购买记录的大量客户数据数据库;
生物学:赋予植物和动物特征的分类;
图书馆:书籍订购;
保险:确定平均索赔成本高的汽车保险单位群体; 识别欺诈
城市规划:根据房屋类型,价值和地理位置确定房屋群;
地震研究:聚类观测地震震中识别危险区域;
(3)k-means算法:该算法为硬聚类算法,隶属度只有两个取值0或1,是基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。
A.k-means的归属矩阵:
B.k-means实现步骤
(1)随机选取k个数据点Ci,i=1,2,3,…,k 并将之分别视为各聚类的初始中心。
(2)决定各数据点所属之聚类,若数据点X判定属于第i聚类,则权重值wji = 1,否则为0。
且满足
(3)由(1)式计算目标函数 J,如果 J 保持不变,代表聚类结果已经稳定不变,则可结束此迭代方法,否则进入步骤(4)
(4)以(4)式更新聚类的中心点。回到步骤(2)
C.N次迭代以后