K-means 算法 K-means 算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means 算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量 V 最优分类,使得评价指标J 最小。算法采用误差平方和准则函数作为聚类准则函数。 1.K-means 算法 K-means 算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。 k 个初始类聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机的选取任意 k 个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J 的值没有发生变化,说明算法已经收敛。 2 . 算法过程 1)从 N 个文档随机选取 K 个文档作为质心 2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 3)重新计算已经得到的各个类的质心 4)迭代2~3 步直至新的质心与原质心相等或小于指定阈值,算法结束 具体如下: 输入:k, data[n]; (1) 选择k 个初始中心点,例如c[0]=data[0],… c[k-1]=data[k-1]; (2) 对于 data[0]… .data[n],分别与 c[0]… c[k-1]比较,假定与c[i]差值最少,就标记为 i; (3) 对于所有标记为 i 点,重新计算 c[i]={ 所有标记为 i 的 data[j]之和}/标记为 i 的个数; (4) 重复(2)(3),直到所有 c[i]值的变化小于给定阈值。 3 . 工作原理与处理流程 1 )工作原理 输入:聚类个数k,以及包含 n 个数据对象的数据库。 输出:满足方差最小标准的k 个聚类。 2 )处理流程 (1) 从 n 个数据对象任意选择 k 个对象作为初始聚类中心; (2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分; (3) 重新计算每个(有变化)聚类的均值(中心对象) (4) 循环(2)到(3)直到每个聚类不再发生变化为止 k-means 算法接受输入量 k ;然后将 n 个数据对象划分为 k个聚类以便使得所获得的聚...