Медленная производительность логистической регрессии в accord.net

Логистическая регрессия с использованием Accord.net ( http://accord-framework.net/docs/html/T_Accord_Statistics_Analysis_LogisticRegressionAnalysis.htm) занимает около 5 минут. SAS делает это за несколько секунд (также используя одно ядро ​​процессора).

Набор данных составляет около 40000 строк и 30 входов.

Почему такая разница? Использует ли SAS алгоритм с гораздо лучшей сложностью? Логистическая регрессия - довольно простой алгоритм, насколько я знаю.

Есть ли другая библиотека, которая будет работать лучше (желательно бесплатно)?

2 ответа

Решение состоит в том, чтобы закомментировать эту строку:

https://github.com/accord-net/framework/blob/development/Sources/Accord.Statistics/Analysis/LogisticRegressionAnalysis.cs#L504

Он вычисляет некоторые очень дорогие статистические данные, которые мне не нужны.

Существует класс, который можно использовать со стандартным пакетом Accord: https://gist.github.com/eugenem/e1dd2ef2149e8c21c37d

У меня был такой же опыт с многочленной логистической регрессией. Я провел сравнение между Accord, R, SPSS и Python's Scikit. У меня 30 входов, 10 выходов и более 1600 обучающих примеров. Аккорд занял 8 минут, а остальные заняли 2-8 сек. Согласие выглядит красиво, но для полиномиальной логистической регрессии это способ замедлить. Мое решение состояло в том, что я сделал небольшой веб-сервис python, который вычисляет регрессию и сохраняет результат в базе данных.

Другие вопросы по тегам