Scikit-learn (sklearn) est le meilleur choix pour l'apprentissage automatique, parmi les trois répertoriés. Les modèles Pandas et Stats contiennent certains algorithmes d’apprentissage prédictif, mais ils ne sont pas encore prêts pour la production. Souvent, les auteurs travaillant sur différents projets, les bibliothèques sont complémentaires. Par exemple, des Dataframes de Pandas ont récemment été intégrés dans les modèles de Stats. Une relation entre sklearn et Pandas n’est pas (encore) présente.
Définir la fonctionnalité. Ils courent tous. Si vous parlez de ce qui est le plus utile, cela dépend de votre application. Je donnerais certainement un +1 à Pandas ici, car il a ajouté une nouvelle structure de données géniale à Python (cadres de données). Les pandas ont probablement aussi la meilleure API.
Ils sont tous activement soutenus, même si je dirais que Pandas possède la meilleure base de code. Sklearn et les pandas sont plus actifs que Statsmodels.
Le choix évident est Sklearn. Il est facile et clair comment le réaliser.
from sklearn.linear_models import LogisticRegression as LR
logr = LR()
logr.fit( X, Y )
results = logr.predict( test_data)
linear_model
(singulier) et nonlinear_models
.Je voudrais qualifier et clarifier un peu la réponse acceptée.
Les trois packages sont complémentaires car ils couvrent des domaines différents, ont des objectifs principaux différents ou mettent l’accent sur différents domaines de l’apprentissage / des statistiques.
statsmodels a des pandas en tant que dépendance, les pandas utilisent éventuellement statsmodels pour certaines statistiques. statsmodels utilise
patsy
pour fournir une interface de formule similaire aux modèles en tant que R.Il existe un certain chevauchement des modèles entre scikit-learn et statsmodels, mais avec des objectifs différents. voir par exemple Les deux cultures: statistiques vs apprentissage automatique?
un peu plus sur statsmodels
statsmodels a l'activité de développement la plus basse et le cycle de publication le plus long des trois. statsmodels a beaucoup de contributeurs mais malheureusement toujours deux "mainteneurs" (je suis l'un d'eux.)
Le «core product» de la statistique est «prêt pour la production»: modèles linéaires, modèles linéaires robustes, modèles linéaires généralisés et modèles discrets existent depuis plusieurs années et sont vérifiés par rapport à Stata. R. Régression VAR (vecteur autorégressif), qui ne sont disponibles dans aucun autre package python.
Quelques exemples montrant les différences spécifiques entre l'approche d'apprentissage automatique dans scikit-learn et l'approche statistique et économétrique dans les modèles de statistiques:
La régression linéaire simple
OLS
comporte un grand nombre d’analyses post-estimation http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.html, y compris des tests de paramètres, des mesures des valeurs aberrantes et des tests de spécification http: / /statsmodels.sourceforge.net/devel/stats.html#diagnostics-de-residual-and-specification-La régression logistique peut être effectuée dans les modèles de statistiques, en tant que
Logit
modèle discret ou en tant que famille dans un modèle linéaire généralisé (GLM
). http://statsmodels.sourceforge.net/devel/glm.html#module-referenceGLM
comprend les familles habituelles, des modèles discrets contient en plusLogit
aussiProbit
, multinomial et compter la régression.Logit
Utiliser
Logit
est aussi simple que cela http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.htmlla source