CodeBlanks Logo Icon CodeBlanks

Veri hazırlama

Regresyon için veriyi hazırlarsın.

Proje: hastalık ilerlemesi

Bu projede 442 diyabet hastasının yaş, cinsiyet, vücut kitle indeksi, kan basıncı ve 6 kan ölçümünden, bir yıl sonraki hastalık ilerlemesini (sayısal bir skor) tahmin edeceksin. Bu bir regresyon problemidir.

from sklearn.datasets import load_diabetes
d = load_diabetes()
print(d.data.shape)          # (442, 10)
print(d.feature_names)       # ['age', 'sex', 'bmi', 'bp', 's1', ...]
print(d.target[:5])          # [151.  75. 141. 206. 135.]

Bu veri setinde özellikler önceden ölçeklenmiştir: her sütunun ortalaması 0'a yakındır.

Hedefi tanımak

Bir regresyon projesinde hedefin aralığı ve dağılımı, hatanın büyüklüğünü yorumlamak için gereklidir: 50'lik bir MAE, hedef 25-350 aralığındaysa farklı, 0-60 aralığındaysa farklı anlam taşır.

print(y.min(), y.max())          # 25.0 346.0
print(round(y.mean(), 1), round(y.std(), 1))

Temel çizgi olarak "her hastaya ortalamayı tahmin et" modelinin MAE'si hesaplanır; model bunu geçmelidir.

Uygulama Eğitim ve test kümeleri

Veriyi test_size=0.2, random_state=0 ile böl. Eğitim ve test boyutlarını aynı satırda, ardından eğitim hedefinin ortalamasını round(..., 1) ile yazdır.

Başlangıç kodu

model.py
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split

X, y = load_diabetes(return_X_y=True)

# buraya yaz

Örnek çözüm

model.py
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split

X, y = load_diabetes(return_X_y=True)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
print(len(X_train), len(X_test))
print(round(y_train.mean(), 1))

Beklenen çıktı

353 89
151.6

Soru ve cevaplar

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

1 Bu projede hangi metrik ailesi kullanılmalıdır?

  • Doğruluk, F1
  • Karmaşıklık matrisi
  • Kesinlik, duyarlılık
  • MAE, RMSE, R² Doğru cevap

Açıklama: Hedef sürekli bir skor olduğu için regresyon metrikleri kullanılır.

2 Verinin %20'sini teste ayır.

Soru
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=____, random_state=0)
Cevap
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Açıklama: Regresyonda stratify kullanılmaz; sınıf yoktur.

3 Bilgileri eşleştir.

Kavram Anlamı
442 Hasta sayısı
10 Özellik sayısı
bmi Vücut kitle indeksi
target Bir yıllık ilerleme

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