基于EM算法的k均值算法python 实现

本文介绍了一种基于期望最大化(EM)算法的K均值聚类方法,通过随机选择初始聚类中心,利用EM算法迭代更新聚类中心和数据标签,直至聚类中心不再变化。该算法在数据科学和机器学习中有着广泛的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from sklearn.metrics import pairwise_distances_argmin
import numpy as np
import random
def find_cluster(X,n_cluster,seed):
    """
    基于EM的k均值算法算法
    :param X: 数据
    :param n_cluster: 聚类中心数量
    :param seed: 随机状态
    :return: 聚类中心坐标和数据标签
    """
    #随机产生初始聚类中心
    index=random.sample(range(0,X.shape[0]),n_cluster,rseed=seed)
    centers=X[index]
    while True:
        #将点分配至离其最近的簇中心点(E步)
        labels=pairwise_distances_argmin(X,centers)
        #将簇中心点设置为所有点坐标的平均值
        new_centers=np.array([X[labels==i].mean(0) for i in range(0,n_cluster) ])
        if np.all(centers,new_centers):
            break
        centers=new_centers
        return labels,centers








 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值