Makine Öğrenmesi Nedir?
Makine öğrenmesi (Machine Learning - ML), bilgisayarların açıkça programlanmadan verilerden öğrenmesini ve bu öğrenmeye dayanarak tahminler veya kararlar vermesini sağlayan yapay zeka alt dalıdır. Arthur Samuel'in 1959'daki tanımıyla "bilgisayarlara açıkça programlanmadan öğrenme yeteneği kazandıran çalışma alanı" olarak nitelendirilen makine öğrenmesi, günümüzde teknoloji dünyasının en kritik bileşenlerinden biri haline gelmiştir.
Geleneksel programlamada, geliştirici kuralları ve mantığı kod olarak yazar. Makine öğrenmesinde ise sistem, verilerden kendi kurallarını çıkarır. Bu paradigma değişikliği, karmaşık kalıpların ve ilişkilerin keşfedilmesini mümkün kılarak spam filtrelemeden hastalık teşhisine, öneri sistemlerinden otonom sürüşe kadar sayısız alanda devrim yaratmıştır.
Makine Öğrenmesinin Temel Türleri
Denetimli Öğrenme (Supervised Learning)
Denetimli öğrenme, etiketli verilerle modelin eğitildiği yaklaşımdır. Model, giriş-çıkış çiftlerinden oluşan eğitim verisini kullanarak bir fonksiyon öğrenir ve bu fonksiyonu daha önce görmediği verilere uygulayarak tahminlerde bulunur.
Denetimli öğrenme iki ana kategoriye ayrılır:
- Sınıflandırma (Classification): Çıktı değişkeni kategoriktir. E-posta spam/spam değil, hastalık var/yok, görüntüdeki nesne kedi/köpek gibi ayrık sınıflara atama yapılır
- Regresyon (Regression): Çıktı değişkeni süreklidir. Ev fiyatı tahmini, sıcaklık tahmini, gelir tahmini gibi sayısal değerler üretilir
Denetimsiz Öğrenme (Unsupervised Learning)
Denetimsiz öğrenme, etiketsiz verilerden gizli yapıları ve kalıpları keşfetmeyi amaçlar. Veride açıkça belirtilmemiş gruplamalar, ilişkiler ve anomaliler ortaya çıkarılır.
Temel denetimsiz öğrenme görevleri:
- Kümeleme (Clustering): Benzer veri noktalarını gruplara ayırma (müşteri segmentasyonu, belge kümeleme)
- Boyut azaltma (Dimensionality Reduction): Yüksek boyutlu veriyi daha az boyutta temsil etme (PCA, t-SNE, UMAP)
- Anomali tespiti: Normalden sapan veri noktalarını belirleme (dolandırıcılık tespiti, arıza tespiti)
- Birliktelik kuralları: Veri öğeleri arasındaki ilişkileri keşfetme (market sepet analizi)
Pekiştirmeli Öğrenme (Reinforcement Learning)
Pekiştirmeli öğrenme, bir ajanın bir ortamla etkileşime girerek ödül sinyallerini maksimize edecek şekilde strateji öğrenmesidir. Deneme-yanılma yoluyla öğrenen bu yaklaşım, oyun oynama (AlphaGo, Atari), robotik kontrol ve kaynak optimizasyonu gibi alanlarda kullanılır.
Pekiştirmeli öğrenmenin temel bileşenleri:
- Ajan (Agent): Kararlar alan ve eylemler gerçekleştiren öğrenici
- Ortam (Environment): Ajanın etkileşimde bulunduğu dünya
- Durum (State): Ortamın anlık durumu
- Eylem (Action): Ajanın gerçekleştirebileceği hareketler
- Ödül (Reward): Eylemin sonucuna göre verilen geri bildirim
Yarı Denetimli ve Öz Denetimli Öğrenme
Yarı denetimli öğrenme, az miktarda etiketli veriyi çok miktarda etiketsiz veriyle birleştirerek kullanır. Öz denetimli öğrenme ise verideki doğal yapıları kullanarak kendi etiketlerini oluşturur. BERT ve GPT gibi büyük dil modelleri, öz denetimli öğrenmenin en başarılı örnekleridir.
Temel Makine Öğrenmesi Algoritmaları
Doğrusal Regresyon (Linear Regression)
Doğrusal regresyon, bağımsız değişkenler ile sürekli bir bağımlı değişken arasındaki doğrusal ilişkiyi modelleyen en temel algoritmadır. Basit, yorumlanabilir ve hızlıdır. Ev fiyatı tahmini, satış tahmini gibi görevlerde kullanılır.
Doğrusal regresyonun matematiksel ifadesi:
y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε
y: Tahmin edilen değer
β₀: Sabit terim (intercept)
β₁...βₙ: Katsayılar (coefficients)
x₁...xₙ: Bağımsız değişkenler (features)
ε: Hata terimi
Lojistik Regresyon (Logistic Regression)
Adına rağmen bir sınıflandırma algoritması olan lojistik regresyon, sigmoid fonksiyonunu kullanarak olasılıksal sınıflandırma yapar. İkili sınıflandırma problemlerinde yaygın olarak kullanılır ve sonuçları olasılık olarak yorumlama avantajı sunar.
Karar Ağaçları (Decision Trees)
Karar ağaçları, veriyi bir dizi karar kuralıyla bölerek sınıflandırma veya regresyon yapan algoritmadır. Görsel olarak yorumlanabilir olması, en büyük avantajlarından biridir.
Karar ağaçlarının temel kavramları:
- Kök düğüm: İlk bölme noktası
- İç düğümler: Ara karar noktaları
- Yaprak düğümler: Son karar (sınıf veya değer)
- Bölme kriterleri: Gini impurity, bilgi kazanımı (information gain), entropi
Rastgele Orman (Random Forest)
Rastgele orman, birden fazla karar ağacının bir araya gelerek oluşturduğu topluluk (ensemble) öğrenme yöntemidir. Her ağaç, verinin rastgele bir alt kümesiyle ve rastgele seçilen özelliklerle eğitilir. Sonuçlar oylama (sınıflandırma) veya ortalama (regresyon) ile birleştirilir.
Rastgele ormanın avantajları:
- Aşırı öğrenmeye (overfitting) karşı dirençli
- Özellik önem sıralaması sağlar
- Eksik verilerle çalışabilir
- Hem sınıflandırma hem regresyon için kullanılabilir
Destek Vektör Makineleri (SVM)
SVM, veri noktalarını ayıran en geniş marjinli hiper düzlemi bulan bir sınıflandırma algoritmasıdır. Kernel trick kullanarak doğrusal olmayan sınıflandırma problemlerini de çözebilir. RBF, polynomial ve sigmoid gibi farklı kernel fonksiyonları mevcuttur.
K-En Yakın Komşu (K-Nearest Neighbors - KNN)
KNN, bir veri noktasını en yakın K komşusunun sınıfına göre sınıflandıran basit ama etkili bir algoritmadır. Eğitim aşaması yoktur; tüm hesaplama tahmin zamanında yapılır. K değerinin seçimi ve mesafe metriğinin belirlenmesi performansı doğrudan etkiler.
Yapay Sinir Ağları (Artificial Neural Networks)
Yapay sinir ağları, insan beyninin çalışma prensibinden ilham alan ve birbirine bağlı nöron katmanlarından oluşan modellerdir. Derin öğrenme, çok katmanlı sinir ağlarının kullanıldığı makine öğrenmesi alt dalıdır.
Sinir ağlarının temel bileşenleri:
- Giriş katmanı: Ham veriyi alır
- Gizli katmanlar: Özellik çıkarma ve dönüşüm yapar
- Çıkış katmanı: Sonuç üretir
- Ağırlıklar ve bias: Öğrenilebilir parametreler
- Aktivasyon fonksiyonları: ReLU, sigmoid, tanh, softmax
- Geri yayılım (Backpropagation): Gradyanları hesaplayarak ağırlıkları günceller
Model Değerlendirme
Sınıflandırma Metrikleri
| Metrik | Tanım | Kullanım Alanı |
|---|---|---|
| Doğruluk (Accuracy) | Doğru tahminlerin toplam tahminlere oranı | Dengeli sınıf dağılımları |
| Kesinlik (Precision) | Pozitif tahminlerin doğruluk oranı | Yanlış pozitif maliyeti yüksekse |
| Duyarlılık (Recall) | Gerçek pozitifleri yakalama oranı | Yanlış negatif maliyeti yüksekse |
| F1 Skoru | Precision ve Recall'un harmonik ortalaması | Dengeli değerlendirme |
| AUC-ROC | ROC eğrisi altında kalan alan | Eşik bağımsız değerlendirme |
Regresyon Metrikleri
- MSE (Mean Squared Error): Hataların karelerinin ortalaması, büyük hatalara daha fazla ceza verir
- RMSE (Root MSE): MSE'nin karekökü, orijinal birimde yorumlanabilir
- MAE (Mean Absolute Error): Hataların mutlak değerlerinin ortalaması, aykırı değerlere daha dayanıklı
- R² (R-Squared): Modelin açıkladığı varyans oranı (0-1 arası)
Çapraz Doğrulama (Cross-Validation)
Çapraz doğrulama, modelin genelleme yeteneğini daha güvenilir bir şekilde değerlendirmek için kullanılan bir tekniktir. En yaygın yöntem olan K-Fold çapraz doğrulamada, veri K eşit parçaya bölünür ve model K kez eğitilip test edilir. Her seferinde farklı bir parça test seti olarak kullanılır.
Özellik Mühendisliği (Feature Engineering)
Özellik mühendisliği, ham veriden modelin performansını artıracak anlamlı özellikler oluşturma sanatıdır. Makine öğrenmesi projelerinin başarısında en kritik adımlardan biridir.
Temel Teknikler
- Ölçekleme ve normalizasyon: Min-Max ölçekleme, Z-skoru standardizasyonu, robust ölçekleme
- Kategorik değişken kodlama: One-hot encoding, label encoding, target encoding, ordinal encoding
- Eksik veri işleme: Ortalama/medyan/mod ile doldurma, KNN imputation, iterative imputation
- Özellik oluşturma: Polinom özellikleri, etkileşim terimleri, tarih/saat özellik çıkarma
- Özellik seçimi: Korelasyon analizi, mutual information, recursive feature elimination
- Metin özellikleri: TF-IDF, kelime vektörleri, n-gramlar
Makine öğrenmesinde verinin kalitesi, algoritmanın karmaşıklığından çok daha belirleyicidir. En sofistike algoritma bile kötü hazırlanmış veriyle başarılı olamaz.
ML Pipeline ve İş Akışı
Bir makine öğrenmesi projesinin tipik aşamaları:
- Problem tanımlama: İş problemini ML problemi olarak formüle etme
- Veri toplama: İlgili verilerin çeşitli kaynaklardan toplanması
- Keşifsel veri analizi (EDA): Verinin yapısını, dağılımlarını ve ilişkilerini anlama
- Veri ön işleme: Temizleme, dönüştürme ve özellik mühendisliği
- Model seçimi: Probleme uygun algoritmaların belirlenmesi
- Model eğitimi: Seçilen modellerin eğitim verisiyle eğitilmesi
- Hiperparametre optimizasyonu: Grid search, random search veya Bayesian optimizasyon
- Model değerlendirme: Test verisi üzerinde performans ölçümü
- Model dağıtımı (Deployment): Modelin üretime alınması
- İzleme ve bakım: Model performansının sürekli izlenmesi ve güncellenmesi
Araçlar ve Kütüphaneler
Python Ekosistemi
| Kütüphane | Kullanım Alanı |
|---|---|
| scikit-learn | Geleneksel ML algoritmaları, ön işleme, değerlendirme |
| TensorFlow / Keras | Derin öğrenme modelleri, üretim ortamı |
| PyTorch | Derin öğrenme araştırmaları, dinamik graf |
| XGBoost / LightGBM | Gradient boosting, tablo verisi için en iyi performans |
| Pandas / NumPy | Veri manipülasyonu ve sayısal hesaplama |
| Matplotlib / Seaborn | Veri görselleştirme |
MLOps Araçları
- MLflow: Deney takibi, model kayıt defteri ve dağıtım
- Weights & Biases: Deney izleme ve görselleştirme
- DVC (Data Version Control): Veri ve model versiyonlama
- Kubeflow: Kubernetes üzerinde ML pipeline'ları
- Airflow: İş akışı orkestrasyon
Başlangıçtan İleri Seviyeye Öğrenme Yol Haritası
Aşama 1: Temel Bilgiler (1-2 Ay)
- Python programlama dilini öğrenin
- NumPy, Pandas ve Matplotlib kütüphanelerini kavrayın
- Temel istatistik ve olasılık bilgisi edinin
- Doğrusal cebir temellerini anlayın (vektörler, matrisler)
Aşama 2: Klasik ML (2-3 Ay)
- scikit-learn ile temel algoritmaları uygulayın
- Özellik mühendisliği ve veri ön işleme pratikleri yapın
- Model değerlendirme ve çapraz doğrulama tekniklerini öğrenin
- Kaggle yarışmalarına katılarak pratik deneyim kazanın
Aşama 3: Derin Öğrenme (2-3 Ay)
- Sinir ağlarının matematiksel temellerini anlayın
- PyTorch veya TensorFlow ile modeller geliştirin
- CNN, RNN ve Transformer mimarilerini öğrenin
- Transfer öğrenme ve ince ayar tekniklerini uygulayın
Aşama 4: Uzmanlaşma (Sürekli)
- Bilgisayarla görü, NLP veya tavsiye sistemleri gibi bir alanda uzmanlaşın
- MLOps ve model dağıtım süreçlerini öğrenin
- Araştırma makalelerini takip edin ve uygulayın
- Açık kaynak projelere katkıda bulunun
- Portföy projeleri oluşturun
Yaygın Hatalar ve Dikkat Edilmesi Gerekenler
- Veri sızıntısı (Data Leakage): Test verisinin eğitim sürecine sızması, gerçekçi olmayan performans sonuçlarına yol açar
- Aşırı öğrenme (Overfitting): Modelin eğitim verisini ezberlemesi, genelleme yeteneğini kaybetmesi
- Yetersiz öğrenme (Underfitting): Modelin verideki kalıpları yakalayamaması
- Dengesiz veri: Sınıf dağılımının eşit olmaması durumunda uygun tekniklerin kullanılmaması
- Yanlış metrik seçimi: Problem için uygun olmayan değerlendirme metriklerinin kullanılması
Sonuç
Makine öğrenmesi, modern teknolojinin temel taşlarından biri olarak her sektörde transformatif etkiler yaratmaktadır. Denetimli, denetimsiz ve pekiştirmeli öğrenme gibi farklı paradigmalar, çeşitli problem türlerine çözüm sunar. Doğrusal regresyondan derin sinir ağlarına uzanan geniş algoritma yelpazesi, her seviyedeki probleme uygun araçlar sağlar.
Makine öğrenmesi yolculuğunda başarının anahtarı, güçlü bir matematiksel temel, pratik deneyim ve sürekli öğrenme kültürüdür. scikit-learn, TensorFlow ve PyTorch gibi güçlü araçlar, bu yolculuğu kolaylaştırırken Kaggle gibi platformlar pratik deneyim kazanma fırsatı sunar. Bu alanda uzmanlaşmak isteyen herkes için en önemli tavsiye, teoriyi pratikle birleştirmek ve gerçek dünya problemleri üzerinde çalışmaktır.