Я хотел бы измерить качество кластеризации с помощью ошибки квантования, но не могу найти четкой информации о том, как вычислить эту метрику.
Несколько документов / статей, которые я нашел:
- "Оценка количества кластеров в наборе числовых данных с помощью моделирования ошибок квантования" (К сожалению, к этой статье нет свободного доступа)
- Этот вопрос опубликован еще в 2011 году на сайте Cross-Validated. о различных типах мер расстояния (вопрос очень конкретный и мало что дает о расчете)
- Это основной репозиторий, где функция
quantization_error
(в самом конце код) реализован на Python
Что касается третьей ссылки (это лучшая информация, которую я нашел до сих пор), я не знаю, как интерпретировать расчет (см. Фрагмент ниже):
(# аннотации мои. Вопросительные знаки обозначают шаги, которые мне непонятны)
def quantization_error(self):
"""
This method calculates the quantization error of the given clustering
:return: the quantization error
"""
total_distance = 0.0
s = Similarity(self.e) #Class containing different types of distance measures
#For each point, compute squared fractional distance between point and centroid ?
for i in range(len(self.solution.patterns)):
total_distance += math.pow(s.fractional_distance(self.solution.patterns[i], self.solution.centroids[self.solution.solution[i]]), 2.0)
return total_distance / len(self.solution.patterns) # Divide total_distance by the total number of points ?
ВОПРОС: Правилен ли этот расчет ошибки квантования? Если нет, то каковы шаги для его вычисления?
Любая помощь приветствуется.