У меня есть следующий код в R, который вычисляет расстояние mahalanobis в наборе данных Iris и возвращает числовой вектор с 150 значениями, один для каждого наблюдения в наборе данных.Есть ли эквивалент Python функции mahalanobis() в R? Если нет, как я могу его реализовать?
x=read.csv("Iris Data.csv")
mean<-colMeans(x)
Sx<-cov(x)
D2<-mahalanobis(x,mean,Sx)
Я пытался реализовать то же самое в Python, используя «scipy.spatial.distance.mahalanobis (U, V, VI)» функцию, но, кажется, эта функция принимает только одномерные массивы в качестве параметров.
Это именно то, что я искал. Я не очень хорошо разбираюсь в Python, но я боролся с этим. Благодаря тонну! – jose14
Не могли бы вы также предложить, как использовать расстояния Махаланобис, чтобы выполнить обнаружение извне? Как мы можем определить пороговое значение расстояний, чтобы обнаружить выбросы? – jose14
Вы можете использовать $ (1- \ alpha) $ процентиль $ \ chi^2 $ распределения в качестве порога. См. Здесь (очень много!) Описательный ответ о статистических аспектах расстояния Махаланобис: http://stats.stackexchange.com/questions/62092/bottom-to-top-explanation-of-the-mahalanobis-distance –