• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Scikit-learn örnek veri kümeleri nasıl kullanılır?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
İlk deneme için sklearn.datasets içindeki hazır veri kümesini yükleyip özellikleri X, hedef değerleri y olarak ayırın; ardından veriyi eğitim ve test bölümlerine ayırarak bir model çalıştırın. Aşağıdaki örnek, Iris veri kümesini kullanarak sınıflandırma modelinin nasıl kurulacağını ve test sonucunun nasıl okunacağını gösterir.

Hazır veri kümeleri ne içerir?​


scikit-learn içindeki örnek veri kümeleri, makine öğrenmesi kodunu gerçek bir veri toplama süreci olmadan denemek için hazırlanmış küçük veri kümeleridir. load_iris(), load_digits() ve load_wine() gibi işlevler veriyi genellikle Bunch adı verilen, sözlük ve nesne özelliklerini birlikte kullanan bir yapı içinde döndürür.

En sık kullanılan alanlar şunlardır:
  • data: Modelin girdi olarak kullanacağı özellik matrisi.
  • target: Her satır için tahmin edilmesi beklenen hedef değer.
  • feature_names: Özelliklerin adları varsa bunları içerir.
  • target_names: Sınıflandırma problemindeki sınıf adlarını içerir.
Örneğin Iris veri kümesinde her satır bir çiçeği, sütunlar ise çiçeğe ait ölçümleri temsil eder. data matrisi 150 satır ve 4 özellik içerir; target ise her satırın ait olduğu üç sınıftan birini gösterir.

Hangi veri kümesini seçmelisiniz?​


Veri kümesini seçerken önce yapmak istediğiniz denemeyi belirleyin. Sınıflandırmada hedef, sınıf etiketi olur; regresyonda ise sayısal bir değer tahmin edilir. Hazır veri kümeleri eğitim amacıyla kullanışlıdır, ancak küçük ve düzenlenmiş oldukları için gerçek bir üretim verisinin davranışını kanıtlamaz.
Veri kümesi türüÖrnek işlevUygun kullanım
Küçük yerleşik sınıflandırma verisiload_iris()İlk sınıflandırma denemeleri
Görüntü benzeri sayısal veriload_digits()El yazısı rakam sınıflandırma denemeleri
Başka bir yerleşik sınıflandırma verisiload_wine()Ön işleme ve model karşılaştırması
İnternetten alınan verifetch_* işlevleriİndirme, ağ erişimi ve veri koşullarını ayrıca yönetme
load_* işlevleri veriyi doğrudan paketle birlikte veya yerleşik kaynaklardan alırken fetch_* işlevleri dış kaynaktan veri indirmeyi gerektirebilir. Bu nedenle ilk denemede yerleşik bir load_* veri kümesiyle başlamak daha öngörülebilirdir.

Iris veri kümesiyle çalışan en küçük örnek​


Ön koşul olarak Python ortamında scikit-learn kurulu olmalıdır. Kurulu değilse terminalde şu komutu çalıştırın:

Kod:
python -m pip install scikit-learn

Ardından aşağıdaki adımları uygulayın:
  1. Veri kümesini yükleyin. load_iris() işlevi veri kümesini döndürür; data ve target alanlarını model girdisi ve hedefi olarak alın.
  2. Veriyi eğitim ve test bölümlerine ayırın. test_size=0.2, verinin yüzde 20'sini test için ayırır. random_state=42, örneği tekrar çalıştırdığınızda aynı bölmenin kullanılmasına yardımcı olur.
  3. Modeli kurup eğitin. Ölçekleme ile lojistik regresyonu bir işlem hattında birleştirin; böylece test verisinin bilgisi eğitim aşamasına sızmaz.
  4. Test tahminlerini değerlendirin. Doğruluk değeri, test bölümündeki doğru sınıf tahminlerinin oranını gösterir.
Python:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

iris = load_iris()

X = iris.data
y = iris.target

print("Özellik matrisi:", X.shape)
print("Hedef sınıfları:", iris.target_names)

X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    test_size=0.2,
    random_state=42,
    stratify=y
)

model = make_pipeline(
    StandardScaler(),
    LogisticRegression(max_iter=200)
)

model.fit(X_train, y_train)
y_pred = model.predict(X_test)

print("Test doğruluğu:", accuracy_score(y_test, y_pred))

Çalıştırıldığında ilk çıktı, özellik matrisinin boyutunu ve sınıf adlarını gösterir. Iris için beklenen boyut (150, 4) biçimindedir. Test doğruluğu ise 0 ile 1 arasında bir değer olur; örneğin 0.9, ayrılan test satırlarının yüzde 90'ında sınıfın doğru tahmin edildiği anlamına gelir.

Tahmin sonucunu sınıf adıyla görmek​


Modelin döndürdüğü y_pred değerleri sınıf adının kendisi değil, hedef sınıf indeksleridir. Bunları insan tarafından okunabilir adlara çevirmek için aynı veri kümesinin target_names alanını kullanabilirsiniz:

Python:
for predicted_class, actual_class in zip(y_pred[:5], y_test[:5]):
    print(
        "Tahmin:", iris.target_names[predicted_class],
        "Gerçek:", iris.target_names[actual_class]
    )

Tahmin ve gerçek ad aynıysa o satır doğru sınıflandırılmıştır. Farklıysa model o örneği başka bir sınıfa atamıştır. Bu çıktı yalnızca seçilen test bölümünü açıklar; modelin her yeni veride aynı doğruluğu göstereceğini kanıtlamaz.

Sonucu doğru yorumlama​


Yüksek test doğruluğu, bu veri bölme yöntemiyle ayrılan örneklerde modelin iyi sonuç verdiğini gösterir. Tek başına modelin gerçek hayatta güvenilir olduğunu, veri kümesinin tarafsız olduğunu veya başka bir veri kümesinde aynı sonucu vereceğini göstermez.

Düşük doğruluk görürseniz önce X.shape, y.shape ve hedef sınıflarını yazdırarak verinin beklediğiniz biçimde yüklenip yüklenmediğini kontrol edin. Daha sonra eğitim-test bölmesinin rastgeleliğini ve sınıfların dengeli dağılımını inceleyin. Farklı bir veri kümesi veya model karşılaştırırken yalnızca tek bir doğruluk değerine bakmak yerine aynı bölme düzenini kullanın; aksi hâlde modelleri adil biçimde karşılaştırmak zorlaşır.

Örnek veri kümesiyle çalışan kodun bir sonraki adımı, aynı akışı kendi verinize uyarlamaktır: tabloyu X özellik matrisi ve y hedef dizisi biçimine getirin, eğitim sırasında yalnızca eğitim verisinden öğrenilen ön işleme adımlarını kullanın ve son değerlendirmeyi daha önce görülmemiş test verisiyle yapın.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst