AI Atlas
Başlangıç· ~2 dk okuma#regression#supervised-learning#continuous

Regresyon

Regression

Bir girdi kümesinden sürekli sayısal bir çıktı tahmin eden denetimli öğrenme problemi — bir evin fiyatı, yarınki sıcaklık, satış miktarı.

REGRESYONyxŷ = β₀ + β₁xSayısal hedefi sürekli bir fonksiyonla tahmin eder.
Tanım

Regresyon, denetimli öğrenmenin sınıflandırmanın kardeşi olan diğer büyük ailesidir. Sınıflandırmada çıktı sonlu ve ayrıktır; regresyonda ise sürekli ve sayısal olur. "Bu evin fiyatı kaç TL" sorusunun cevabı 1.250.000 olabilir, 1.250.001 de olabilir; kategori değil, tam değerdir.

Regresyon problemleri genellikle bir hata fonksiyonunu (loss) minimize ederek çözülür. En yaygın kullanılan kareli hata (Mean Squared Error · MSE), tahminin gerçekten ne kadar saptığını cezalandırır. Daha aykırı değer dostu olan mutlak hata (MAE), aşırı sapan örneklerin etkisini sınırlar. Hangisini seçeceğin, aykırı değerlerin işle ne kadar kritik olduğuna bağlıdır.

Modeller skalada büyür: doğrusal regresyon en sade, polinom regresyon biraz daha esnek, karar ağaçları ve gradient boosting (XGBoost, LightGBM, CatBoost) gerçek dünya tabular verisinde sıklıkla en iyi sonucu verir. Sinir ağlarıyla çok değişkenli ve karmaşık ilişkileri öğrenebilirsin, ama küçük tabular veride çoğu zaman gradient boosting kazanır.

Benzetme

Tecrübeli bir emlakçı düşün. Bir eve girip 30 saniyede "yaklaşık 1.4 milyon" der. O sayıyı nereden çıkardı? Konum, metrekare, kat, bina yaşı, banyolar, manzara, çevredeki son satışlar — beyninde bu girdileri bir formüle bağlar ve fiyat tahmini üretir. Regresyon modelinin yaptığı tam olarak budur: çok sayıda özelliği bir sayıya dönüştürmek, bunu da geçmiş verideki gerçek satış fiyatlarından öğrenerek.

Gerçek dünyadan örnek

Bir taksi şirketi her seyahatin tahmini ücretini yolcuya başlamadan göstermek istiyor. Geçmiş 10 milyon yolculuktan veri var: başlangıç konumu, varış konumu, mesafe, saat, hava, trafik yoğunluğu, sürücü deneyimi. Çıktı = ödenmiş gerçek ücret (sürekli sayı).

Eğitilen gradient boosting modeli, "Levent → Üsküdar, salı 17:30, yağmurlu, mesafe 14.2 km" girdisinden 168 TL tahmin eder. Gerçek ücret 174 TL olduğunda model %3.5 hata yapmıştır. Test setinde ortalama mutlak hatayı 4 TL'nin altında tutarsa ürün canlıya çıkar. Modelin tahmini, hem fiyat şeffaflığı hem de operasyonel planlama için kullanılır.

Kod örnekleri
scikit-learn · regresyon ve hata metrikleriPython
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_absolute_error, r2_score
from sklearn.model_selection import train_test_split

# X: özellikler, y: sürekli sayısal hedef (örneğin fiyat)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = GradientBoostingRegressor(n_estimators=300, max_depth=4)
model.fit(X_train, y_train)

preds = model.predict(X_test)

mae = mean_absolute_error(y_test, preds)
r2 = r2_score(y_test, preds)

print(f"Ortalama mutlak hata: {mae:.2f}")
print(f"R²: {r2:.3f}  (1.0 mükemmel, 0 ortalama tahmini kadar)")
Ne zaman kullan
  • Tahmin etmek istediğin değer sayısal ve sürekli ise
  • Geçmiş veride gerçek değerler etiket olarak duruyorsa
  • Tahminin ne kadar yanlış olduğunu (sapma) ölçmek değer katıyorsa
  • Olasılık değil, doğrudan bir sayı çıktısı gerekiyorsa
Ne zaman kullanma
  • Çıktı kategorik olduğunda — sınıflandırma seç
  • Tahmin aralığı (lower/upper bound) kritikse — quantile regression veya bayesyen modelleri tercih et
  • Hedef değer küçük tarihsel veriden ekstrapolasyon istiyorsa — risk var, başka mimari düşün
Sık yapılan hatalar

Hedefi normalize etmemek

Hedef değer 100.000–10.000.000 aralığındaysa, lineer modeller bunu doğrudan modelleyemez ya da çok yavaş öğrenir. Logaritma alma ya da Box-Cox dönüşümü çoğu zaman MAE'yi belirgin azaltır.

Aykırı değerleri görmezden gelmek

Birkaç uç değer (örneğin yanlış girilmiş 999.999.999 fiyat) MSE tabanlı modeli berbat eder. Veri temizliği, robust loss (Huber, MAE), winsorization gibi tekniklerle aykırılarla baş et.

Sadece R²'ye bakmak

R² yüksekken bile model belirli aralıklarda büyük hata yapabilir. Hata dağılımını görselleştir (residual plot), MAE/RMSE'yi farklı kesimlerde ayrı ayrı raporla.