Ana Sayfa · Akademi · Robotik ve Kodlama · Veri ve Yapay Zekâya Giriş · Proje: Basit Sınıflandırma Deneyi

Proje: Basit Sınıflandırma Deneyi

Küçük bir veri setinde kural tabanlı basit bir sınıflandırıcı yapıp doğruluğunu ve yanlılığını dürüstçe değerlendir.

PROJE PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Küçük bir veri seti üzerinde, kural (eşik) tabanlı basit bir sınıflandırıcı yazacağız; onu eğitim ve test verisiyle deneyip doğruluğunu ölçecek ve sonuçlarındaki sınırları dürüstçe tartışacağız.

Üretilecek kanıt

Aşağıdaki adımları kendi bilgisayarında (bir yetişkin gözetiminde) dene: Yukarıdaki üç kod bloğunu tek bir Python dosyasına sırayla yapıştır. Çalıştır ve eğitim ile test doğruluğunu not al. esik = 150 satırını değiştir: önce 145 , sonra 135 dene. Doğruluk nasıl değişiyor? En iyi test doğruluğunu veren eşiği bul ve neden onu seçtiğini bir cümleyle yaz. Bir…

Kontrol tuzağı

Eğitim ve testi karıştırmak Eşiği test verisine bakarak seçersen, yüksek doğruluk seni yanıltır. Test verisi, karar verilirken görülmemiş olmalıdır. Doğruluğa körü körüne güvenmek Veride 90 portakal, 10 elma olsaydı, "her şey portakal" diyen bir kural bile %90 doğruluk verirdi. Ama bu kural hiçbir elmayı bilemez.…

Sonraki bağlantı

Proje Atölyesi modülü: Öğrendiğin kodlama, robotik ve veri fikirlerini birleştirerek baştan sona kendi projeni tasarlayıp yapacağın atölye.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre45–75 dk
Ön koşulYapay Zekâ Etiği
İçerikProje rehberi · 1.586 kelime
Son güncelleme

Bir cümlelik özet

Küçük bir veri seti üzerinde, kural (eşik) tabanlı basit bir sınıflandırıcı yazacağız; onu eğitim ve test verisiyle deneyip doğruluğunu ölçecek ve sonuçlarındaki sınırları dürüstçe tartışacağız.

Neden önemli?

Sınıflandırma, bir örneği doğru gruba yerleştirmektir: bir e-postayı "spam" veya "spam değil" diye ayırmak, bir meyveyi "elma" veya "portakal" olarak etiketlemek gibi. Yapay zekâ araçlarının çoğu, arka planda bu tür bir gruplama yapar.

Bu derste kendi elimizle çalışan bir sınıflandırıcı yapacağız. Ama en baştan dürüst olalım: burada gerçek bir yapay zekâ modeli eğitmiyoruz. Biz kuralları kendimiz yazacağız. Bu, yapay zekânın gizemli bir sihir olmadığını, sonunda verideki bir örüntüyü yakalayan basit kararlara dayandığını görmenin en iyi yoludur. Kuralı kendin yazınca, makinenin nerede yanılabileceğini de kendi gözünle görürsün.

Sınıflandırma nedir?

Örnek ve etiket

Sınıflandırmada iki şey vardır:

Amacımız, örnekten bakıp doğru etiketi tahmin eden bir kural bulmaktır.

Günlük hayattan iki örnek

Örnek 1 — Meyve sepeti. Bir sepette elma ve portakal var. Gözlerimizi kapatıp ağırlığa baksak bile çoğu zaman ayırt edebiliriz: portakallar genelde daha ağırdır. "Ağırlık 150 gramın üstündeyse portakal, değilse elma" gibi bir kural, işin çoğunu doğru yapar.

Örnek 2 — Mesaj kutusu. Bir mesajda "bedava", "hemen tıkla", "kazandınız" gibi kelimeler geçiyorsa o mesaj büyük olasılıkla istenmeyen (spam) bir mesajdır. "Bu anahtar kelimelerden biri varsa spam" kuralı basit ama işe yarar.

