kmeans聚类的简介和代码(python)

本文介绍了k-means聚类算法的基本原理,并提供了详细的Python代码实现。通过随机生成初始聚类中心,不断迭代更新样本归属和聚类中心,直至中心点不再变化。最后,使用生成的随机数据展示k-means聚类结果。

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

一、k均值聚类的简单介绍:假设样本分为c类,每个类均存在一个中心点,通过随机生成c个中心点进行迭代,计算每个样本点到类中心的距离(可以自定义、常用的是欧式距离)
        将该样本点归入到最短距离所在的类,重新计算聚类中心,进行下次的重新划分样本,最终类中心不改变时,聚类完成

二、伪代码

        


三、python代码实现

 #!/usr/bin/env python
# coding=utf-8

import numpy as np
import random
import matplotlib.pyplot as plt



#data:numpy.array dataset
#k the number of cluster
def k_means(data,k):
    
    #random generate cluster_center
    sample_num=data.shape[0]
    center_index=random.sample(range(sample_num),k)
    cluster_cen=data[center_index,:]

    is_change=1
    cat=np.zeros(sample_num)
    

    while is_change:
        is_change=0

        for i in range(sample_num):
            min_distance=100000
            min_index=0

            for j in range(k):
                sub_data=data[i,:]-cluster_cen[j,:]
                distance=np.inner(sub_data,sub_data)
                if distance<min_distance:
                    min_distanc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值