पंडों / स्टटस्मोडल / स्किकिट-सीखें


41
  1. क्या पंडों, स्टैटस्मॉडल और स्किटिट-मशीन सीखने के विभिन्न कार्यान्वयन / सांख्यिकीय संचालन सीखते हैं, या ये एक-दूसरे के पूरक हैं?

  2. इनमें से किसकी सबसे व्यापक कार्यक्षमता है?

  3. कौन सा सक्रिय रूप से विकसित और / या समर्थित है?

  4. मुझे लॉजिस्टिक रिग्रेशन लागू करना है। इनमें से कौन सा सुझाव मुझे उपयोग करना चाहिए?

जवाबों:


33
  1. मशीन लर्निंग के लिए स्किकिट-लर्न (स्केलेरन) सबसे अच्छा विकल्प है, जो तीन सूचीबद्ध हैं। जबकि पंडों और स्टैट्समोडल्स में कुछ भविष्य कहनेवाला एल्गोरिदम शामिल हैं, वे अभी तक तैयार नहीं / छिपे हुए हैं। अक्सर, जैसा कि लेखक विभिन्न परियोजनाओं पर काम करेंगे, पुस्तकालय मानार्थ हैं। उदाहरण के लिए, हाल ही में पंडों के डेटाफ्रेम को स्टैटस्मॉडल में एकीकृत किया गया था। स्केलेर और पंडों के बीच एक संबंध मौजूद नहीं है (अभी तक)।

  2. कार्यक्षमता को परिभाषित करें। वे सब चलाते हैं। यदि आपका मतलब है कि सबसे उपयोगी क्या है, तो यह आपके आवेदन पर निर्भर करता है। मैं निश्चित रूप से पंडों को यहां एक +1 दूंगा, क्योंकि इसने पायथन (डेटाफ्रेम) में एक शानदार नया डेटा स्ट्रक्चर जोड़ा है। पंडों के पास भी शायद सबसे अच्छा एपीआई है।

  3. वे सभी सक्रिय रूप से समर्थित हैं, हालांकि मैं कहूंगा कि पंडों का सबसे अच्छा कोड आधार है। Sklearn और Pandas, Statsmodels से अधिक सक्रिय हैं।

  4. स्पष्ट विकल्प स्केलेर है। यह प्रदर्शन करना आसान और स्पष्ट है।

    from sklearn.linear_models import LogisticRegression as LR
    logr = LR()
    logr.fit( X, Y )
    results = logr.predict( test_data)
    

5
नीचे दिए गए लंबे विवरण को पढ़ना सुनिश्चित करें!
डार्टडॉग

4
यह उत्तर यह समझाने के लिए उपेक्षा करता है कि पंडों मुख्य रूप से डेटा हेरफेर (जैसे अनुक्रमण, चयन, एकत्रीकरण) के लिए हैं, जबकि अन्य दो मॉडल (उदाहरण के लिए भविष्यवाणी या अनुमान) के लिए हैं।
नाथन गोल्ड

मैं एक साल से अधिक समय से स्केलेर का उपयोग कर रहा हूं और यह बहुत अच्छा रहा है, अब यह परियोजना बड़ी हो गई है मुझे पंडों के उत्कृष्ट डेटा संरचनाओं का उपयोग करने की आवश्यकता महसूस होती है, इसलिए मुझे लगता है कि वे लंबे समय में पूरक हैं।
डैशी

शायद यह हाल ही में बदल गया है, लेकिन आयात विवरण में, यह linear_model(एकवचन) होना चाहिए और नहीं linear_models
विशाल

75

मैं स्वीकार किए गए उत्तर को थोड़ा अर्हता प्राप्त करना और स्पष्ट करना चाहूंगा।

तीन पैकेज एक-दूसरे के पूरक हैं क्योंकि वे विभिन्न क्षेत्रों को कवर करते हैं, अलग-अलग मुख्य उद्देश्य रखते हैं, या मशीन सीखने / सांख्यिकी में विभिन्न क्षेत्रों पर जोर देते हैं।

  • पांडा मुख्य रूप से डेटा को सीधे संभालने और संचालित करने के लिए एक पैकेज है।
  • scikit-learn अक्सर बड़े और विरल डेटा के साथ भविष्य कहनेवाला मॉडलिंग पर जोर देने के साथ मशीन लर्निंग कर रहा है
  • सांख्यिकीमॉडल "पारंपरिक" सांख्यिकी और अर्थमिति कर रहा है, जिसमें पैरामीटर अनुमान और (सांख्यिकीय) परीक्षण पर अधिक जोर दिया गया है।

आँकड़ेमॉडल में एक निर्भरता के रूप में पांडा होते हैं, पांडा कुछ आंकड़ों के लिए वैकल्पिक रूप से सांख्यिकीमॉडल का उपयोग करते हैं। आँकड़ेमॉडल, patsyआर के रूप में मॉडल को एक समान सूत्र इंटरफ़ेस प्रदान करने के लिए उपयोग कर रहा है।

स्किकिट-लर्न और स्टैटमोडेल के बीच मॉडल में कुछ ओवरलैप है, लेकिन विभिन्न उद्देश्यों के साथ। उदाहरण के लिए देखें दो संस्कृति: सांख्यिकी बनाम मशीन सीखने?

सांख्यिकीमॉडल के बारे में कुछ और

सांख्यिकीमॉडल में सबसे कम विकास गतिविधि है और तीनों का सबसे लंबा रिलीज चक्र है। स्टैटमॉडल के कई योगदानकर्ता हैं लेकिन दुर्भाग्य से अभी भी केवल दो "अनुरक्षक" हैं (मैं उनमें से एक हूं।)

स्टैटमोडेल का मूल "प्रोडक्शन रेडी" है: लीनियर मॉडल, मजबूत लीनियर मॉडल, सामान्यीकृत लीनियर मॉडल और असतत मॉडल लगभग कई वर्षों से हैं और स्टाटा और आर के खिलाफ सत्यापित हैं। सांख्यिकीमॉडल में AR, ARMA और VAR (वेक्टर ऑटोर्रिजिव) रिग्रेशन, जो किसी अन्य अजगर पैकेज में उपलब्ध नहीं हैं।

मशीन-लर्निंग दृष्टिकोण के बीच कुछ विशिष्ट अंतर दिखाने के लिए कुछ उदाहरण और आँकड़े-सांख्यिकी में सांख्यिकी और अर्थमिति दृष्टिकोण:

सरल रेखीय प्रतिगमन, OLSमें बड़ी संख्या में आकलन के बाद का विश्लेषण है http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSReshow.html मापदंडों, बाह्य उपायों और विनिर्देश परीक्षणों पर परीक्षण सहित http: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-tests

लॉजिस्टिक रिग्रेशन को स्टैटमोडल में या तो Logitअसतत मॉडल के रूप में या सामान्यीकृत रैखिक मॉडल ( GLM) में एक परिवार के रूप में किया जा सकता है । http://statsmodels.sourceforge.net/devel/glm.html#module-reference

GLMसामान्य परिवारों में शामिल हैं, असतत मॉडल के अलावा शामिल Logitभी Probit, बहुपद और प्रतिगमन गिनती।

Logit

Logitइस 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.