İkisinde de yaptığımız şey aynı: bir özelliğe (ağırlık, anahtar kelime) bakıp bir eşik veya kurala göre karar veriyoruz.

Eşik tabanlı sınıflandırıcı

Fikir

Elimizde her meyvenin ağırlığı (gram) ve gerçek etiketi olsun. Bir eşik seçelim: bu eşiğin üstündekiler portakal, altındakiler elma. İyi bir eşik bulmak, sınıflandırıcıyı "kurmak" demektir.

Eğitim ve test verisi neden ayrılır?

Veriyi ikiye böleriz:

Neden? Çünkü bir kuralın gerçekten iyi olup olmadığını, ancak daha önce görmediği örneklerde denersek anlarız. Sadece cevabını bildiğimiz örneklerde iyi görünmek kolaydır; asıl soru, yeni bir meyve geldiğinde doğru bilip bilmeyeceğidir.

Kod: veriyi kuralım ve ikiye bölelim

# Her örnek: (ağırlık_gram, gerçek_etiket)
veri = [
    (120, "elma"), (130, "elma"), (140, "elma"),
    (135, "elma"), (125, "elma"), (110, "elma"),
    (160, "portakal"), (170, "portakal"), (180, "portakal"),
    (155, "portakal"), (175, "portakal"), (165, "portakal"),
]

# İlk yarısı eğitim, ikinci yarısı test
egitim = veri[:6] + veri[6:9]     # bazı elma + bazı portakal
test = veri[3:6] + veri[9:]       # kalan örnekler

Kod: eşiğe göre tahmin

def tahmin_et(agirlik, esik):
    # Eşiğin üstündeyse portakal, değilse elma
    if agirlik > esik:
        return "portakal"
    else:
        return "elma"

Kod: doğruluğu ölçelim

Doğruluk, doğru bildiğimiz örnek sayısının toplam örneğe oranıdır.

def dogruluk(veri_kumesi, esik):
    dogru = 0
    for agirlik, gercek in veri_kumesi:
        if tahmin_et(agirlik, esik) == gercek:
            dogru += 1
    return dogru / len(veri_kumesi)

esik = 150
print("Eğitim doğruluğu:", dogruluk(egitim, esik))
print("Test doğruluğu:", dogruluk(test, esik))

Bu koddaki dogru / len(...) işlemi 0 ile 1 arasında bir sayı verir. 1.0 değeri "hepsini doğru bildi", 0.5 değeri "yarısını bildi" demektir.

Mini uygulama

Aşağıdaki adımları kendi bilgisayarında (bir yetişkin gözetiminde) dene:

  1. Yukarıdaki üç kod bloğunu tek bir Python dosyasına sırayla yapıştır.
  2. Çalıştır ve eğitim ile test doğruluğunu not al.
  3. esik = 150 satırını değiştir: önce 145, sonra 135 dene. Doğruluk nasıl değişiyor?
  4. En iyi test doğruluğunu veren eşiği bul ve neden onu seçtiğini bir cümleyle yaz.

Bir hata ve düzeltmesi

İlk denememde eşiği çok düşük seçmiştim:

Amaç: Elma ve portakalı ayırmak
Sorun: esik = 100 iken her şeyi "portakal" dedi, elmalar yanlış çıktı
Kontrol: En hafif portakal 155 gram, en ağır elma 140 gram; sınır ikisinin arasında olmalı
Düzeltme: esik = 150 yaptım; artık iki grubu da doğru ayırıyor

Ders: Eşik, iki grubu birbirinden ayıran boşluğun içinde olmalıdır. Kuralı verinin kendisine bakarak seçtik, tahminle değil.

Geliştirme fikri

Şimdiye kadar tek özellik (ağırlık) kullandık. İkinci bir özellik ekleyebilirsin: örneğin renk. "Ağırlık 150'nin üstünde ve renk turuncuysa portakal" gibi iki koşullu bir kural, sınırdaki örneklerde daha az yanılabilir. Kuralı karmaşıklaştırmadan önce, tek özelliğin doğruluğunu ölçüp gerçekten gerekli mi diye bak.

