距离计算/矢量范围意义

数据挖掘 机器学习 分类 算法 初学者
2021-09-29 20:55:57

我正在尝试实现基于项目的协同过滤。是否有任何距离计算允许对每个向量内的某些值范围进行加权?

例如,我希望能够说每个向量中的值 10..22 比范围内的值 0..10 更重要。

我一直在尝试 Pearson、Tanimoto 和 Euclidean 算法,但它们似乎都假设向量中每个值的权重相等。

我是否以正确的方式处理这个问题,如果不是,其他人如何处理这个问题?

3个回答

我创建了一个评分系统(“Thomas Scoring System”)来处理这个问题。如果您将“距离”视为相似度分数,那么该系统应该适合您。http://exploringpossibilityspace.blogspot.com/2014/02/thomas-scoring-system.html

简而言之,这里是 Thomas 评分系统 (TSS):将每个指标及其值视为衡量或反对绩效指数中特定值的证据。这是一个推理过程,而不是像通常方法中的算术计算。TSS 的输出是对所有指数值的证据权重的估计。证据权重可以表示为概率分布,其中所有证据权重总和为 1。

以您的示例为例,每个范围都是一个条件: A) 10 <= x <= 22; 和 B) x < 10。如果 A 为真,那么它的权重有利于某些相似性(距离)分数。如果 B 为真,则它的权重有利于其他相似性(距离)得分,但与其他证据相比权重较小。

您提到了距离指标,但 Pearson 和 Tanimoto 没有。对于欧几里得距离,只需按某个因子缩放相关尺寸即可。例如,将维度的值加倍会使其对距离的贡献更大,从而使特征对距离度量更重要。

在相关说明中,您可能希望查看 Mahalanobis 距离,哪种解释了跨维度的协方差或“冗余”。

你的问题是可分离的。您可以 1)将向量转换为“原始”向量维度的加权组合,然后2)使用相关性或欧几里得距离等计算相似性或距离。

问题 1:权重通常是线性的,只是一个矩阵乘以您的特征向量,可以随心所欲地旋转和缩放它。矩阵乘法甚至可以减少向量维度(如果您愿意,可以一直降低到标量分数)。降维和最优特征向量变换的最先进技术是 SVD/PCA/LSI/LDA/NMF。仅供参考,其中一些方法产生的“特征向量”只是转换矩阵的列或行,特征值是每个新向量的相对重要性/权重。如果您正在进行降维并且您的特征存在冗余,则某些特征值将为零。

问题 2:一些基于向量范数的常见距离度量是

  • L_1(曼哈顿)
  • L_2(欧几里得)
  • L_inf(最高)
  • 余弦(向量积)
  • 分数(p-范数)

高维问题的最先进的距离度量是分数距离或 p 范数,类似于欧几里得距离/范数,但指数设置为 0 和 1 之间的值,而不是 2。