机器学习 — 集体智慧编程

第一章:提供推荐 #

欧几里得距离 #

欧氏距离是平方和的开方,欧氏距离越小,则两个向量的相似度越大。

$$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% 的相似度。

杰卡德系数广泛用于生态学、计算机科学(特别是在文本相似性和机器学习领域)、信息检索等多个领域。在文本分析中,它可以用来衡量两个文本或文档的相似性。在生物多样性研究中,它可以用来衡量两个生态群落的相似性。

小结 #

通常来说,存在基于用户的协作性过滤和基于物品的协作性过滤。一方面如果有上百万的用户,那么基于用户的协作性过滤的计算速度是无法忍受的,而物品间的比较不会像用户间的比较那么频繁,意味着可以持久化的数据库里,即可以显著提高推荐接口的响应速度。

本文共 1149 字,上次修改于 Feb 11, 2024
相关标签: 数学, 机器学习, 算法, 读书笔记