《机器学习实战》第十章 :K-均值聚类算法

来源:互联网 发布:淘宝店哪家衣服质量好 编辑:程序博客网 时间:2024/05/20 07:15

《机器学习实战》系列博客主要是实现并理解书中的代码,相当于读书笔记了。毕竟实战不能光看书。动手就能遇到许多奇奇怪怪的问题。博文比较粗糙,需结合书本。博主边查边学,水平有限,有问题的地方评论区请多指教。书中的代码和数据,网上有很多请自行下载。

10.1 K- 均值聚类算法

K- 均值聚类支持函数

数据的导入 ,向量距离的计算 , 随机质心计算

#coding: utf-8from numpy import *def loadDataSet(fileName):          dataMat = []                    fr = open(fileName)    for line in fr.readlines():        curLine = line.strip().split('\t') #tab及换行符处理        fltLine = map(float,curLine)         dataMat.append(fltLine)    return dataMat    def distEclud(vecA, vecB):    return sqrt(sum(power(vecA - vecB, 2))) #计算两个向量的距离def randCent(dataSet, k):    n = shape(dataSet)[1]    centroids = mat(zeros((k,n)))# 随机生成k个簇中心  k行n列    for j in range(n):        minJ = min(dataSet[:,j])         rangeJ = float(max(dataSet[:,j]) - minJ)        centroids[:,j] = mat(minJ + rangeJ * random.rand(k,1))    return centroids
>>> import kMeans>>> from numpy import *>>> datMat = mat(kMeans.loadDataSet('testSet.txt'))>>> min(datMat[:,0])matrix([[-5.379713]])>>> max(datMat[:,0])matrix([[ 4.838138]])>>> kMeans.randCent(datMat,2)matrix([[ 0.8442008 ,  4.54209089],        [-2.47119846, -0.26540836]])
0 0
原创粉丝点击