Statistics 如何在这个用例中使用余弦相似性?

Statistics 如何在这个用例中使用余弦相似性?,statistics,data-mining,recommendation-engine,cosine-similarity,Statistics,Data Mining,Recommendation Engine,Cosine Similarity,如果我有一个查询向量a和一个项目向量B,如果有人能指导我如何对向量进行加权/规范化(同样的策略),那就太好了。 向量A将具有以下组件(属性1(二进制)、属性2(二进制)、属性3(int从0到50)、属性4(int从0到10) 向量B将具有相同的属性 我知道使用余弦相似性计算这两个向量之间的角度会得到这两个向量之间的距离。我想根据相似性创建一个推荐 但是我不清楚如何规范化这个例子中的属性和/或向量,因为它是binary+binary\u int range+int range。另外,如果我想给一个

如果我有一个查询向量a和一个项目向量B,如果有人能指导我如何对向量进行加权/规范化(同样的策略),那就太好了。 向量A将具有以下组件(属性1(二进制)、属性2(二进制)、属性3(int从0到50)、属性4(int从0到10)

向量B将具有相同的属性

我知道使用余弦相似性计算这两个向量之间的角度会得到这两个向量之间的距离。我想根据相似性创建一个推荐

但是我不清楚如何规范化这个例子中的属性和/或向量,因为它是binary+binary\u int range+int range。另外,如果我想给一个属性赋予比另一个更高的权重,我该怎么做。我有什么选择

我在网上找到了文档的余弦相似性示例,但在本例中,向量A和B不是文档,因此在本例中我不使用TF idf

请告知


谢谢

如果您想使用td/idf的两个向量之间的传统余弦相似性,那么每个项都是向量中的一个维度。也就是说,您需要形成两个新向量a'和B',并执行这两个向量之间的相似性

这些向量每个项都有一个维度,您有65个项:

property 1: true and false
property 2: true and false
property 3: 0 through 50
property 4: 0 through 10
所以A'和B'将是长度为65的向量,每个元素将是0或1:

A'(0) = 1 if A(0) = true, and 0 otherwise
A'(1) = 1 if A(0) = false, and 0 otherwise
etc.
显然,您可以看到这是低效的。您实际上不需要计算A'或B'来使用与td/idf的余弦相似性;您可以假装计算了它们并对A和B执行计算。请注意,长度(A')=长度(B')=sqrt(4),因为A'和B'中正好有4个

不过,如果您想考虑房产3和房产4之间的相似性,td/idf可能不是您的最佳选择。也就是说,对于td/idf,房产3的值40不同于房产3的值41,也不同于房产3的值12。但是,41并不被视为与40比12“更远”;它们都只是不同的术语

所以,如果您希望属性3和4合并一个距离(1非常接近2,50是远离2)然后你必须定义一个距离度量。如果你想让布尔值的权重大于或小于属性3和属性4,你也必须定义一个不同的距离度量。如果你想做这些事情,那就不用考虑余弦了,只要想出一个值就行了

下面是一个例子:

distance = abs(A.property1 - B.property1) * 5 + 
           abs(A.property2 - B.property2) * 5 + 
           abs(A.property3 - B.property3) / 51 * 1 +
           abs(A.property4 - B.property4) / 10 * 2
然后相似度=(所有距离的最大值)-距离

或者,如果您愿意,相似性=1/距离


你可以随意定义它。如果你需要相似性在0和1之间,那么通过除以最大可能距离进行规范化。

你好,伊恩,非常感谢你提供了这样一个信息丰富的回复。我知道上面描述的方法一效率很低,因为我们将为简单的I创建多维向量nteger值。我同意第二种建议的方法,即计算距离度量并适当地对属性进行加权。不过,我有几个问题:(a)我们在上述情况下计算的是曼哈顿距离吗?(b)因此,如果我理解正确,(5,5,1,2)在上述示例中是对属性的加权(即属性1*2的权重高于3和4?)(c)当我们将属性3和4除以51和10时,我们是否对其进行规格化,使其值介于0和1之间,对此步骤不确定…..我是否可以使用所述的最小-最大规格化技术对属性3和4进行规格化,使其值介于0和1之间。然后将属性乘以某个权重常数,然后再乘以by余弦相似性?