Scikit-learn (sklearn) - лучший выбор для машинного обучения из трех перечисленных. Хотя Pandas и Statsmodels содержат некоторые алгоритмы интеллектуального обучения, они еще скрыты / еще не готовы к работе. Часто, поскольку авторы будут работать над различными проектами, библиотеки являются бесплатными. Например, недавно Датафреймы Pandas были интегрированы в Statsmodels. Отношения между sklearn и Pandas отсутствуют (пока).
Определить функциональность. Они все бегут. Если вы имеете в виду, что является наиболее полезным, то это зависит от вашего приложения. Я определенно дал бы Pandas +1 здесь, поскольку он добавил отличную новую структуру данных в Python (dataframes). Панды также, вероятно, имеет лучший API.
Все они активно поддерживаются, хотя я бы сказал, что у Pandas лучшая кодовая база. Sklearn и Pandas более активны, чем Statsmodels.
Очевидный выбор - Sklearn. Это легко и понятно, как это сделать.
from sklearn.linear_models import LogisticRegression as LR
logr = LR()
logr.fit( X, Y )
results = logr.predict( test_data)
linear_model
(единственное), а неlinear_models
.Я хотел бы уточнить и немного уточнить принятый ответ.
Эти три пакета дополняют друг друга, поскольку охватывают разные области, преследуют разные основные цели или подчеркивают разные области машинного обучения / статистики.
У statsmodels есть панды в качестве зависимости, панды по выбору используют statsmodels для некоторой статистики. statsmodels использует,
patsy
чтобы обеспечить интерфейс с аналогичной формулой, что и R.В моделях между scikit-learn и statsmodels существует некоторое совпадение, но с разными целями. посмотрите, например, Две культуры: статистика против машинного обучения?
еще немного о statsmodels
statsmodels имеет самую низкую активность в разработке и самый длинный цикл выпуска из трех. У statsmodels есть много участников, но, к сожалению, только два «сопровождающих» (я один из них.)
Ядро statsmodels «готово к производству»: линейные модели, надежные линейные модели, обобщенные линейные модели и дискретные модели существуют уже несколько лет и проверены на соответствие Stata и R. statsmodels также имеет часть анализа временных рядов, охватывающую AR, ARMA и VAR (векторная авторегрессия) регрессия, недоступная ни в одном другом пакете Python.
Некоторые примеры, демонстрирующие некоторые специфические различия между подходом машинного обучения в scikit-learn и подходом статистики и эконометрики в statsmodels:
Простые линейная регрессия,
OLS
имеет большое количество анализа после оценки http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.html , включая тесты на параметрах, меры и резко отклоняющихся значения спецификации тесты HTTP: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-testsЛогистическая регрессия может быть выполнена в statsmodels либо как
Logit
модель в дискретной, либо как семейство в обобщенной линейной модели (GLM
). http://statsmodels.sourceforge.net/devel/glm.html#module-referenceGLM
включает в себя обычные семьи, отдельные модели содержат кроме тогоLogit
такжеProbit
, мультиномиальная и сосчитать регрессии.Logit
Использовать
Logit
так же просто, как этот http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.htmlисточник