import numpy as np
import pandas as pd
def dist(x,y):
xy = (sum((x-y)**2))**0.5
return(xy)
def kmeans(data,m):
m = m
name = ['center'+str(i) for i in range(m)]
for j in range(len(name)):
name[j] = data.iloc[j,:]
dis = pd.DataFrame(index=range(len(data)),columns=range(len(name)))
dis['class'] = 0
while True:
for i in range(len(data)):
for k in range(len(name)):
dis.iloc[i,k] = dist(data.iloc[i,:],name[k])
for i in range(len(data)):
dis.iloc[i,len(name)] = np.argmin(list(dis.iloc[i,0:(len(name))]))
index = ['index'+str(i) for i in range(m)]
for q in range(m):
index[q] = dis.iloc[:,len(name)] == q
name2 = ['center_new'+str(i) for i in range(m)]
for t in range(m):
name2[t]
python自编实现kmeans算法(任意维度)
最新推荐文章于 2024-08-11 16:00:02 发布
本文详细介绍了如何使用Python从头编写k-means聚类算法,适用于高维数据处理,通过实例展示了算法的步骤和应用。
摘要由CSDN通过智能技术生成