k-means聚类算法的验证

本文探讨了k-means聚类算法的应用,通过实际运行展示了算法过程,并对结果进行了详细验证,确保聚类效果准确可靠。相关链接提供了进一步的学习资源。

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

import numpy as np  #导入numpy包,且起名为np
'''numpy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,
各种派生对象,如掩码数组和矩阵以及用于数组快速操作的各种例程。'''
import matplotlib.pyplot as plt #导入matplotlib库中的pyplot包,并起名为plt
'''(matplotlib.pyplot 是命令行风格的函数集,
  让matplotlib看起来像MATLAB.Each一样工作。
  pyplot函数能够对画布(figure)进行一些改变,例如:创建一个画布(figure), 
  在画布中创建一个绘图区域,在绘图区域中画图,使用文字标签修饰图形。)'''

def L2(vecXi, vecXj):
    
    '''输入:向量vecXi,向量vecXj
    输出:两个向量的欧式距离
    描述:计算两个向量的欧式距离
    
    计算欧氏距离
    para vecXi:点坐标,向量
    para vecXj:点坐标,向量
    return: 两点之间的欧氏距离(距离标量)'''
    
    return np.sqrt(np.sum(np.power(vecXi - vecXj, 2))) 
    #np.sqrt(x):计算数组各元素的平方根,括号里的数必须大于或等于0。
    #numpy中的sum则可以求出矩阵或数组所有元素的和
    #np.power(x, y) 表示x 的y次方,
    #  y=2表示x的平方,y=1/2表示x开方,y =1/3表示x开立方,y= -1表示x的倒数。

def kMeans(S, k, distMeas=L2):
     
    
    '''输入:数据集,k,计算向量间距离的函数名,随机生成k个随机质心的函数名
    输出:包含质心的集合,包含K个随机质心(clusterCents)的集合,簇分配结果矩阵
    描述:kmeans算法实现
    
    K均值聚类
    para S:样本集,多维数组(样本数据集,np数组)
    para k:簇个数
    para distMeas:距离度量函数,默认为欧氏距离计算函数
    return sampleTag:一维数组,存储样本对应的簇标记
    return clusterCents:一维数组,各簇中心
    retrun SSE:误差平方和'''
    
    
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值