CodeBlanks Logo Icon CodeBlanks

Veri hazırlama

Sınıflandırma için veriyi hazırlarsın.

Proje: şarap sınıflandırma

Bu projede kimyasal ölçümlerden şarabın üç üreticiden hangisine ait olduğunu tahmin edeceksin. scikit-learn'deki load_wine veri seti 178 örnek ve 13 özellik içerir:

from sklearn.datasets import load_wine
d = load_wine()
print(d.data.shape)          # (178, 13)
print(d.feature_names[:3])   # ['alcohol', 'malic_acid', 'ash']
print(d.target_names)        # ['class_0' 'class_1' 'class_2']

İlk adım her zaman veriyi tanımaktır: boyutlar, sınıf dağılımı ve özellik aralıkları.

Sınıf dağılımı ve aralıklar

np.bincount her sınıftan kaç örnek olduğunu sayar. Özelliklerin en küçük ve en büyük değerleri, ölçeklendirme gerekip gerekmediğini gösterir:

print(np.bincount(y))            # [59 71 48]
print(X.min(axis=0)[:3])
print(X.max(axis=0)[-1])         # proline ~1680, diğerleri çok küçük

Sınıflar kabaca dengeli ama tam eşit değil; bölmede stratify=y kullanacağız. Özellik ölçekleri çok farklı; mesafe tabanlı model için ölçekleme şart.

Uygulama Katmanlı bölme

Veriyi test_size=0.25, random_state=42, stratify=y ile böl. Eğitim ve test kümelerinin satır sayısını aynı satırda, ardından eğitim kümesinin sınıf dağılımını np.bincount ile yazdır.

Başlangıç kodu

model.py
import numpy as np
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

X, y = load_wine(return_X_y=True)

# buraya yaz

Örnek çözüm

model.py
import numpy as np
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

X, y = load_wine(return_X_y=True)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42, stratify=y)
print(len(X_train), len(X_test))
print(np.bincount(y_train))

Beklenen çıktı

133 45
[44 53 36]

Soru ve cevaplar

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

1 Veri setinde kaç özellik vardır?

  • 3
  • 14
  • 13 Doğru cevap
  • 178

Açıklama: shape (178, 13): 178 örnek, 13 özellik; 3 ise sınıf sayısıdır.

2 Her sınıfın örnek sayısını say.

Soru
print(np.____(y))
Cevap
print(np.bincount(y))

Açıklama: bincount, 0'dan başlayan tam sayı etiketlerin sıklığını verir.

3 Bilgileri eşleştir.

Kavram Anlamı
178 Örnek sayısı
13 Özellik sayısı
3 Sınıf sayısı
stratify=y Sınıf oranını koru

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