数据挖掘中的余弦相似度2024年11月20日 | 阅读 4 分钟 文档聚类、推荐引擎和搜索应用程序等任务需要衡量数据点之间的相似性。通常,确定向量相似度的方法是计算向量的余弦相似度。在下面的文章中,我们将余弦相似度视为一种数据挖掘工具,并展示其有用的用例以及如何将其用于解决其他任务。  理解余弦相似度范数积空间是余弦相似度的基础,这是一种用于评估两个非零向量 m 和 n 之间相关性的技术。角度余弦函数是两个向量的点积除以它们幅度的乘积,结果范围为 -1 到 1。分数 1 意味着向量将完全重叠,0 意味着它们正交,-1 表示完全相反。 余弦相似度公式计算两个向量 x 和 y 之间余弦相似度的公式如下:  其中,x⋅y 表示向量的点积,||x|| 和 ||y|| 分别表示它们的幅值。 余弦相似度的应用余弦相似度在各个领域都有很好的应用,包括: - 文档相似度: 余弦相似度用于自然语言处理,也应用于文本文档比较阶段。例如,可以将单词映射为数值(例如,TF-IDF 或 FV),然后仅通过其特征来比较文档的相似度。
- 推荐系统: 余弦相似度用于推荐,旨在预测目标用户可能与之互动或表现出兴趣的物品。因此,推荐系统可以通过仅基于向量分析产品和用户之间的权衡来开发。
- 信息检索: 余弦相似度是一种搜索引擎优化 (SEO) 方法,任何搜索引擎都可以根据用户的查询在所有文档中定位相应的项目。将查询向量与文档向量进行映射的技术,可以识别与查询最密切相关的文档。
- 图像相似度: 深度学习或其他特性引入了一个单一的功能数值特征,它定义了余弦的性质。这使得图像发现和图像检索(基于图像和内容的图像检索)成为可能。
计算余弦相似度计算余弦相似度涉及几个步骤: - 向量表示: 首先,必须给出一些向量。这可以通过不同的方式完成,例如词频、词袋、TF-IDF、词嵌入(如 Word2Vec、GloVe)或数字按钮。
- 向量归一化: 接下来,对于每个向量,每个分量都除以其幅值,使其成为单位向量。这种转换保留了余弦相似度对向量幅值的不变性。
- 点积计算: 然后,计算这些向量的点积,乘以归一化因子。这揭示了向量头部和尾部共同的平行性。
- 余弦相似度计算: 余弦相似度是点积与范数或向量幅值乘积的比率。
余弦相似度的优点余弦相似度具有几个优点: - 尺度不变性: 因为余弦相似度经过归一化,它不受大小或尺度的影响。因此,幅值操作对于改变不同幅值向量的长度非常有用。
- 降维: 使用余弦相似度,通过强调向量方向而不是幅值,降维将变得容易。因此,它广泛应用于高维数据。
- 可解释性: 余弦相似度分数范围从 -1 到 1,具有清晰的解释:1 是最大相似度值,0 是最低共同相似度,-1 表示完全相反。
余弦相似度的局限性尽管余弦相似度很有用,但它也有一定的局限性: - 缺乏上下文: 余弦相似度只关注向量的方向,未能考虑到赋予数据的语义或意义,这可以通过词嵌入等方法来改进,这些方法更适合上下文。重要的是,它可能会在检测向量之间细微差异时丢失信息。
- 对向量长度的敏感性: 虽然余弦距离度量对尺度是不变的,但它们对向量的垂直和水平分量都很敏感。然而,方向相同但幅值不同的向量仍将具有较少的相似性,因为余弦相似度得分较低。
- 稀疏数据: 在大多数元素为零,只有少量非零元素的情况下(例如,用词袋表示的文本数据),余弦相似度可能不是一个好的选择,因为它只关注非零元素。
结论余弦相似度作为数据挖掘中衡量向量相似度的最重要度量,在衡量它们之间的角度方面至关重要。其应用不仅限于一个领域,例如抄袭检测、推荐系统或文本挖掘。通过向量方向的总体化和面部降维,可以确保尺度不变性。除此之外,它也有其缺点,例如,它在检测上下文和考虑向量长度变化方面设计不佳。熟悉这些前提条件在将余弦相似度用作数据挖掘工具方面将发挥不可或缺的作用,从而为提高调查和决策效率提供基础。
|