第一章:提供推荐 #
欧几里得距离 #
欧氏距离是平方和的开方,欧氏距离越小,则两个向量的相似度越大。
$$d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$$
对于两个 n 维向量 $\mathbf{A} = (a_1, a_2, …, a_n)$ 和 $\mathbf{B} = (b_1, b_2, …, b_n)$,它们之间的欧氏距离 $d$ 可以表示为:
$$d(\mathbf{A}, \mathbf{B}) = \sqrt{\sum_{i=1}^{n}(a_i - b_i)^2}$$
曼哈顿距离 #
又称城市街区距离(City Block Distance),曼哈顿距离是两个点在标准坐标系上的绝对轴距总和。
$$D = |x_1 - x_2| + |y_1 - y_2|$$
同样,对于这两个 n 维向量 $\mathbf{A}$ 和 $\mathbf{B}$,它们之间的曼哈顿距离 $D$ 可以表示为:
$$D(\mathbf{A}, \mathbf{B}) = \sum_{i=1}^{n}|a_i - b_i|$$
曼哈顿距离与欧氏距离的区别:曼哈顿距离强调城市街区似的行和列的和的距离,欧氏距离强调直线距离。
皮尔逊相关系数 #
皮尔逊相关系数(Pearson product-moment correlation coefficient,PPMCC),也称为皮尔逊积矩相关系数,是用于衡量两个变量之间线性关系强度的统计指标。它的值介于 -1 和 1 之间,其中:
- 1 表示完全正相关:一个变量增加时,另一个变量也会以固定比率增加。
- -1 表示完全负相关:一个变量增加时,另一个变量会以固定比率减少。
- 0 表示没有线性相关:两个变量之间没有线性关系。
皮尔逊相关系数的计算公式是:
$$r = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2 \sum_{i=1}^{n}(Y_i - \bar{Y})^2}}$$
这里:
- $X_i$ 和 $Y_i$ 是两个变量的观测值。
- $\bar{X}$ 和 $\bar{Y}$ 是这两个变量的平均值。
- $n$ 是观测值的数量。
皮尔逊相关系数广泛用于各种领域,包括心理学、社会科学、生物学和金融学,用于研究两个变量之间的线性关系。它是最常用的相关性度量之一。
注意事项:
- 皮尔逊相关系数只能衡量线性关系的强度,不能表明因果关系。
- 对于非线性关系,这个系数可能无法正确反映变量之间的关系。
- 异常值可能对皮尔逊相关系数产生较大影响。
杰卡德系数 #
杰卡德系数(Jaccard Coefficient),也称为杰卡德相似性系数,是用来衡量两个集合之间相似性和差异性的统计指标。这个系数的值介于 0 和 1 之间,其中 0 表示没有相似性,1 表示完全相同。
杰卡德系数的计算公式如下:
$$J(A, B) = \frac{|A \cap B|}{|A \cup B|}$$
这里:
- $A$ 和 $B$ 是两个集合。
- $|A \cap B|$ 是集合 A 和集合 B 的交集元素个数。
- $|A \cup B|$ 是集合 A 和集合 B 的并集元素个数。
例如,假设有两个集合:
- 集合 A = {1, 2, 3}
- 集合 B = {2, 3, 4}
那么,它们的交集 $A \cap B$ = {2, 3},并集 $A \cup B$ = {1, 2, 3, 4}。因此,杰卡德系数计算为:
$$J(A, B) = \frac{|{2, 3}|}{|{1, 2, 3, 4}|} = \frac{2}{4} = 0.5$$
这意味着集合 A 和集合 B 有 50% 的相似度。
杰卡德系数广泛用于生态学、计算机科学(特别是在文本相似性和机器学习领域)、信息检索等多个领域。在文本分析中,它可以用来衡量两个文本或文档的相似性。在生物多样性研究中,它可以用来衡量两个生态群落的相似性。
基于何种维度的相似度比较 #
通常来说,存在基于用户的协作型过滤和基于物品的协作型过滤。一方面如果有上百万的用户,那么基于用户的协作性过滤的计算速度是无法忍受的,而物品间的比较不会像用户间的比较那么频繁,意味着可以持久化到数据库里,即可以显著提高推荐接口的响应速度。