CodeBlanks Logo Icon CodeBlanks

Lineer regresyon

Lineer regresyon, veriler arasındaki doğrusal ilişkiyi bulur ve bir doğruya uydurur.

Doğru uydurma

Doğrusal regresyon veriye y = w·x + b doğrusunu uydurur. w eğim, b kesişimdir. Birden çok özellikte her özelliğin kendi ağırlığı vardır: y = w₁x₁ + w₂x₂ + ... + b.

m = LinearRegression().fit([[1], [2], [3]], [2, 4, 6])
print(m.coef_)       # [2.]
print(m.intercept_)  # 0.0 (yaklaşık)

Ağırlıklar yorumlanabilir: w = 2, x bir birim artınca y'nin iki birim arttığını söyler.

En küçük kareler

"En iyi" doğru, tahmin hatalarının karelerinin toplamını en küçük yapan doğrudur. Kare almak hem negatif-pozitif hataları eşitler hem de büyük hataları daha çok cezalandırır.

x = np.array([1, 2, 3, 4])
y = np.array([2.1, 3.9, 6.2, 7.8])
w, b = np.polyfit(x, y, 1)   # 1. derece: doğru
print(round(w, 2), round(b, 2))   # 1.94 0.15

np.polyfit ve LinearRegression aynı en küçük kareler çözümünü bulur.

Uygulama Eğim ve kesişim

İki özellikli X ile bir LinearRegression eğit. coef_ ve intercept_ değerlerini np.round(..., 2) ile yuvarlayıp alt alta yazdır.

Başlangıç kodu

model.py
import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1, 0], [0, 1], [1, 1], [2, 1]])
y = 3 * X[:, 0] + 2 * X[:, 1] + 5

# buraya yaz

Örnek çözüm

model.py
import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1, 0], [0, 1], [1, 1], [2, 1]])
y = 3 * X[:, 0] + 2 * X[:, 1] + 5

m = LinearRegression().fit(X, y)
print(np.round(m.coef_, 2))
print(np.round(m.intercept_, 2))

Beklenen çıktı

[3. 2.]
5.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir ev modelinde metrekare ağırlığı 15 ise ne anlama gelir?

  • Fiyat 15 birimdir
  • 15 m²'lik evler en pahalıdır
  • Model yüzde 15 hatalıdır
  • Her ek m² fiyatı 15 birim artırır Doğru cevap

Açıklama: Ağırlık, diğer özellikler sabitken o özelliğin bir birimlik etkisidir.

2 Öğrenilen eğimi oku.

Soru
egim = m.____[0]
Cevap
egim = m.coef_[0]

Açıklama: coef_ her özellik için bir ağırlık içeren dizidir.

3 Terimleri eşleştir.

Kavram Anlamı
w Eğim (ağırlık)
b Kesişim
en küçük kareler Kare hata toplamını küçültme
np.polyfit Polinom uydurma

Başlangıç bölümündeki tüm dersler