资源简介

k-means(k均值)算法的python代码实现,可以显示聚类效果与聚类的迭代次数,初学者使用更方便。

资源截图

代码片段和文件信息

# -*- coding:utf-8 -*-
# user:xuke
import numpy as np
import matplotlib.pyplot as plt
import random
def dist(p1p2):
    return np.sqrt(np.sum(np.multiply((p1-p2)(p1-p2))))

def kmeans(kdata):
    centers = data[:k]
    print(centers)
    clusters = [[center] for center in centers]
    print(‘clusters‘clusters)
    j = 0
    while True:
        print(‘第‘j‘次迭代‘)
        j+=1
        clusters = [[center] for center in centers]
        for sample in data:
            # print(‘sample‘sample)
            distances = []
            for i in range(k):
                # print(i)
                distance = dist(np.array(sample)np.array(centers[i]))
                # print(distance)
                distances.append(distance)
            # print(distances)
            mini_index = distances.index(min(distances))
            clusters[mini_index].append(sample)
        new_centers = []
        for clucen in zip(clusterscenters):
            new_center = sum(np.array(clu))/len(clu)
            if all(np.

评论

共有 条评论