लिनीयर रिग्रेशन कैसे काम करता है

इंटरमीडिएट Regression with statsmodels in Python

Maarten Van den Broeck

Content Developer at DataCamp

स्टैंडर्ड सिंपल लिनीयर रिग्रेशन प्लॉट

लिनीयर रिग्रेशन ट्रेंड लाइन वाला एक स्कैटर प्लॉट.

इंटरमीडिएट Regression with statsmodels in Python

रेज़िडुअल्स को विज़ुअलाइज़ करना

स्कैटर प्लॉट में लिनीयर रिग्रेशन ट्रेंड लाइन और पॉइंट्स से लाइन तक खंड, जो रेज़िडुअल्स दिखाते हैं.

इंटरमीडिएट Regression with statsmodels in Python

बेस्ट फिट के लिए एक मेट्रिक

सबसे सरल आइडिया (जो काम नहीं करता)

  • सभी रेज़िडुअल्स का सम लें.
  • कुछ रेज़िडुअल्स नेगेटिव होते हैं.

अगला सरल आइडिया (जो काम करता है)

  • हर रेज़िडुअल का स्क्वायर लें, और उन स्क्वायर का योग करें.
  • इसे sum of squares कहते हैं.
इंटरमीडिएट Regression with statsmodels in Python

न्यूमेरिकल ऑप्टिमाइज़ेशन की ओर एक मोड़

एक क्वाड्रेटिक समीकरण का लाइन प्लॉट

x = np.arange(-4, 5, 0.1)
y = x ** 2 - x + 10

xy_data = pd.DataFrame({"x": x,
                        "y": y})

sns.lineplot(x="x",
             y="y",
             data=xy_data)

क्वाड्रेटिक फंक्शन y = x ** 2 - x + 10

इंटरमीडिएट Regression with statsmodels in Python

कैलकुलस से समीकरण हल करना

$y = x ^ 2 - x + 10$

$\frac{\partial y}{\partial x} = 2 x - 1$

$0 = 2 x - 1$

$x = 0.5$

$y = 0.5 ^ 2 - 0.5 + 10 = 9.75$

  • सभी समीकरण इस तरह हल नहीं होते.
  • आप Python से यह करवा सकते हैं.

अगर यह तुरंत समझ न आए तो चिंता न करें, अभ्यासों के लिए इसकी ज़रूरत नहीं होगी.

पिछला क्वाड्रेटिक फंक्शन, अब न्यूनतम खोजकर दिखाया गया

इंटरमीडिएट Regression with statsmodels in Python

minimize()

from scipy.optimize import minimize
def calc_quadratic(x):
  y = x ** 2 - x + 10
  return y
minimize(fun=calc_quadratic,
         x0=3)
      fun: 9.75
 hess_inv: array([[0.5]])
      jac: array([0.])
  message: 'Optimization terminated successfully.'
     nfev: 6
      nit: 2
     njev: 3
   status: 0
  success: True
        x: array([0.49999998])
इंटरमीडिएट Regression with statsmodels in Python

एक लिनीयर रिग्रेशन एल्गोरिदम

sum of squares मेट्रिक निकालने के लिए एक फंक्शन परिभाषित करें.

 

minimize() कॉल करें ताकि ऐसे coefficients मिलें जो इस फंक्शन को मिनिमाइज़ करें.

def calc_sum_of_squares(coeffs):
  intercept, slope = coeffs
  # More calculation!
minimize(
  fun=calc_sum_of_squares,
  x0=0
)
इंटरमीडिएट Regression with statsmodels in Python

अभ्यास करते हैं!

इंटरमीडिएट Regression with statsmodels in Python

Preparing Video For Download...