如何在海量数据中查找最相似的topk样本


大概总结3中方法,不一定对,欢迎探讨

1:还记得KNN算法吧,选择最近的K个样本作为预测输出

其中减少计算量的地方在于使用了KD树,使得查找非常高效

先计算每个特征的方差,降序排序构建二叉树
对当前特征排序,取中位数作为分裂节点,把数据划分成2部分
对左右部分递归处理

搜索最近邻点:沿着路径搜索即可

当维数较大时,直接利用k-d树快速检索的性能急剧下降。
假设数据集的维数为D,一般来说要求数据的规模N满足条件:
N远大于2的D次方,才能达到高效的搜索。

另一个是改进的WAND算法


2:使用聚类算法

时间复杂度为O(n*k*t) n为样本数,k为聚类中心数,t为迭代次数

查找相似样本的时候就可以在本簇里面查找或者在相邻的簇里面查找


3:使用hash大法

对特征simhash一次

这样相似的样本就会被映射到相邻的位置



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值