Kabul edilen cevabı biraz nitelemek ve netleştirmek istiyorum.
Üç paket birbirlerini tamamlayıcıdır, çünkü farklı alanları kapsar, farklı ana hedefleri vardır veya makine öğrenimi / istatistiklerinde farklı alanları vurgularlar.
- pandalar temel olarak doğrudan veri üzerinde işlem yapan ve çalışan bir pakettir.
- Scikit-learn, genellikle büyük ve seyrek verilere sahip öngörücü modellemeye vurgu yaparak makine öğrenmesi yapıyor
- statsmodels "geleneksel" istatistik ve ekonometri yapıyor, parametre tahmini ve (istatistiksel) testler üzerinde çok daha fazla duruluyor.
statsmodels bağımlılık olarak pandalara sahiptir, pandalar isteğe bağlı olarak bazı istatistikler için istatistik modülleri kullanır. statsmodels, patsy
R gibi modellere benzer bir formül arayüzü sağlamak için kullanıyor .
Scikit-learn ve istatistik modelleri arasında, ancak farklı amaçlara sahip modellerde bazı örtüşmeler var. bkz . İki Kültür: istatistik vs. makine öğrenmesi?
istatistik modelleri hakkında biraz daha
statsmodels, en düşük geliştirme aktivitesine ve üçünün en uzun sürüm döngüsüne sahip. istatistik modellerinin birçok katkısı var ama maalesef hala sadece iki “koruyucu” (onlardan biriyim.)
İstatistik modellerinin çekirdeği "üretime hazır" dır: doğrusal modeller, sağlam doğrusal modeller, genelleştirilmiş doğrusal modeller ve ayrık modeller birkaç yıldan beri vardır ve Stata ve R'e karşı doğrulanmıştır. İstatistikmodels ayrıca AR, ARMA ve Başka hiçbir python paketinde bulunmayan VAR (vektör otoregressive) regresyonu.
Scikit-learning'de makine öğrenmesi yaklaşımı ile istatistik modellerinde istatistik ve ekonometri yaklaşımı arasındaki bazı farklılıkları göstermek için bazı örnekler:
Basit Doğrusal Regresyon, OLS
çok sayıda tahmin sonrası analiz sistemine sahiptir:
http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.html , parametreler, outlier ölçümleri ve şartname testleri http: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-tests
Lojistik Regresyon istatistik Logit
modellerinde kesikli model olarak veya genelleştirilmiş doğrusal modelde ( GLM
) bir aile olarak yapılabilir . http://statsmodels.sourceforge.net/devel/glm.html#module-reference
GLM
olağan aileleri içerir, ayrık modeller Logit
ayrıca Probit
multinomial ve count regresyon da içerir .
lojit
Kullanımı Logit
bu kadar basittir:
http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.html
>>> import statsmodels.api as sm
>>> x = sm.add_constant(data.exog, prepend=False)
>>> y = data.endog
>>> res1 = sm.Logit(y, x).fit()
Optimization terminated successfully.
Current function value: 0.402801
Iterations 7
>>> print res1.summary()
Logit Regression Results
==============================================================================
Dep. Variable: y No. Observations: 32
Model: Logit Df Residuals: 28
Method: MLE Df Model: 3
Date: Sat, 26 Jan 2013 Pseudo R-squ.: 0.3740
Time: 07:34:59 Log-Likelihood: -12.890
converged: True LL-Null: -20.592
LLR p-value: 0.001502
==============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
------------------------------------------------------------------------------
x1 2.8261 1.263 2.238 0.025 0.351 5.301
x2 0.0952 0.142 0.672 0.501 -0.182 0.373
x3 2.3787 1.065 2.234 0.025 0.292 4.465
const -13.0213 4.931 -2.641 0.008 -22.687 -3.356
==============================================================================
>>> dir(res1)
...
>>> res1.predict(x.mean(0))
0.25282026208742708