gpt4 book ai didi

algorithm - 寻找数据集之间的相似性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:53 24 4
gpt4 key购买 nike

我有包含不同值的数据集:

Set1 = {X1, X2, ..., Xn}

Set2 = {X1, X2, ..., Xn}

...

X 值具有不同的范围(这正是我无法找出解决我的问题所需的算法的原因)- 有些是严格的 [0.0 - 1.0] 值,其他可能在不同/任何范围内。

我需要找出一种方法来“分组”这些集合,或者换句话说 - 找到两个给定集合之间的“相似性”。

显然,我可以简单地编写一长串“IF”语句,将每个值与另一个值进行比较,如果它们相差某个 DELTA 量,我可以表明两个给定的集合不“相似”。问题是,我的集合很大并且包含动态数据。因此,我需要一个通用函数来计算每个集合的某种哈希值(至少我是这么想的):

int hash1 = HashFunction(Set1)

int hash2 = HashFunction(Set2)

if (|hash1 - hash2| < DELTA): return "Sets are similar"

如果有任何关于如何实现它的提示或想法,我将不胜感激。

更新:

阅读评论后我意识到也许我也应该稍微改变一下我的问题:您对良好的“相似性”指标有何建议?

我所说的“相似性”是指一些动态值,表明集合的值有多“接近”。例如,如果我有一个测试集:SetA{ 0.5, 100 },那么 SetB{ 0.5, 100 } 应该产生 1(或其他一些表明完美匹配的值).同时将 SetASetC { 0.1, 300 } 进行比较应该返回低很多的“匹配”值,而 SetD { 0.45, 101 }应该返回一个类似于“完美匹配”的值。这里要注意的关键是,例如 0.45 和 0.5 的值比 100 和 300 的值“更相似”,因为:|0.45 - 0.5|/最大值 (0.45, 0.5) < |100 - 300|/最大 (100, 300)

如果我简单地计算两个集合之间的值差之和,它不会给我任何有意义的结果(因为两个集合可以包含完全不同的数字(从逻辑的角度来看),但相互抵消给出不正确的结果)

最佳答案

所以,您想知道两个物体之间的距离。在数学中,集合连同给出集合中对象距离的操作称为 metric space。 .

显然,该指标有多种可能的选择。常见的有绝对差之和(distance = |x1-y1|+|x2-y2|+...)和平方差之和(distance = (x1-y1)²+(x2-y2)²+ ...)。如果这些指标不适合您,请定义“相似”的含义。

关于algorithm - 寻找数据集之间的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15278303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com