聚类算法(一):k-均值 (k-means)算法

首先确保你在动手写代码之前已经了解什么是聚类分析。

k-均值算法----一种基于形心地技术的聚类算法。k-均值算法的英文名是k-means,那么这个算法是怎么工作的呢?

k-均值算法把簇的形心定义为簇内点的均值。它的处理流程如下:1.在数据点集D中随机的选择k个对象(这个k表示你要讲数据集分成几个簇),每个对象代表一个簇的初始均值或中心。2.对剩下的每个对象,根据其与哥哥簇中心的欧氏距离,将它分配到最相似的簇。3.k-均值算法迭代的改善内变差。对于每个簇,它使用上次迭代分配到该簇的对象,计算新的均值。 4.使用更新的均值作为新的簇中心。重新分配所有对象。 5.迭代继续,直到分配稳定,本轮行程的簇的中心点坐标与前一轮行程的簇相同。


算法:k-均值

输入:k:簇的数目

   D:包含n个对象的数据集

输出:k个簇的集合

方法:

1.从D中任意选择k个对象作为初始簇中心;

2.repeat

3. 根据簇中对象的均值,将每个对象分配到最相似的簇;

4.  更新簇的均值,即重新计算每个簇中对象的均值;

5.until 不再发生变化



源码(Python)

__author__ = 'ChiXu_15s103144_HIT'

import random
import math

def K_means(data, k):
    center = []
    cluster = []
    dis = []
    demo_cluster = []
    flag = 0
    i = 0
    len_data = len(data)
    while i


你可能感兴趣的:(数据挖掘)