Я выполнил кластеризацию Kmeans и обнаружил центры кластеров, используя OpenCV C ++ API.
kmeans(data_points, clusterCount, labels, TermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0), 3, KMEANS_PP_CENTERS, cluster_centers);
Затем я использую евклидово расстояние до , чтобы найти ближайший кластер для новой точки данных против всех центров кластеров .
int distance = find_EucledianDist(new_datapoint, cluster_centers);
Как бы я использовал Расстояние Махаланобиса вместо Евклидово расстояние ? Я знаю, что должен вычислить Ковариационную Матрицу, инвертировать ее и найти расстояние Махаланобиса.
Однако, я не знаю, как мне это сделать и в каком порядке (найти коварную матрицу, инвертированная матрица которых данные / матрица)?