问题标签 [mahalanobis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
255 浏览

python - 在 Python 中识别一组一维二进制向量中的异常值

当您拥有具有 n 个特征的 m 个一维二进制向量时,我正在研究识别异常向量的最佳方法,例如:

在我的情况下,n 和 m 在 100 中。我想确定哪些向量是人群中的异常值。我在 SciPy 和 HDBSCAN 等软件包中使用 Mahalanobis Distance 找到了一些信息(请注意,在识别出这些异常值后,我将对它们进行聚类,以查看异常值中是否还有其他模式)。在这两种情况下,示例都是有限的,但我也不知道这是否是与二进制向量一起使用的最佳方法。任何建议和例子或参考将不胜感激。

0 投票
1 回答
1244 浏览

r - R中的快速距离计算

我正在尝试计算

1)欧几里得距离,和

2) 马氏距离

对于 r 中的一组矩阵。我一直在这样做:

它提供:

那很完美!但我听说您也可以使用以下形式计算欧几里得/L2 距离:

在此处输入图像描述

我想以这种方式计算我的距离,因为马氏距离就是这个和协方差矩阵。看到这个

但是,我还没有弄清楚如何在 r 中对此进行编码。我试过了:

但他们就是不给我我想要的。建议?

注意 - 我希望将其作为单个操作来执行,而不是在任何类型的循环中。它必须非常快,因为我要多次执行数百万行。也许这是不可能的。我愿意改变v1and的格式v2

0 投票
1 回答
3793 浏览

r - 计算R中两组之间的马氏距离的简单示例

我正在尝试使用 Excel 重现示例来计算两组之间的马氏距离。

示例中的数据图

在我看来,这个例子很好地解释了这个概念。但是,我无法在 R 中重现。

在使用 Excel 的示例中获得的结果是Mahalanobis(g1, g2) = 1.4104.

按照此处为 R 给出的答案并将其应用于上述数据,如下所示:

并对数据执行函数返回以下输出:

Afaik$D.sq表示距离,与 Excel 示例1.724的结果有很大不同。1.4101由于我对马氏距离的概念不熟悉,我想知道我是否做错了什么和/或有更好的方法来计算这个,例如使用mahalanobis()

0 投票
0 回答
1576 浏览

r - 使用马氏距离确定组间差异的 Hotelling 的 T^2 测试示例

我正在尝试按照出版物中描述的程序来确定组之间的分离是否具有统计学意义。该出版物的水平高于我的知识水平,但我正在尝试逐步接近它。

为了澄清和简单起见,以鸢尾花数据集为例,并在 R 中进行分析。正如 PCA 图所示,该方法应该使我能够确定组/物种之间的距离是否显着不同。
Iris Species PCA 图

据我了解,要获得此结果,该过程包括以下四个步骤:

  1. 距离计算:使用来自前两个主成分的组质心之间的马氏距离。
  2. 学生 t 检验:采用 Hotelling 的双样本 T^2 统计量来确定是否分离 btw。聚类具有统计学意义。
  3. 计算 F 统计量:将 T^2 统计量转换为 F 值并计算 F 检验以指示集群之间是否存在分离。
  4. 使用 F 统计量执行假设检验:如果 F 值大于临界 F 值,则可以拒绝假设组之间没有分离的原假设。

我被困在第一步和第二步之间。如何使用 Mahalanobis 距离计算的结果进行 Hotelling 的 T^2 检验。

MWE如下:

马氏距离计算返回三个距离

就比例而言,它们似乎与 PCA 图所示的相当。对前两个主成分的Hotelling T2 检验对所有三个比较都返回显着结果。但我想知道如何使用参考出版物中所述的先前马氏距离计算进行 T 检验?

0 投票
1 回答
307 浏览

matlab - 如何在 MATLAB 中制作马氏距离矩阵?

我有一个数据集,每个样本重复 5 次,变量 25。我正在尝试使用这些参数在所有样本之间制作马氏距离矩阵。我使用了“mahal”函数,但这给出了每个重复的所有距离的向量。如何制作样本之间的距离矩阵(38 * 38)而不是向量(1 * 190)?

0 投票
0 回答
123 浏览

r - 在查找 mvoutlier 函数中使用的质心和协方差矩阵时遇到问题

我试图找到 mvoutlier 用来计算其马氏距离的质心和协方差矩阵。当我尝试自己计算马氏距离时,它与 mvoutlier 的结果不一致。Mahalanobis 距离也根据插入 mvoutlier 的 alpha 值而变化。mvoutlier 包中是否有一个函数可以生成这两个东西,还是有其他方法?

0 投票
1 回答
163 浏览

python - 如何在平庸的笔记本电脑上成功运行具有中等规模数据集的 ML 算法?

我有一台配备 8 GB RAM 和 Intel Core I5 处理器的联想 IdeaPad 笔记本电脑。我有 60k 个数据点,每 100 个维度。我想做 KNN,为此我正在运行 LMNN 算法来查找 Mahalanobis Metric。
问题是运行 2 小时后,我的 ubuntu 上出现了一个空白屏幕。我没有得到什么问题!是我的记忆变满了还是别的什么?
那么有什么方法可以优化我的代码吗?

我的数据集:数据
我的 LMNN 实现:

0 投票
1 回答
938 浏览

java - 一个点和平均向量之间的马氏距离总是相同的

我最近正在尝试执行一些数据清理算法。当我尝试计算数据集中的点与平均向量之间的马氏距离时,它似乎是一样的。

例如,我有一个数据集,如:

平均向量为:

协方差矩阵为:

那么{2,2,3},{4,5,9},{7,8,9}和均值向量之间的距离都是8290542,比较奇怪。在纸上计算后,结果是一样的。

有谁知道我的代码或想法有什么问题?如果有人可以帮助我,我将不胜感激。以下是我在处理此问题时使用的一些代码。

0 投票
1 回答
389 浏览

java - Java - 计算马氏距离时有时会返回 NaN

我使用 org.apache.mahout.common.distance.MahalanobisDistanceMeasure 来计算矩阵中的行与平均向量之间的距离,但它有时会返回 NaN。我尝试调试,似乎在 Object 类中抛出了 NullPointerException。但对于其他行,一切都很好。如果有人能给我一些指导,我将不胜感激。

输出:

centroid() 是一种计算矩阵质心的方法,返回 int[2](第一个元素是 x 坐标,第二个元素是 y)。dataSet 是我关注的矩阵。

0 投票
0 回答
354 浏览

machine-learning - 如何找到训练和测试数据的马氏距离

我需要找到我的训练数据和K.NN算法测试数据之间的马氏距离。

我在互联网上找到了一些描述,但由于没有实际示例,我无法理解。

训练数据:

测试数据:

这些是我的数据,我需要根据我的训练数据找到y1属于哪个类?(此数据属于 setosa 类,但我需要证明它使用的是马氏距离)

任何帮助将不胜感激。