Doğrusal regresyon nasıl çalışır

Python ile statsmodels'da Orta Düzey Regresyon

Maarten Van den Broeck

Content Developer at DataCamp

Standart basit doğrusal regresyon grafiği

Doğrusal regresyon eğilim çizgili bir saçılım grafiği.

Python ile statsmodels'da Orta Düzey Regresyon

Artıkları görselleştirme

Doğrusal regresyon eğilim çizgili saçılım grafiği ve noktaları eğilim çizgisine bağlayan, artık değerleri gösteren çizgiler.

Python ile statsmodels'da Orta Düzey Regresyon

En iyi uyum için bir ölçüt

En basit fikir (işe yaramaz)

  • Tüm artıkların toplamını alın.
  • Bazı artıklar negatiftir.

Sonraki basit fikir (işe yarar)

  • Her artığın karesini alın ve toplayın.
  • Buna kareler toplamı denir.
Python ile statsmodels'da Orta Düzey Regresyon

Sayısal optimizasyona kısa bir ara

İkinci dereceden bir denklemin çizgi grafiği

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)

İkinci dereceden fonksiyon y = x ** 2 - x + 10

Python ile statsmodels'da Orta Düzey Regresyon

Denklemi hesapla ile çözmek

$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$

  • Tüm denklemler bu şekilde çözülemez.
  • Bırakın Python çözsün.

Endişelenmeyin; bu kısmı anlamasanız da olur, alıştırmalarda gerekmez.

Önceki ikinci dereceden fonksiyonun minimumunun bulunmuş hâli

Python ile statsmodels'da Orta Düzey Regresyon

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])
Python ile statsmodels'da Orta Düzey Regresyon

Bir doğrusal regresyon algoritması

Kareler toplamı ölçütünü hesaplayan bir fonksiyon tanımlayın.

 

minimize() ile bu fonksiyonu en aza indiren katsayıları bulun.

def calc_sum_of_squares(coeffs):
  intercept, slope = coeffs
  # More calculation!
minimize(
  fun=calc_sum_of_squares,
  x0=0
)
Python ile statsmodels'da Orta Düzey Regresyon

Hadi pratik yapalım!

Python ile statsmodels'da Orta Düzey Regresyon

Preparing Video For Download...