🧠 Yapay Zeka Orta

Makine Öğrenmesi (Machine Learning) Temelleri ve Öğrenme Türleri

Makine öğrenmesi nedir? Denetimli, denetimsiz ve pekiştirmeli öğrenme farkları, overfitting tuzağı ve 10 satırda ilk Python scikit-learn modeli.

Geleneksel bilgisayar programcılığında bir yazılımcı bilgisayara her şeyi adım adım anlatmak zorundadır: "Eğer sayı 5'ten büyükse sağa git, değilse sola git." Ancak dünyadaki tüm kuralları tek tek kodlamak imkansızdır. Örneğin bir fotoğraftaki kediyi bilgisayara tanıtmak için kedinin bıyık uzunluğunu, kulak açısını veya kürk rengini if-else şartlarıyla kodlayamazsınız; çünkü dünyada milyonlarca farklı kedi türü ve duruşu vardır. İşte bu imkansızlığı aşmak için **Makine Öğrenmesi (Machine Learning - ML)** doğmuştur. Bu rehberde, bilgisayarların açıkça programlanmadan verilerden nasıl kural çıkardığını, 3 temel öğrenme türünü ve ilk Python makine öğrenmesi modelinizi adım adım inceleyeceğiz.

---

1. Klasik Programlama ile Makine Öğrenmesi Arasındaki Paradigma Değişimi

Makine öğrenmesini anlamanın en kolay yolu bu devrimsel mantık farkını görmektir:

Klasik Programlama :  [ VERİ ]  +  [ KURALLAR (Kod) ]  ──>  [ SONUÇ ]

Makine Öğrenmesi    :  [ VERİ ]  +  [ SONUÇLAR (Etiketler) ]  ──>  [ KURALLAR (Model) ]

Klasik programlamada kuralları insan yazar. Makine öğrenmesinde ise bilgisayara binlerce kedi ve köpek fotoğrafı (Veri + Sonuç) verirsiniz; algoritma fotoğraflardaki piksel desenlerini matematiksel olarak tarayarak "Bir canlının kedi olmasını sağlayan kuralları" **kendi kendine keşfeder!**

---

2. Makine Öğrenmesinin 3 Temel Türü

Makine öğrenmesi algoritmaları verinin sunuluş biçimine göre 3 ana grupta incelenir:

A. Denetimli Öğrenme (Supervised Learning - Öğretmen Eşliğinde)

Algoritmaya hem girdiler hem de doğru cevaplar (etiketler) verilir. Tıpkı öğretmenin arkasında çözümleri olan bir test kitabını öğrenciye vermesi gibidir.

  • **Sınıflandırma (Classification):** Çıktı bir kategoridir (Örn: E-posta "Spam" mı "Normal" mi? Tümör "İyi huylu" mu "Kötü huylu" mu?).
  • **Regresyon (Regression):** Çıktı sayısal sürekli bir değerdir (Örn: Bir evin metrekaresi ve oda sayısına göre "Fiyat Tahmini").
  • B. Denetimsiz Öğrenme (Unsupervised Learning - Kendi Başına Keşif)

    Algoritmaya hiçbir etiket veya doğru cevap verilmez; sadece ham veri sunulur. Algoritma veriler arasındaki gizli örüntüleri ve benzerlikleri gruplar (Kümeleme / Clustering).

  • **Örnek:** Bir e-ticaret sitesinin müşterileri alışveriş alışkanlıklarına göre "Genç Sporseverler", "Ev Hanımları" veya "Teknoloji Meraklıları" olarak otomatik gruplara ayırması.
  • C. Pekiştirmeli Öğrenme (Reinforcement Learning - Ödül ve Ceza)

    Bir yapay zeka ajanı (Agent), bir ortam içinde deneme-yanılma yaparak öğrenir. Doğru bir hamle yaptığında "Ödül (+1 Puan)", yanlış hamle yaptığında "Ceza (-1 Puan)" alır.

  • **Örnek:** Kendi kendine iki tekerlek üzerinde dengede durmayı öğrenen robotlar, labirentten çıkmayı öğrenen algoritmalar ve dünya satranç şampiyonlarını yenen AlphaZero.
  • ---

    3. Bir Makine Öğrenmesi Projesinin 5 Hayati Adımı

    Başarılı bir makine öğrenmesi modeli şu yaşam döngüsünü takip eder:

    1. **Veri Toplama (Data Collection):** Problemle ilgili kaliteli ve çeşitli veri setlerinin derlenmesi.

    2. **Veri Ön İşleme ve Temizleme:** Eksik verilerin doldurulması, aykırı değerlerin (outliers) elenmesi ve normalizasyon.

    3. **Model Seçimi ve Eğitimi:** Karar Ağaçları, Rastgele Orman (Random Forest) veya KNN gibi uygun algoritmanın seçilip verinin %80'i ile eğitilmesi (Training Set).

    4. **Test ve Değerlendirme:** Eğitilen modelin hiç görmediği kalan %20'lik test verisi (Test Set) üzerinde doğruluk oranının (Accuracy) ölçülmesi.

    5. **Canlıya Alma (Deployment):** Modelin bir web sitesine veya robotik karta yüklenerek gerçek dünya tahminleri yapması.

    ---

    4. Aşırı Öğrenme (Overfitting) Tuzağı Nedir?

    Bir öğrencinin sınavdaki konuların mantığını anlamak yerine kitaptaki soruların şıklarını ezberlediğini düşünün. Sınavda kitaptaki soru çıkarsa %100 yapar; ama sorudaki rakam azıcık değişirse sıfır çeker!

    İşte bir makine öğrenmesi modelinin eğitim verilerini aşırı derecede ezberleyip genelleme yeteneğini kaybetmesine **Overfitting (Aşırı Öğrenme)** denir. Bunu önlemek için daha fazla veri toplanır ve modelin karmaşıklığı sadeleştirilir.

    ---

    5. Python ile 10 Satırda İlk Makine Öğrenmesi Modeli

    Aşağıdaki mini Python kodu, dünyaca ünlü İris Çiçeği veri setini kullanarak çiçeklerin taç ve çanak yaprak boyutlarına göre türünü tahmin eden bir Karar Ağacı (Decision Tree) modeli eğitir:

    from sklearn.datasets import load_iris
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.model_selection import train_test_split
    
    # 1. Veriyi yükle ve böl
    iris = load_iris()
    X_egitim, X_test, y_egitim, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
    
    # 2. Modeli oluştur ve eğit
    model = DecisionTreeClassifier()
    model.fit(X_egitim, y_egitim)
    
    # 3. Test et ve Doğruluk Oranını Gör
    dogruluk = model.score(X_test, y_test)
    print(f"Modelin Test Doğruluk Skoru: %{dogruluk * 100:.2f}")
    
    # 4. Yeni bir çiçeği tahmin et: [Çanak Boy, Çanak En, Taç Boy, Taç En]
    yeni_cicek = [[5.1, 3.5, 1.4, 0.2]]
    tahmin_edilen_tur = model.predict(yeni_cicek)
    print(f"Tahmin Edilen Tür: {iris.target_names[tahmin_edilen_tur[0]]}")

    ---

    Sonuç

    Makine öğrenmesi, veriyi bilgiye ve akıllı kararlara dönüştüren modern mühendisliğin en güçlü motorudur. Temel kavramları kavradıktan sonra kendi veri setlerinizi eğitebilir ve akıllı otonom sistemler inşa edebilirsiniz. Diğer algoritmalar için [Algoritma Derslerimizi](/dersler) inceleyebilirsiniz!