Logistik Regresyon: Olasılık Tahmini ve Sınıflandırma

Logistik regresyon, bir örneğin belirli bir sınıfa ait olma olasılığını tahmin eder. Doğrusal regresyondan farklı olarak, çıktı 0 ile 1 arasında bir değer alır. Örneğin: e-postanın spam olma olasılığı %75 midir? Hastanın hastalığı olma riski nedir?

Temel fikir sigmoid fonksiyonudur:

σ(z) = 1 / (1 + e^(-z))

Burada z, doğrusal kombinasyondur: z = w₀ + w₁x₁ + w₂x₂ +... + wₙxₙ

Model, tahmin edilen olasılık 0.5'ten büyükse sınıfı 1, aksi takdirde 0 olarak etiketler. Bu 0.5 eşiği, karar sınırıdır. Eğitim sırasında ağırlıklar (w) ve sabit terim (w₀) güncellenerek sınıf ayrımı iyileştirilir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Öğrencinin ders saatine göre sınavı geçme olasılığını tahmin edelim.

1import numpy as np
2from sklearn.linear_model import LogisticRegression
3import matplotlib.pyplot as plt
4
5# Veri: ders saati ve geçme durumu (1=geçti, 0=kaldı)
6ders_saati = np.array([2, 3, 4, 5, 6, 7, 8, 9]).reshape(-1, 1)
7sonuc = np.array([0, 0, 0, 1, 1, 1, 1, 1])
8
9# Model eğit
10model = LogisticRegression()
11model.fit(ders_saati, sonuc)
12
13# 5.5 saatlik öğrenci için tahmin
14tahmin = model.predict_proba([[5.5]])
15print(f"5.5 saat ders yapan öğrenci geçme olasılığı: {tahmin[0][1]:.2%}")
16# Çıktı: 5.5 saat ders yapan öğrenci geçme olasılığı: 51.27%
17
18# Sınıflandırma sınırını görselleştir
19x_range = np.linspace(1, 10, 300).reshape(-1, 1)
20y_prob = model.predict_proba(x_range)[:, 1]
21
22plt.scatter(ders_saati, sonuc, color='red', label='Gerçek veri')
23plt.plot(x_range, y_prob, color='blue', label='Sigmoid eğrisi')
24plt.axhline(y=0.5, color='green', linestyle='--', label='Karar sınırı (0.5)')
25plt.xlabel('Ders Saati')
26plt.ylabel('Geçme Olasılığı')
27plt.legend()
28plt.show()

Bu kodda sigmoid eğrisi, ders saati arttıkça geçme olasılığının nasıl yükseldiğini gösterir. Yeşil çizgi (0.5 eşiği) karar sınırıdır: bu noktanın sağında model "geçti" tahmin eder.

Logistik regresyon, sigmoid fonksiyonu sayesinde doğrusal sınıflandırma problemlerini çözer. Olasılık tahmini sağlar ve 0.5 eşiğine göre sınıf atar. İkili (binary) sınıflandırma görevlerinde hızlı ve yorumlanabilir bir yöntemdir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz