Вопрос или проблема
from sklearn.neighbors import NearestNeighbors, LSHForest
ImportError: невозможно импортировать имя 'LSHForest' из 'sklearn.neighbors'
Я узнал, что LSHForest устарел. Как я могу его использовать? Есть ли у нас другие альтернативы.
Я использую версию Sklearn 1.0.1
Модель LSHForest
действительно была устаревшей и удалена из scikit-learn
. Судя по историческим версиям, модель была удалена в версии 0.21, но все еще была доступна в версиях до этого (хотя она уже была устаревшей). Понижение версии scikit-learn
до 0.20 или более ранней должно позволить вам продолжать использовать модель.
Ответ или решение
LSHForest
действительно был удалён из библиотеки scikit-learn
, начиная с версии 0.21. Если вы используете версию 1.0.1, вам не удастся импортировать этот класс, так как он больше не существует в данной версии.
Если вам необходимо использовать аналогичные функциональности, вы можете рассмотреть несколько альтернатив:
-
Векторные пространственные методы: Вместо
LSHForest
вы можете использовать алгоритмы, такие какNearestNeighbors
илиKDTree
, которые тоже позволяют выполнять поиск ближайших соседей, но не используют локально чувствительные хеш-методы. -
Модуль
Faiss
: Если ваша задача связана с vекторизацией и большими наборами данных, вы можете использовать библиотекуFaiss
, разработанную Facebook. Она предоставляет реализацию поиска ближайших соседей с использованием различных методов (включая LSH), и она оптимизирована для работы с большими базами данных. -
Модуль
Annoy
: Это еще одна альтернатива, предназначенная для выполнения быстрого поиска ближайших соседей. ПодобноFaiss
,Annoy
может быть использован для работы с большими объемами данных.
Если вы хотите сохранить использование LSHForest
, единственное решение – это откатить версия scikit-learn
на 0.20 или предыдущую, где LSHForest
все еще доступен. Вы можете сделать это с помощью следующей команды:
pip install scikit-learn==0.20.4
Пожалуйста, учтите, что использование устаревших версий библиотек может привести к проблемам с совместимостью и безопасности, поэтому настоятельно рекомендуется использовать современные решения для новых проектов.
Таким образом, вы можете выбрать подходящий вариант в зависимости от ваших предпочтений и специфики задачи.