Sz
Sıfır Gecikme
veri bilimi · türkçe
Tümüİnteraktif📖Rehber🛠Araç📊Vaka💼Kariyer🐍Playground📚Öğren
Hakkımda
← Ana sayfainteraktif

Linear regression: çizgiyi sen çiz

29 Nisan 2026 · 8 dakika okuma

Bir kahve dükkanı sahibisin. Hava sıcak olduğunda dondurma satışın artıyor, soğuk olduğunda düşüyor. Peki yarın 28 derece olacak, ne kadar dondurma hazırlamalısın?

İşte linear regression tam olarak bu soruyu cevaplar. Geçmiş veriden bir kalıp çıkarır, gelecek için tahmin yapar. Tüm makine öğrenmesinin atası diyebiliriz.

Önce dene, sonra okuyalım

Aşağıdaki demoda noktaları sürükle, yenilerini ekle. Mavi çizginin nasıl tepki verdiğini izle. R² değerini nasıl etkiliyor?

Denklem
2+ nokta gerekli
0.00
Nokta
0

Nasıl çalışır: Mavi çizgi, tüm noktalara olan dikey uzaklıkların karelerinin toplamını minimize eder (en küçük kareler). R² 1'e yakınsa model veriyi iyi açıklıyor, 0'a yakınsa zayıf bir uyum vardır.

Peki bu çizgi nasıl çiziliyor?

Demoyla oynarken fark etmiş olabilirsin: çizgi her zaman noktaların "ortasından" geçiyor. Daha doğrusu, her noktanın çizgiye olan dikey uzaklığını ölçüp, bu uzaklıkların karelerinin toplamını minimize ediyor. Buna en küçük kareler yöntemi deniyor.

Niye karelerin toplamı? Çünkü pozitif ve negatif hatalar birbirini sıfırlamasın diye. Bir nokta çizginin 2 birim üstünde, diğeri 2 birim altında olsa toplamları sıfır olur, sanki hata yokmuş gibi görünür. Kareleri alınca her ikisi de pozitif olur, gerçek "uzaklık" ortaya çıkar.

R² ne anlatır?

R² (R-kare) modelin veriyi ne kadar iyi açıkladığının ölçüsü. 1'e yakınsa noktalar çizgiye sıkı sıkıya yapışmış, 0'a yakınsa çizgi neredeyse rastgele dağılmış noktaların ortalamasından farksız.

Önemli: yüksek R² doğru model demek değil. Aşırı uydurmuş da olabilirsin (overfitting). Veriye bakmadan sadece R²'ye güvenmek tehlikeli.

Python ile uygulama

from sklearn.linear_model import LinearRegression
import numpy as np

# Sıcaklık (x) ve dondurma satışı (y)
X = np.array([[18], [22], [25], [28], [32]])
y = np.array([120, 180, 220, 280, 350])

model = LinearRegression()
model.fit(X, y)

print(f"Eğim: {model.coef_[0]:.2f}")
print(f"Kesişim: {model.intercept_:.2f}")
print(f"R²: {model.score(X, y):.3f}")

# Yarın 28 derece, kaç dondurma?
print(f"Tahmin: {model.predict([[28]])[0]:.0f}")

Ne zaman işe yaramaz?

Sıradaki yazıda multiple regression: bir değil, birden fazla bağımsız değişkenle tahmin yapma.

💬 Yorumlar