Makine Öğrenmesi kullanarak bir çalışma gerçekleştirmek istediğimizde tam olarak nereden başlamamız gerektiği hakkında bir belirsizlik yaşayabilir ya da tam olarak hangi adımlardan geçmemiz gerektiği konusunda emin olmayabiliriz.
Gelin Makine Öğrenmesi modelleri geliştirirken hangi adımlardan geçtiğimize bir göz atalım.
- Drawback Tanımı: Eğiteceğimiz mannequin ile hangi probleme çözüm getirmek istediğimizi belirlemeliyiz.
- Makine Öğrenmesi Kategorisi: Problemin sınıflandırma, regresyon, kümeleme gibi hangi makine öğrenmesi kategorisine ait olduğunu belirleyerek uygun mannequin geliştirme sürecini planlamalıyız.
- Veri ve Çıktı Yapısı: Problemi çözmek için hangi tür veriye ihtiyacımız olduğunu ve bu veriden nasıl bir çıktı elde etmeyi hedeflediğimizi netleştirmeliyiz.
- Veri Toplama: Çözmek istediğimiz downside için en uygun veri kaynaklarını belirleyip veriyi toplamamız gerekiyor. Bu veriler sensörlerden, veri tabanlarından, API’lerden veya hazır veri setlerinden elde edilebilir.
- Veri Temizleme: Topladığımız veriler eksik, hatalı ya da gereksiz bilgiler içerebilir. Bu yüzden aykırı verileri tespit edip gerektiğinde temizlemeli ve veriyi uygun formata getirmeliyiz.
- Özellik Mühendisliği: Modelin daha iyi performans göstermesi için verideki anlamlı özellikleri belirlemeli, gereksiz olanları çıkarmalı ve ihtiyaç duyduğumuz yeni özellikleri türetmeliyiz.
- Veri Dönüştürme ve Normalizasyon: Verilerin ölçeklendirilmesi, kategorik verilerin uygun formatlara dönüştürülmesi (örneğin, one-hot encoding) ve modelin gereksinimlerine göre düzenlenmesi gerekir.
- Algoritma Seçimi: Çözmek istediğimiz problemin türüne göre en uygun algoritmayı belirlememiz gerekiyor. Doğrusal regresyon, karar ağaçları, destek vektör makineleri (SVM) veya derin öğrenme gibi farklı yöntemlerden biri tercih edilebilir.
- Veri Setinin Ayrıştırılması: Modelin başarısını doğru bir şekilde değerlendirebilmek için veri setini uygun şekilde ayırmak gerekir. Genellikle verinin %80’i eğitim, %20’si check olarak ayrılarak modelin öğrenme süreci ve gerçek dünya performansı ölçülür. Aşırı öğrenmeyi önlemek için doğrulama (validation) seti kullanılır, böylece modelin sadece eğitim verisine değil, genel veriye de iyi uyum sağlaması hedeflenir. Ayrıca, modelin daha sağlam ve genelleştirilebilir olması için Okay-Fold çapraz doğrulama gibi teknikler uygulanarak farklı veri bölümleriyle birden fazla check yapılır.
- Hiperparametre Optimizasyonu: Modelin performansını artırmak için en uygun hiperparametreleri belirlememiz şart. Bunun için Grid Search, Random Search veya Bayesian Optimization gibi yöntemlerden yararlanabiliriz.
- Mannequin Eğitimi: Seçtiğimiz algoritma, eğitim verileriyle eğitilir ve modelin veriyle nasıl etkileşime girdiğini gözlemleyerek süreci değerlendiririz.
Modelin doğruluğunu ve başarısını anlamak için farklı değerlendirme metrikleri kullanılır:
Sınıflandırma Problemleri İçin:
- Doğruluk, modelin tüm tahminler içindeki doğru tahmin yüzdesini ifade eder. Genellikle dengeli veri kümelerinde iyi bir performans göstergesidir.
- Kesinlik (Precision): Modelin pozitif olarak tahmin ettiği örneklerin gerçekten pozitif olma oranını gösterir.
- Duyarlılık (Recall): modelin tüm gerçek pozitifleri doğru tahmin etme oranıdır. Özellikle yanlış negatiflerin büyük downside olduğu durumlarda önemlidir. Eğer mannequin, pozitif sınıfları iyi tespit edemiyorsa, duyarlılık metriği düşük olacaktır.
- F1 Skoru: Kesinlik ve duyarlılık arasındaki dengeyi gösteren metrik.
- AUC-ROC Eğrisi: Modelin pozitif ve negatif sınıfları ne kadar iyi ayırt ettiğini gösterir.
Regresyon Problemleri İçin:
- Ortalamadan Mutlak Hata (MAE): Modelin tahmin hatalarının mutlak ortalaması.
- Ortalama Karesel Hata (MSE) ve Kök Ortalaması (RMSE): Modelin hatalarının karesel ortalaması ve bunun karekökü.
- R² Skoru: Modelin bağımsız değişkenlerin bağımlı değişkeni açıklama oranı.
Gibi değerlendirme metrikleri kullanılabilir.
Makine öğrenmesi modelleri geliştirilirken en önemli konulardan biri modelin genelleme yeteneğidir. Modelin eğitim verisine çok iyi uyum sağlaması ancak yeni verilere karşı düşük performans göstermesi Overfitting (aşırı öğrenme), modelin verideki temel ilişkileri yeterince öğrenememesi ise Underfitting (yetersiz öğrenme) olarak adlandırılır.
İyi bir mannequin, bu iki uç nokta arasında dengeli bir noktada olmalıdır. Overfitting’i önlemek için modelin aşırı karmaşık olmamasına dikkat edilmesi gerekirken, underfitting’i önlemek için yeterince güçlü bir mannequin kullanmak ve veriyi doğru şekilde işlemek önemlidir.
Mannequin başarılı bir şekilde check edildikten sonra üretim ortamına alınarak gerçek dünya verisi üzerinde çalıştırılmalıdır. Bu süreç yalnızca modelin dağıtılmasını değil, aynı zamanda uzun vadede performansının korunmasını da kapsar.
1. Modelin Yayınlanma Süreci
- Mannequin, Flask ve FastAPI gibi araçlar kullanılarak bir REST API olarak sunulabilir.
- Net ve mobil gibi platformlarda bütünleştirilerek farklı platformlarda kullanılabilir.
2. Modelin Sürekli Takibi ve Güncellenmesi
- Mannequin üretime alındıktan sonra gerçek zamanlı verilerle doğruluğu izlenmeli ve performans düşüşü olup olmadığı kontrol edilmelidir.
- Idea Drift Analizi yapılmalı, yani modelin eğitildiği veri ile gerçek dünya verileri arasındaki farkın zamanla değişip değişmediği belirlenmelidir.