Makine Öğrenimi Felsefesi — 4

Volkan Yurtseven
4 min readMay 15, 2021

Yöntem

Photo by NEW DATA SERVICES on Unsplash

Bu gönderimde ML projelerinde izlenen yönteme ve sürece bakacağız.

ML projelerinde genel olarak belli bir şablon takip edilir. Bunlardan en popüleri CRISP-DM’dir. Aşağıdaki görselde bu metoda ait süreç adımları bulunuyor. İlgilenenler http://leylatilki.com/crisp-dm-metodolojisi-nedir/ veya http://kodlayarakhayat.com/yazilima-dair/crisp-dm-metadolojisi/ adreslerinden detay bilgi alabilir.

Buna göre,

  • İlk adım zaten aşikar, bizden ne istendiğini anlamaya çalışacağız.
  • Sonrasında hedefimizi gerçekleştirmek için verimizi elde edeceğiz. Burada genel olarak veritabanlarından bilgi alacağız diyebiliriz.
  • Sonrasında veriyi keşfedip modelleme için uygun hale getireceğiz. Bu aşama özel bir aşama olup bu dokümanın 2.bölümünde göreceğiz. Toplam emeğin önemli bir kısmı bu aşamada harcanmaktadır, bunun içinde Pandas bilgisi önemlidir bunun için de yine önceki bir gönderimde paylaştığım notebooka bakabilirsiniz.
  • Sonra çıkan sonuçları değerlendireceğiz. Burada hem değerlendirme hem de model seçimi konuları öne çıkıyor. Regression ve Classfication için ayrı yöntemler vardır. Bunları ilerleyen zamanlarda ayrı notebooklar içinde göreceğiz.

DETAY SÜREÇ

  1. Kütüphanelerin import işlemi
  2. Data temini(SQL ile alınır veya hazır veri seti okunur)
  3. EDA ile datayı anlama(Çoooooooook büyük bi aşamadır)
  4. Model kurulacaksa o modelin gerektirdiği varsayımların kontrolü(model öncesi kontroller)
  5. Yeterli sayıda instance(satır/kayıt) var mı kontrolü ve/veya kolon sayısı çok mu? (ML modeli kuracaksak)
    o Çok az satır varsa daha fazla veri toplanması sağlanmalıdır
    o Aşırı çok satır varsa kısmi sampling yapılabilir.(Detayları göreceğiz)
    o Data çokluğundan emin değilseniz tamamıyla deneyin. Eğitim süresi çok uzun sürüyorsa aşamalı olarak azaltabilirsiniz.
  6. Yeterli sayıda kolon var mı ve/veya kolon sayısı çok mu? (ML modeli kuracaksak)
    o Az kolon(feature) varsa yenileri temin edilmeye çalışılabilir
    o Çok kolon varsa çeşitli boyut indirgeme ve önemli kolonları seçme yöntemleri uygulanır(Detayları sorna göreceğiz)
    o Yine satırlardaki aynı mantıkla çok kolon olup olmadığında emin değilseniz önce tümüyle birlikte modelleme yapılır. Eğitim süresi uzun ise veya overfitting oluyorsa feature azaltma yöntemleri uygulanabilir.
    Kolon sayısını azaltma sadece eğitim zamanını kısatlmakla kalmaz aynı zamanda overfittingi de engeller.
  7. Classification problemiyse, veri setimizin labelları dengeli(balanced) mi? (Imbalanced ise train/test ayrımından sonra oversample yapılır)
  8. Sağduyu bu noktada transformasyon gerektirmeyen preprocessing işlemlerinin yapılması gerektiğini söylüyor ancak düzgün bir pieline oluşturmak, sadelik yakalamak ve train/test sonrasında yapılan işlemlerden sonra tekrar buraya dönmemek için bu işlemleri de preprocessinge alıyoruz. (NOT: Eskiden bunlar bu aşamadaydı ama sonradan zorluğunu farkettim ve yerini değiştirdim, yoksa data leakage gibi bir endişem bu aşamadaki işlemler için yoktu)
  9. (Bundan sonraki kısım Supervised algoritmalarda geçerli)
  10. Girdi(input veya feature) ve çıktıların(label veya class) atanması
  11. Veri seti, eğitim(train) ve test setleri olmak üzere iki kısma ayrılır. Test seti bir kenara ayrılır ve son ana kadar hiç dokunulmaz. Eğitim setinde de test setinde de, birden çok bağımsız değişken ve bir adet bağımlı değişken(sonucunu tahmin etmeye çalıştığımız şey) bulunur. Ör: metrekare, site içinde olup olmama ve cephe bilgilerini kullanarak ev fiyatlarını tahmin edebiliriz. Burada ev fiyatı bağımlı değişken iken diğerleri bağımsız değişkendir.(Veri setinin aşırı büyüklüğü/küçüklüğü bir problem teşkil edebilir, bunun için öğrenme problemlerinde kontroller uygulanır)
  12. Preprocessing / Feature engineering işlemleri (Bunların da kendi içinde bi sırası var)
  13. Eğitim seti ile (ilk) model kurulur. Model denen şey matematiksel bir denklemdir. (fit ve transform metodu). (Çoklu model seçenekleri de değerlendirilebilir(bkz.VotingClassifier)
  14. Model eğitim seti üzerinden tahminlenerek (predict metodu) başarı yüzdesine bakılır. Eğer sonuçlar beklediğimizden çok düşükse(yani underfit ediyorsa) sonraki aşamaya geçilmeden underfitting sebepleri bulunup giderilmeye çalışılır.
  15. Veri miktarına bağlı olarak modelin eğitim seti içinde cross-validation’a tabi tutulması gerekebilir(Bunu detaylıca göreceğiz). Sonuçlar beklediğimiz düzeydeyse(underfit etmediyse) ve overfitting olmadığı da görülürse sonraki aşamaya geçilir(bu kavramları da göreceğiz)
  16. Sonra modelin daha önce hiç görmediği, en başta kenara ayırdığımız test veri seti ile model test edilir ve modelimiz istediğimiz kalitede çalışıyor mu diye bakarız. (Burda doğru diye bir şey yoktur, istenilen kalite vardır. Zaten ünlü bir deyiş şöyledir: ‘Tüm modeller yanlıştır, bazıları faydalıdır’. Bizim de modelimiz belirli bir doğrulukta olacaktır, bu bizi tatmin eder mi diye bakıyoruz. Burda yapılan şudur: test verisindeki gerçek bağımlı değişken değerleriyle tahmin sonuçları kıyaslanır.
  17. Modelin gerektirdiği varsayımların kontrolü(model sonrası kontroller)
  18. Sonuçlar iyiyse en iyi 2–3 model, farklı parametre kombinasyonlarıyla tekrar yarıştırılır, en uygun sonuç bizi tatmin ediyorsa artık deployment aşamasına geçilir, sonuçlar iyi değilse yeni veri eklenerek veya feature engineering yapılarak model(ler) yeniden çalıştırılır. Sonuçlar hala istendiği gibi değilse bu adım kendi içinde tekrarlanır. (Grid Search/Random Search)
  19. Gerekirse ensemble modellerindeki oylama sınıflarıyla(VotingClassifier gibi) shortliste bıraktığımız modellerin en iyi sonucu vereninden de daha iyi sonuç veren bir ensemble model kurgulanabilir.

Bu aşamaların hepsi her zaman uygulanmayabilir. Elinizdeki veri setine göre bunlar uygulanmayabilir.

--

--

Volkan Yurtseven

Once self-taught-Data Science Enthusiast,now graduate one