打卡第六周
## 利用K-均值聚类算法对未标注数据分组
一、1.K-均值聚类算法
K-均值算法的伪代码如下:
创建k个点作为起始质心(经常是随机选择)
当任意一个点的簇分配结果发生改变时
对数据集中的每个数据点
对每个质心
计算质心与数据点之间的距离
将数据点分配到距其最近的簇
对每个簇,计算簇中所有点的均值并将均值作为质心
**注意:**质心意味着需要进行某种距离计算,可以选择任意距离度量方法
例子:`# coding=utf-8
from numpy import *
def loadDataSet(fileName) :
dataMat = []
fr = open(fileName)
for line in fr.readlines() :
curLine = line.strip().split(’\t’)
fltLine = map(float, curLine)
dataMat.append(fltLine)
return dataMat
计算两个向量的欧式距离
def distEclud(vecA, vecB) :
return sqrt(sum(power(vecA - vecB, 2)))
为给定的数据集构建一个包含k个随机质心的集合
def randCent(dataSet, k) :
n = shape(dataSet)[1]
centroids = mat(zeros((k,n)))
# 构建簇质心
for j in range(n) :
# 每一维的最小值
min