math - 基于某些加权标准计算 'similar'对象的方法

标签 math machine-learning data-mining taxonomy

我有一个包含多个项目对象的站点。每个项目都有(例如):

  • 多个标签
  • 多个类别
  • 尺寸
  • 多种类型
  • 等等

我想编写一种方法来根据上述标准获取所有“类似”项目。我可以轻松地单独检索上述每个项目的类似项目(即类似规模的项目或共享同一类别的项目等),但我希望它更加智能,然后只选择具有上述所有共同点的项目,或至少具有上述一项共同点的项目。

理想情况下,我想权衡每个标准,即具有共同标签的项目比大小接近的项目更“相似”。具有两个共同标签的项目更相似比具有一个共同标签等的项目要多。

我可以采取什么方法(实践上和数学上)来做到这一点?

最佳答案

处理这个问题的常用方法(至少在机器学习中)是创建一个衡量相似性的指标 - A Jaccard metric考虑到您有类型、类别、标签等,但它们并不是真正的数字,所以这里似乎是一个很好的匹配。

一旦有了度量,您就可以使用 KD 树、vp 树或其他度量树结构来加快搜索相似项目的速度,前提是您的度量遵循三角不等式 ( d(a,b) < d(a ,c) + d(c, b) )

关于math - 基于某些加权标准计算 'similar'对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866011/

相关文章:

php - 如何在 PHP 中拆分 float ?

math - 有没有办法找到第n个素数的近似值?

c# - 当任何数学运算产生 'NaN' 时,如何强制 C# 编译器抛出异常?

python - 什么数据科学编程算法类似于连续变量的朴素贝叶斯?

machine-learning - 自动文本/模糊匹配的最佳机器学习方法

objective-c - objc中 "pi"和 "M_PI"有什么区别

machine-learning - 训练后如何用时间分布密集替换嵌入层?

推荐系统 - 将交易计数转换为星级评级

machine-learning - 用于潜在语义分析 (LSA) 的奇异值分解 (SVD) 生成的矩阵的含义/含义

用于图像模式识别的java框架?