O Scikit-learn (sklearn) é a melhor opção para aprendizado de máquina, dentre os três listados. Embora os modelos Pandas e Stats contenham alguns algoritmos preditivos de aprendizado, eles estão ocultos / ainda não estão prontos para produção. Freqüentemente, como os autores trabalharão em diferentes projetos, as bibliotecas são gratuitas. Por exemplo, recentemente os Dataframes do Pandas foram integrados aos modelos Stats. Um relacionamento entre sklearn e Pandas ainda não está presente.
Definir funcionalidade. Todos eles correm. Se você quer dizer o que é mais útil, isso depende do seu aplicativo. Definitivamente, daria um +1 ao Pandas aqui, pois ele adicionou uma ótima nova estrutura de dados ao Python (quadros de dados). O Pandas provavelmente também tem a melhor API.
Todos eles são ativamente suportados, embora eu diria que o Pandas tem a melhor base de código. Sklearn e Pandas são mais ativos que os modelos Stats.
A escolha clara é o Sklearn. É fácil e claro como executá-lo.
from sklearn.linear_models import LogisticRegression as LR
logr = LR()
logr.fit( X, Y )
results = logr.predict( test_data)
linear_model
(singular) e nãolinear_models
.Gostaria de qualificar e esclarecer um pouco a resposta aceita.
Os três pacotes são complementares, pois cobrem áreas diferentes, têm objetivos principais diferentes ou enfatizam áreas diferentes no aprendizado de máquina / estatística.
O statsmodels tem pandas como uma dependência, opcionalmente o pandas usa o statsmodels para algumas estatísticas. o statsmodels está usando
patsy
para fornecer uma interface de fórmula semelhante aos modelos como R.Há alguma sobreposição nos modelos entre os modelos scikit-learn e stats, mas com objetivos diferentes. veja, por exemplo, As duas culturas: estatística versus aprendizado de máquina?
um pouco mais sobre o statsmodels
O statsmodels tem a menor atividade de desenvolvimento e o ciclo de liberação mais longo dos três. O statsmodels tem muitos colaboradores, mas infelizmente ainda possui apenas dois "mantenedores" (eu sou um deles).
O núcleo do statsmodels é "pronto para produção": modelos lineares, modelos lineares robustos, modelos lineares generalizados e modelos discretos existem há vários anos e são verificados em relação ao Stata e R. statsmodels também possui uma parte de análise de séries temporais que abrange AR, ARMA e Regressão VAR (vetor autoregressiva), que não está disponível em nenhum outro pacote python.
Alguns exemplos para mostrar algumas diferenças específicas entre a abordagem de aprendizado de máquina no scikit-learn e a abordagem de estatística e econometria nos modelos de estatísticas:
A Regressão linear simples,,
OLS
possui um grande número de análises pós-estimativa http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.html, incluindo testes de parâmetros, medidas externas e testes de especificação http: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-testsA regressão logística pode ser feita nos modelos estatísticos, como
Logit
modelo em modelo discreto ou como família em modelo linear generalizado (GLM
). http://statsmodels.sourceforge.net/devel/glm.html#module-referenceGLM
inclui as famílias de costume, modelos discretos contém alémLogit
tambémProbit
, multinomial e contar regressão.Logit
O uso
Logit
é tão simples quanto este http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.htmlfonte