Несколько способов ускорить работу классификатора KNN:
- Ограничить число признаков. 1 Однако стоит учитывать, что при этом качество модели может снизиться. 1
- Использовать методы, понимающие разреженные матрицы. 1 Например, убрать StandardScaler и найти быструю замену функции distance.cdist, которая понимает разреженные матрицы (например, NMSLIB или другие подобные библиотеки). 1
- Вместо CountVectorizer использовать HashingVectorizer. 1 Ему не нужно хранить состояние, поэтому он должен работать быстрее. 1
- На этапе обучения создавать структуры данных. 3 Это поможет упорядочить набор обучающих данных и ускорить поиск ближайших соседей. 3
- Уменьшить количество потенциальных ближайших соседей. 4 Например, сравнивать только тексты, имеющие общие термины, нет смысла сравнивать тексты, которые не имеют никаких связей. 4
- Использовать двоичную кучу. 4 Для каждого текста хранить его ближайшие соседи в двоичной куче, корень которой есть самый ближайший сосед. 4
Выбор метода ускорения работы классификатора KNN зависит от конкретной ситуации.