当前位置: 首页 > 面试题库 >

寻找最接近的匹配

林冥夜
2023-03-14
问题内容

我有一个带有一组参数的对象,例如:

var obj = new {Param1 = 100; Param2 = 212; Param3 = 311; param4 = 11; Param5 = 290;}

另一方面,我有一个对象列表:

var obj1  = new {Param1 = 1221 ; Param2 = 212 ; Param3 = 311 ; param4 = 11  ; Param5 = 290 ; }
var obj3  = new {Param1 = 35   ; Param2 = 11  ; Param3 = 319 ; param4 = 211 ; Param5 = 790 ; }
var obj4  = new {Param1 = 126  ; Param2 = 218 ; Param3 = 2   ; param4 = 6   ; Param5 = 190 ; }
var obj5  = new {Param1 = 213  ; Param2 = 121 ; Param3 = 61  ; param4 = 11  ; Param5 = 29  ; }
var obj7  = new {Param1 = 161  ; Param2 = 21  ; Param3 = 71  ; param4 = 51  ; Param5 = 232 ; }
var obj9  = new {Param1 = 891  ; Param2 = 58  ; Param3 = 311 ; param4 = 21  ; Param5 = 590 ; }
var obj11 = new {Param1 = 61   ; Param2 = 212 ; Param3 = 843 ; param4 = 89  ; Param5 = 210 ; }

在列出的对象中找到第一个obj最接近的匹配的最佳(最简单)算法是什么?


问题答案:

您必须先定义 最接近的匹配项, 然后才能找到它!!

1-许多人使用的一种方法
均方误差
(或欧氏距离):

计算所有对象的均方误差:

Sqr(obj.Param1-obj1.Param1) + Sqr(obj.Param2-obj1.Param2) + ..... // for obj1
Sqr(obj.Param1-obj2.Param1) + Sqr(obj.Param2-obj2.Param2) + ..... // for obj2

然后选择最小值的那个

2-您也可以使用最小绝对误差:

Abs(obj.Param1-obj1.Param1) + Abs(obj.Param2-obj1.Param2) + ..... // for obj1
Abs(obj.Param1-obj2.Param1) + Abs(obj.Param2-obj2.Param2) + ..... // for obj2

然后选择最小值的那个

3-同样,您也可以将
k最近的邻居
应用于上面选择的任何条件

这完全取决于这些参数的属性…

有关更多阅读,您可以查看分类算法列表



 类似资料:
  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数:

  • 问题:找到最近的酒吧,提供我想要的饮料。 与此问题交互API请求将具有以下参数 查询参数可能选择一种以上的饮料(想想搜索“伏特加”)。 编写具有良好性能的SQL查询的好策略是什么? 我不是很专业,但我的想法是 选择范围内的条形图 从drink__bars中选择,其中bar_id在前一个选择结果中 加入饮料表以获取饮料数据 如何根据距离设置订单? 任何建议都不胜感激! 编辑:谢谢回答到现在为止,但他

  • 问题内容: 我想知道是否有可能找到一个最接近的元素的元素 ,是不是 在那里。 例如,如果我们具有[1,3,6,7]值,并且正在寻找最接近4的元素,则它应返回3,因为3是数组中的最大数字,小于4。 我希望这是有道理的,因为英语不是我的母语。 问题答案: 如果数组已排序,则可以在以下位置进行修改的二进制搜索:

  • 问题内容: 假设以下单词顺序 我想做的是将文本从BLA提取到LOOK,但是最接近外观的BLA。即我想得到 我应该如何使用正则表达式呢?我得到了一个可行的解决方案,但是效率极低。 有没有更好,更高效的方法来实现此模式的匹配? 我想做的是:我想匹配BLA,然后向前进行前瞻,直到使用LOOK进行正向前进或使用BLA进行负向前进。但是我不知道将其放入正则表达式中的方法。 作为引擎,我在python中使用r

  • 问题内容: 我试图找到没有jquery的具有特定标签名称的最接近的元素。当我单击a时,我想访问该表的。有什么建议吗?我读过有关偏移量的信息,但并不太了解。我应该只使用: 假设已经设置了单击元素 问题答案: 参加聚会的时间很少(非常),但是仍然如此。这应该做的伎俩:

  • 问题内容: 我正在编写一个小程序,为了提高效率,我需要能够找到数组中最接近的纬度和经度。 假设您有以下代码: 我得到的结果是: 它应该是(在此示例中,列表中的最后一个对象) 我知道如何获取单个值的最接近单元格,但我想让lambda函数考虑这两个值,但我不确定如何做到。救命? 问题答案: 为了正确计算地球上各点之间的距离,您需要使用Haversine公式。使用此答案中提供的Python实现,您可以像

  • 问题内容: 我想在哈希图中搜索键,然后找到与该键最接近的键! 因此,基本上我想搜索一个long,如果地图中不存在该long,则找到与该long值最接近的匹配项!我怎样才能做到这一点!? 提前感谢 问题答案: 如果不迭代其所有键,就无法做到这一点。我假设这不是您想要的,所以这是一种使用的方法:

  • 我正在尝试自动查找一个数字与另一个数字的最接近因子; 示例: 700到30的最接近因子是28(30不等于700,但28等于700)。 一个显而易见的解决方案就是得到700的所有因子,并做一个简单的距离计算,找到离30最近的因子,但这似乎是低效的。 另一种解决方案是找到所有基本质因数,例如: 将这些数字相乘得到所有的组合,从而找到最接近的。 我正在尝试对其进行编程,使其自动化。有更好的解决方案吗?