我正在尝试计算两个向量 a 和 b 之间的马氏距离。最终,我将使用它作为统计算法中的距离度量。我正在使用 gsl 来实现它们。马氏距离的公式是 sqrt((ab)'c^-1(ab)),其中 c 是协方差矩阵。根据这个gsl 文档,它接受两个数据集并返回一个协方差值。我不确定如何使用它计算协方差矩阵。任何帮助表示赞赏。
谢谢。
我正在尝试计算两个向量 a 和 b 之间的马氏距离。最终,我将使用它作为统计算法中的距离度量。我正在使用 gsl 来实现它们。马氏距离的公式是 sqrt((ab)'c^-1(ab)),其中 c 是协方差矩阵。根据这个gsl 文档,它接受两个数据集并返回一个协方差值。我不确定如何使用它计算协方差矩阵。任何帮助表示赞赏。
谢谢。
我认为您首先需要了解协方差矩阵的计算,其次是示例代码以帮助您入门
for (i = 0; i < A->size1; i++) {
for (j = i; j < A->size2; j++) {
a = gsl_matrix_column (A, i);
b = gsl_matrix_column (A, j);
double cov = gsl_stats_covariance(a.vector.data, a.vector.stride,b.vector.data, b.vector.stride, a.vector.size);
gsl_matrix_set (C, i, j, cov);
}
}