K-均值聚类算法
聚类是一种无监督的学习,它将相似的对象归到同一个簇中。 K-均值算法将数据点归为K个簇,每个簇的质心采用簇中所含数据点的均值构成。 K-均值算法 的工作流程:首先随机确定K个初始点为质心,然后将数据集中的每个点非配到一个簇中,分配原则是分给距离最近的质心所在的簇。然后每个簇的质心更新为该簇所有数据点的平均值。 伪代码: 随机创建K个质心: 当任意一个点的簇分配结果发生改变时: 对数据集中的每个数据点: 对每个质心: 计算质心到数据点的距离 将数据点分配给距离最近的质心所在簇 对每一个簇,计算簇中所有数据点的均值作为质心(更新质心) K-均值聚类支持函数:加载文件、欧式距离计算、随机初始化质心 from numpy import * def loadDataSet(filename): dataSet=[] f=open(filename) for line in f.readlines(): curLine=line.strip().split('\t') floatLine=list(map(float,curLine)) dataSet.append(floatLine) return dataSet def distEclud(vecA,vecB): return sqrt(sum(power(vecA-vecB,2))) def randCent(dataSet,k): n