"这篇文档是关于前端面试中的距离函数知识点,主要介绍了在Bio.Cluster库中用于衡量相似度或距离的八种不同的距离函数,以及它们在聚类分析中的应用。"
在生物信息学中,距离函数是进行数据分析和聚类的关键工具。在"距离函数-高薪之路—前端面试精选集"中,提到了八种不同的距离计算方法,这些方法在Bio.Cluster库中用于评估数据点之间的相似性或差异。以下是对这些距离函数的详细说明:
1. **欧氏距离 (Euclidean distance) - 'e'**: 欧氏距离是最常见的距离计算方式,它基于两点间的直线距离。在Bio.Cluster中,欧氏距离定义为所有坐标差的平方和的平方根,适用于没有缺失值的表达谱数据。但在有缺失值的情况下,需要先对数据进行标准化处理。
2. **城市街区距离 (City-block distance) - 'b'**: 又称为曼哈顿距离,它是所有坐标差的绝对值之和。在处理基因表达数据时,即使存在缺失值,也能计算这种距离,因为它对每个维度单独计算。
3. **皮尔逊相关系数 (Pearson correlation coefficient) - 'c' 和 'a'**: 皮尔逊相关系数衡量的是数据点之间的线性相关性,'c'表示标准化的相关系数,'a'是其绝对值。这种距离通常定义为1减去相关系数的绝对值。
4. **未中心化的皮尔逊相关系数 (Uncentered Pearson correlation) - 'u' 和 'x'**: 这两种距离函数与皮尔逊相关系数类似,但不进行平均值的中心化,'u'表示相关系数,'x'表示其绝对值,对应的数据向量夹角余弦值。
5. **斯皮尔曼秩相关系数 (Spearman’s rank correlation coefficient) - 's'**: 斯皮尔曼秩相关系数是基于数据点的秩而不是实际值,它衡量的是数据分布的单调关系。
6. **肯德尔τ相关系数 (Kendall’s τ) - 'k'**: 肯德尔τ相关系数衡量的是数据点的排序一致性,用于判断两组数据是否有相关性。
其中,欧氏距离和城市街区距离满足三角不等式,属于度量空间中的距离函数,而其他六种基于相关性的距离函数不满足这一性质,被称为半度量(semi-metrics)。
在实际应用中,选择哪种距离函数取决于数据的特性和分析的目的。例如,对于连续型数据,欧氏距离和城市街区距离可能更为适用;而对于需要捕捉非线性关系或数据分布的分析,皮尔逊相关系数及其变体可能会更有优势。在聚类分析中,这些距离函数可以帮助确定数据点的相似程度,从而将它们分组成相似的簇。理解并正确使用这些距离函数对于生物信息学研究和前端面试中的数据分析部分至关重要。