Я работаю с векторами словесных частот и проверял некоторые из различных мер измерения, доступных в Scikit Learns Pairwise Distances. Я бы хотел использовать эти расстояния для кластеризации и классификации.Оценка мер измерения расстояния
Обычно у меня есть матрица характеристик ~ 30 000 x 100. Моя идея заключалась в том, чтобы выбрать метрику расстояния, которая максимизирует попарные расстояния, пробегая попарные различия по одному и тому же набору данных с метриками расстояния available in Scipy (например, Евклида, Городблока и т. Д.) и для каждой метрики
преобразования расстояний, вычисленных для набора данных для zscores нормализации показателей по
получить диапазон этих zscores, т.е. распространение расстояний
используйте метрику расстояния, которая дает мне самый широкий диапазон расстояний, поскольку она, по-видимому, дает мне максимальное распространение по моему набору данных и большую дисперсию для работы. (См код ниже)
Мои вопросы:
делают ли такой подход имеет смысл?
Существуют ли другие процедуры оценки, которые следует попробовать? Я нашел эти документы (Gavin, Aggarwal, но они не применяются 100% здесь ...)
Любая помощь очень ценится!
Мой код:
matrix=np.random.uniform(0, .1, size=(10,300)) #test data set
scipy_distances=['euclidean', 'minkowski', ...] #these are the distance metrics
for d in scipy_distances: #iterate over distances
distmatrix=sklearn.metrics.pairwise.pairwise_distances(matrix, metric=d)
distzscores = scipy.stats.mstats.zscore(distmatrix, axis=0, ddof=1)
diststats=basicstatsmaker(distzscores)
range=np.ptp(distzscores, axis=0)
print "range of metric", d, np.ptp(range)
Этот подход будет или не будет иметь смысла в зависимости от того, чего вы пытаетесь достичь.Этот набор функций может работать лучше, чем другие, с набором алгоритмов классификации/кластеризации. Хотя другие функции могут хорошо работать с другими алгоритмами. Вам нужно иметь конечную метрику, которую вы пытаетесь оптимизировать, и на основе этого вы можете выбрать наиболее подходящие функции. Эта метрика конца - это то, как вы будете оценивать свои функции и алгоритмы. – saq7