Какова логика алгоритма классификации KNN Weaviate?

Я использую механизм Weaviate KNN для выполнения мультиклассовой классификации, но не понимаю:

  • Какой тип KNN он использует?
  • Используется ли простое голосование или голосование с дистанционным взвешиванием?
  • используется косинусное расстояние?
  • использует ли он метод для поиска возможных соседей или использует грубую силу, чтобы найти всех истинных ближайших соседей?
  • что такое группы победителей / проигрышей и как они используются для прогнозирования класса нового вектора?

1 ответ

Отличные вопросы, позвольте мне ответить на них один за другим:

Какой тип KNN он использует?

Я не совсем уверен, что вы подразумеваете под «каким», но я думаю, что на это ответят оставшиеся вопросы. Следует иметь в виду, что классификация kNN Weaviate использует существующий векторный индекс для определенного класса. Таким образом, в зависимости от того, использовали ли вы собственные векторы или использовали модель для векторизации, входные параметры будут определять, на чем работает классификация. Например, если вы используете text2vecмодуль на textсобственность с названием description, то эти описания будут использоваться для поиска ближайших совпадений.

это простое голосование или взвешенное дистанционное голосование?

Что касается простого голосования. Взвешенное по расстоянию голосование может стать хорошим дополнением в будущем.

используется косинусное расстояние?

Как упоминалось в первом ответе, любые настройки, которые вы выбрали для своего класса, также будут применяться к классификации. По состоянию на v1.8.0Weaviate обычно использует косинусное расстояние, но в ближайшем будущем планируется добавить другие показатели расстояния .

использует ли он метод для поиска возможных соседей или использует грубую силу, чтобы найти всех истинных ближайших соседей?

Как и выше, он следует настройкам класса. Обычно используется приблизительный индекс HNSW . Вы можете настроить его параметры на уровне класса.

что такое выигрышные/проигрышные группы и как они используются для предсказания класса нового вектора?

Они являются инструментом, позволяющим получить некоторое представление о том, почему классификация привела к такому результату. Победившая группа - это «группа» результатов, набравших наибольшее количество голосов и, следовательно, приведших к классификации элемента как такового. Проигравшие группы (их может быть несколько) — это альтернативные «группы», не набравшие наибольшее количество голосов. Знание каждой группы может быть хорошим пониманием для настройки kдля будущих классификаций.

Другие вопросы по тегам