# -*- 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 k_means(x=None,k=0,k_list=None,class_list=None):
if k_list is None:
k_list=[]
while len(k_list)!=k:
r=random.randint(0,len(x))
if r not in k_list:
k_list.append(r)
class_1_list=[]
class_2_list=[]
for round_list in x:
d1=formula_diatance(x[k_list[0]],round_list)
d2=formula_diatance(x[k_list[1]],round_list)
if d1<=d2:
class_1_list.append(round_list)
if d1>d2:
class_2
Python 2均值聚类
最新推荐文章于 2022-12-04 18:21:32 发布
本文介绍了如何使用Python进行2种均值聚类分析,详细阐述了算法原理,并通过实例展示了具体实现过程。
摘要由CSDN通过智能技术生成