2018.2.10

2018.1.10

def my_k_means(data_set, k):
    m = np.shape(data_set)[0]  # 样本数量
    clusterAssment = np.mat(np.zeros((m, 2)))
    centroids = randCent(data_set, k)
    cluster_changed = True
    while cluster_changed:
        cluster_changed = False
        for i in range(m):
            mindist = np.inf
            for j in range(k):
                distj = distEclud(data_set[i, :], centroids[j, :])
                if distj < mindist:
                    mindist = distj
                    minj = j
            if clusterAssment[i, 0] != minj:
                cluster_changed = True
            clusterAssment[i, :] = minj, mindist**2
        for cent in range(k):
            data_cent = data_set[np.nonzero(clusterAssment[:, 0].A == cent)[0]]
            centroids[cent, :] = np.mean(data_cent, axis=0)
    return centroids, clusterAssment

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值