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

#classification #knn #weaviate

#классификация #knn #weaviate

Вопрос:

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

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

Ответ №1:

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

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

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

использует ли он простое голосование или взвешенное по расстоянию голосование?

На v1.8.0 данный момент это простое голосование. Взвешенное по расстоянию голосование может стать хорошим дополнением в будущем.

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

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

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

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

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

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