kmeans算法的python实现

jopen 9年前

kmeans算法的python实现 KMeans为实现算法的文件 test_kmeans为二维数据的测试文件 KMeans为实现3维数据的稍微一点的改动 test_kmeas_v1为三维数据的测试文件各个文件的注释文件均比较详细

#################################################    # kmeans: k-means cluster    # Author :    # Date   :     # HomePage :    # Email  :    #################################################        from numpy import *    import time    import matplotlib.pyplot as plt   import KMeans       ## step 1: load data    print ("step 1: load data..." )   dataSet = []   #列表,用来表示,列表中的每个元素也是一个二维的列表;这个二维列表就是一个样本,样本中包含有我们的属性值和类别号。  #与我们所熟悉的矩阵类似,最终我们将获得N*2的矩阵,每行元素构成了我们的训练样本的属性值和类别号  fileIn = open("D:/xuepython/testSet.txt")  #是正斜杠  for line in fileIn.readlines():    temp=[]   lineArr = line.strip().split('\t')  #line.strip()把末尾的'\n'去掉   temp.append(float(lineArr[0]))   temp.append(float(lineArr[1]))   dataSet.append(temp)      #dataSet.append([float(lineArr[0]), float(lineArr[1])])    fileIn.close()    ## step 2: clustering...    print ("step 2: clustering..."  )  dataSet = mat(dataSet)  #mat()函数是Numpy中的库函数,将数组转化为矩阵  k = 4    centroids, clusterAssment = KMeans.kmeans(dataSet, k)  #调用KMeans文件中定义的kmeans方法。      ## step 3: show the result    print ("step 3: show the result..."  )  KMeans.showCluster(dataSet, k, centroids, clusterAssment)

项目主页:http://www.open-open.com/lib/view/home/1438149893238