function 将数据点分配到最近的聚类中心

这篇博客介绍了如何在大样本聚类中,通过算法高效地将数据点分配到最近的聚类中心。首先对数据和聚类中心进行归一化,然后计算点到中心的距离向量,最后找到最小距离对应的中心。博主提供了C++和Matlab两种实现方式,强调了矩阵运算在提高效率上的重要性。
摘要由CSDN通过智能技术生成

背景

在对大样本进行聚类时,由于k-means的计算开销问题,通常随机选取部分样本进行聚类,得到聚类中心。然而往往要得到每个样本最近聚类中心,这常用在检索索引构建中,eg. OPQ (PAMI 2014)Inverted Multi-Index(PAMI 2014)

算法步骤

设一个特征向量p(1*2000),2000是特征维数。聚类中心矩阵为C(256*2000),256为中心数,2000为特征维数。
1. 数据归一化
对p各维计算平方和,得到p_norm,是一个浮点数。
2. 聚类中心归一化
对C的每一行,计算各维平方和,得到c_norm:256*1
3. p_norm 扩展至 1*256
4. 计算p_norm = p_norm+c_norm;
5. 计算点p到256个中心的距离向量 dis=2Cp+p_norm
6. 计算dis中最小的那个数据的index,即为离点p最近的聚类中心

分析

为什么第5步中的算式就得到距离了呢?
答:设C中的一个聚类中心向量为 (c1,c2,...,c2000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值