相似度算法用于衡量成对的记录、节点、数据点、文本之间的相似度。相似度算法可以基于两个数据点之间的距离(例如欧氏距离)或基于文本的相似性(例如Levenshtein算法)。这些算法具有广泛的应用,尤其是在推荐方面特别有用。它们可用于识别相似的项目或向用户推荐相关内容。
常见的相似度算法
欧氏距离:欧氏空间中两点之间直线距离的度量。欧氏距离计算简单,广泛应用于机器学习,但在数据分布不均匀的情况下不是最佳选择。
余弦相似度:基于两个向量之间的角度来衡量两个向量之间的相似度。
Levenshtein算法:一种用于测量两个字符串之间距离的算法,基于将一个字符串转换为另一个字符串所需的最小单字符编辑(插入、删除或替换)次数。Levenshtein算法通常用于拼写检查和字符串匹配任务。
Jaro-Winkler算法:一种基于匹配字符数和换位数来衡量两个字符串之间相似性的算法。它类似于Levenshtein算法,通常用于记录链接和实体解析任务。
奇异值分解(SVD):一种矩阵分解方法,可将一个矩阵分解为三个矩阵的乘积。当下最先进的推荐系统都会用到它。