Veri hazırlama
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 71/112
- 7 dk
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üçükSı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
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
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.
print(np.____(y))
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 |