Я реализую многословную классификацию текста путем обучения 4709 отдельных бинарных логических классификаторов регрессии в Sklearn, используя HashingVectorizer [(n_features = 2 ** 24, binary = True, ngram_range = (1,2) ].Sklearn: Как ускорить решение Функция
Точность довольно хорошая, но задержка прогнозирования огромна. Среднее соотношение разреженности изученных матриц составляет 0,967, а форма матриц - (1, 16777216). Использование функции предсказания функции прогнозирования в течение одной записи составляет 147,9 сек. (на сервере с одним процессором Intel Xeon E5 2630v4). В большинстве случаев (80%) расходуется scipy редкая функция csc_tocsr.
Когда я предварительно обрабатываю матрицы с:
cf[i] = sparse.csr_matrix(clf.coef_.T)
и сделать вывод вероятность (мне не нужна нормализация, только порядок вероятностей) непосредственно
prob[i] = x*cf[i]
он принимает только 0,043 сек, чтобы вывести 407 (10%) классификаторов но потребление памяти 25GB, поэтому Мне понадобится около 250 ГБ оперативной памяти для хранения всех классификаторов в памяти.
Есть ли способ ускорить работу решения при сохранении матриц разреженных или каких-либо других способов предварительной обработки, которые занимают меньше памяти.