我已经使用 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);
我应该如何使用马哈拉诺比斯距离 (Mahalanobis Distance) 代替欧几里得距离 (Euclidean Distance)?我知道我需要计算协方差矩阵,并将其求逆后找到马哈拉诺比斯距离。
然而,我不知道应该如何进行操作和顺序是什么 (找到协方差矩阵后求哪个数据/矩阵的逆矩阵)?