前面的几个章节主要学习了监督学习,从这节开始,进入到无监督学习。这节的内容主要有kMeans,kMeans簇的后处理,二分kMeans。
一、kMeans
1、算法原理:
2、算方法实现:
1、初始质心的选择
def randCent(dataSet, k):
n = shape(dataSet)[1]
centroids = mat(zeros((k,n)))#create centroid mat
for j in range(n):#create random cluster centers, within bounds of each dimension
minJ = min(dataSet[:,j])
rangeJ = float(max(dataSet[:,j]) - minJ)
centroids[:,j] = mat(minJ + rangeJ * random.rand(k,1))
return centroids
2、距离计算
def distEclud(vecA, vecB):
return sqrt(sum(power(vecA - vecB, 2))) #la.norm(vecA-vecB)
3、kMeans进行分类