Я использую Libsvm в перекрестной проверке 5×2 для классификации очень большого количества данных, то есть у меня есть 47 тыс. Образцов для обучения и 47 тыс. Образцов для тестирования в 10 различных конфигурациях.
Я обычно использую скрипт Libsvm easy.py чтобы классифицировать данные, но это занимает так много времени, я ждал результатов более 3 часов и ничего, и мне все еще приходится повторять эту процедуру более 9 раз!
Кто-нибудь знает, как использовать libsvm быстрее с очень большим объемом данных? функции Libsvm в C ++ работают быстрее, чем функции python?
Обучающий алгоритм LibSVM не масштабируется до такого рода наборов данных; в наихудшем случае это занимает время O (n³), а в типичных — около O (n²). Первое, что нужно попробовать — правильно масштабировать наборы данных; если это все еще не работает, переключитесь на
Как упомянул Ларсман, libsvm может не так хорошо масштабироваться в зависимости от размерности данных и количества точек данных.
Реализация C может работать немного быстрее, но это не будет значительным отличием. У вас есть несколько вариантов, доступных для вас.
Надеюсь это поможет! Одна из самых сложных проблем в машинном обучении — справляться с чистой величиной данных, которые иногда требуются.
easy.py — это скрипт для обучения и оценки классификатора. выполняет метатренинг для параметров SVM с помощью grid.py. в grid.py это параметр «nr_local_worker», который определяет количество потоков. Вы можете увеличить его (проверьте загрузку процессора).