原理:k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
二、程序代码
# -*- coding:utf-8 -*-
import random
import math
def formula_diatance(a= None,b=None):
result=math.sqrt(pow((a[0]-b[0]),2)+pow((a[1]-b[1]),2))
return result
def GetNewPoint(list=None):
x=0
y=0
for l in list:
x+=l[0]
y+=l[1]
result=[x/len(list),y/len(list)]
return result
def row2column(list=None):
kind=[]
i=len(list)
j=len(list[0])
for m in range(0,j):
col = []
for n in range(0,i):
col.append(list[n]