Projeyi güçlendirme planı

Proje: Basit Sınıflandırma Deneyi için yalnız çalışan bir gösterim hazırlamak yeterli değildir. İyi bir proje; hedefi, kullanıcıyı, sınırları, test koşullarını ve başarısız denemeleri de görünür kılar. Bu genişletme çalışmasında sensör ölçümlerindeki eksik ve sıra dışı değerleri ayıklama bağlamını kullanarak temizlenmiş küçük veri tablosu, açık sınıflandırma kuralı ve hata değerlendirmesi oluştur. Dersin hedefi “Küçük bir veri setinde kural tabanlı basit bir sınıflandırıcı yapıp doğruluğunu ve yanlılığını dürüstçe değerlendir” olsa da proje sayfasında ölçülmemiş bir sonucu kesin başarı gibi yazma.

1. Proje özeti ve kapsam

Önce üç cümle yaz: Çözmek istediğin sorun nedir, bu sorun kimin için önemlidir ve ilk sürüm özellikle neyi yapmayacaktır? Kapsam dışını belirtmek projeyi küçültmez; tamamlanabilir hâle getirir. Sınıflandırma nedir? ile Günlük hayattan iki örnek arasındaki ilişkiyi projenin temel varsayımı olarak yaz ve bu varsayımı hangi testin doğrulayacağını belirt.

2. Kabul ölçütleri

“Proje: Basit Sınıflandırma Deneyi” için kabul ölçütlerini “çalışıyor” gibi belirsiz sözcüklerle bırakma. Süre, mesafe, doğru deneme sayısı, ekran genişliği veya kullanıcı adımı gibi gözlenebilir bir ölçü seç. Ölçüm mümkün değilse en azından üç ardışık denemede aynı davranışın görülüp görülmediğini kaydet.

3. Test matrisi

3. Test matrisi tablosu
TestKoşulBeklenenGerçek sonuçSonraki karar
NormalStandart giriş ve tam bağlantıTemel görev tamamlanırTest sırasında doldurKoru veya küçük iyileştirme yap
SınırEn düşük ya da en yüksek kabul edilen değerSistem kararlı kalırTest sırasında doldurEşiği veya kuralı gözden geçir
HataEksik, yanlış ya da beklenmeyen girişGüvenli ve anlaşılır tepkiTest sırasında doldurHata yönetimi ekle
TekrarAynı koşulda en az üç denemeBenzer sonuçlarTest sırasında doldurTutarsızlığın kaynağını araştır

4. Sürüm günlüğü

“Proje: Basit Sınıflandırma Deneyi” projesinin her sürümü için tarih, değiştirdiğin tek ana karar, değişikliğin nedeni ve test sonucu yaz. İlk sürümün çalışmaması başarısızlık değildir; Sınıflandırma nedir? veya Günlük hayattan iki örnek ile ilgili hangi varsayımın yeniden düşünülmesi gerektiğini gösteren veridir. Görsel kullanırken kişisel bilgi ve özel arka plan ayrıntılarını paylaşma.

5. Sunum ve öz değerlendirme

“Proje: Basit Sınıflandırma Deneyi” projesini iki dakikada anlatacak şekilde hazırlan: sorun, çözüm yaklaşımı, sensör ölçümlerindeki eksik ve sıra dışı değerleri ayıklama için en önemli test sonucu ve bir sonraki adım. “Tamamlandı” demek yerine hangi kısmın doğrulandığını ve hangi kısmın hâlâ geliştirilmesi gerektiğini açıkla.

Sık yapılan hatalar

Eğitim ve testi karıştırmak

Eşiği test verisine bakarak seçersen, yüksek doğruluk seni yanıltır. Test verisi, karar verilirken görülmemiş olmalıdır.

Doğruluğa körü körüne güvenmek

Veride 90 portakal, 10 elma olsaydı, "her şey portakal" diyen bir kural bile %90 doğruluk verirdi. Ama bu kural hiçbir elmayı bilemez. Doğruluk tek başına yeterli değildir; hangi grupta yanıldığına da bakmak gerekir.

Küçük veriden büyük sonuç çıkarmak

12 örnek, gerçek dünyayı temsil etmez. Bizim eşiğimiz bu sepette işe yarar; başka bir bahçenin meyvelerinde şaşırabilir. Az veriyle bulduğumuz kural, "her yerde doğru" demek değildir.

Yanlılığı (bias) görmezden gelmek

Eğitim verimizdeki portakalların hepsi tesadüfen çok ağırsa, sınıflandırıcı küçük portakalları elma sanır. Veri neyi gösterirse kural onu öğrenir; veri yanlıysa kural da yanlı olur.

Güvenlik notu

Hata örneklerini incelemek

Modelin yalnız toplam doğruluğunu vermek yeterli değildir. Her sınıftan doğru ve yanlış örnekler ayrılır; özellikle yanlış pozitif ve yanlış negatif sonuçların hangi ortak özellikleri taşıdığı araştırılır. Arka plan, ışık, açı veya veri sayısı gibi değişkenler not edilir. Daha sonra yalnız bir değişiklik yapılır ve aynı test kümesi yeniden kullanılır.

Deneyde kişisel ya da hassas veri kullanılmaz. Modelin sınırlı eğitim örneklerinden öğrendiği ve yeni koşullarda hata yapabileceği açıkça belirtilir; sonuç gerçek kişileri değerlendiren otomatik karar sistemi olarak sunulmaz.

Ders özeti

Kontrol soruları

  1. Eğitim verisi ile test verisi arasındaki fark nedir ve testi neden ayrı tutarız?
  2. Eşik tabanlı sınıflandırıcımız kararı neye bakarak veriyor?
  3. Doğruluk 0.5 çıkarsa bu ne anlama gelir?
  4. 90 portakal ve 10 elmadan oluşan bir veride "her şey portakal" kuralının doğruluğu kaç olur ve bu neden yanıltıcıdır?
  5. Bu deneyde neden gerçek bir yapay zekâ modeli eğitmediğimizi söylüyoruz?

Cevaplar

  1. Eğitim verisi, eşiği seçerken baktığımız örneklerdir; test verisi, seçimden sonra daha önce görmediğimiz örneklerdir. Testi ayrı tutarız çünkü bir kuralın gerçekten iyi olup olmadığını ancak görmediği örneklerde anlayabiliriz.
  2. Tek bir özelliğe, meyvenin ağırlığına bakıyor; ağırlık eşiğin üstündeyse "portakal", değilse "elma" diyor.
  3. Örneklerin yarısını doğru, yarısını yanlış bildiği anlamına gelir. İki gruplu bir problemde bu, rastgele tahmin kadar iyidir, yani kural pek işe yaramıyordur.
  4. Doğruluk 0.90 (yani %90) olur çünkü örneklerin %90'ı zaten portakaldır. Yanıltıcıdır çünkü kural tek bir elmayı bile doğru bilemez; yüksek sayı, gerçek başarıyı gizler.
  5. Çünkü kuralı (eşiği) verinin örüntüsüne bakıp kendimiz seçtik; makine kendi kendine öğrenmedi. Bu, dürüst ve öğretici bir deneydir, gerçek bir eğitilmiş model değildir.

Kaynak ve doğrulama notu

“Proje: Basit Sınıflandırma Deneyi” dersi için doğrulama odağı Sınıflandırma nedir? ile Günlük hayattan iki örnek arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu modüldeki veri kümeleri eğitim amaçlı ve küçüktür; gerçek kişisel veri kullanılmamalıdır. Bir yapay zekâ sonucunun doğruluğu kadar, verinin dengesi, hataların dağılımı ve açıklanabilirliği de değerlendirilmelidir.

Sonraki ders

Proje Atölyesi modülü: Öğrendiğin kodlama, robotik ve veri fikirlerini birleştirerek baştan sona kendi projeni tasarlayıp yapacağın atölye.

Quiz’i BaşlatVeri ve Yapay Zekâya Giriş bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.