【问题标题】:How should I implement a Mahalanobis distance function in Java?我应该如何在 Java 中实现马氏距离函数?
【发布时间】:2012-07-06 06:40:28
【问题描述】:

我正在用 java 开发一个项目,并且有两个 10x15 的 2d int 数组。我想在它们之间转换Mahalanobis distance。它们沿数组的 x 轴(大小 10)按类别分组。我知道您必须在这些组中找到平均值并重新分配数据以使其居中。我现在的问题是生成计算所需的协方差矩阵。如果有人知道执行此操作的好方法或指出可以引导我完成 3D 过程的有用指南,那将是一个很大的帮助。谢谢。

【问题讨论】:

    标签: java 3d matrix distance covariance


    【解决方案1】:

    covariance 矩阵包含任意两个变量之间的预期关系。给定向量x 上的统计分布,统计均值avg

    covariance(i,j) = expected value of [ (x[i] - avg[i])(x[j] - avg[j]) ]
    

    给定一组N 向量v_1 ... v_N 的统计集,平均向量avg,您可以估计它们的分布的协方差如下:

    sample_covariance(i,j) = sum[for k=1..N]( (v_k[i] - avg[i])*(v_k[j] - avg[j]) ) / (N-1)
    

    最后一个是您要查找的协方差矩阵。我建议您也阅读上面的 wiki 链接。

    【讨论】:

    • 感谢您的帮助。对于任何未来想要这样做的人,有一个名为 Colt 的不错的 Java 库,它具有一整套用于操作矩阵的函数。
    猜你喜欢
    • 2019-12-19
    • 1970-01-01
    • 2013-11-24
    • 2016-04-21
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多