Makine Öğrenmesi — 1: Giriş ve Denetimli Öğrenme
We are drowning in information and starving for knowledge. -John Naisbitt
Giriş
Dünya üzerinde her geçen gün toplanan veri miktarı üssel bir biçimde artıyor. Biriken bu veri üzerinde analiz gerçekleştirmedikçe ve gizlediği anlama bakmadıkça işlevsiz bir biçimde yığın olarak kalacaktır. Bu noktada makine öğrenmesi bilgisayarların insanlara benzer şekilde öğrenmesini sağlamak, veri yığınları içerisindeki anlamlı bilgileri bulmak ve teknikler geliştirmesi için çalışılan bilimsel bir çalışma alanıdır.
Makine öğrenmesinin otonom araçlar, kanser tespiti gibi ileri düzey uygulamalarını duyuyor olsak da günlük hayatta da arkasında makine öğrenmesi olan bazı işlevleri kullanıyoruz. Bir arama yapmak, şarkı dinlemek, fotoğraf çekmek gibi işlemler bu uygulamaların arkasında kalan makine öğrenmesi algoritmalarını kullanıyor ve yeni şeyler öğrenmeye itiyor. Böylelikle farkında olmadan teknolojinin bu değişimine ortak oluyoruz.
Bir makine öğrenmesi uygulaması tamamen kodlama ve çıktı değildir. Uygulama gerçekleştirilirken çeşitli basamaklar vardır ve modelleme kısmı bu basamaklardan yalnızca bir tanesidir. Veri Toplama, Veri Ön İşleme, Veri Eğitme, Modelleme, Hiperparametre Dönüşümü gibi adımlar kabaca bir makine öğrenmesi uygulamasını birlikte oluşturur.
Makine öğrenmesinin birden çok çeşidi vardır: Denetimli Öğrenme, Yarı Denetimli Öğrenme, Denetimsiz Öğrenme, Pekiştirmeli Öğrenme bu çeşitlere örnek olarak verilebilir. Her bir çeşidin farklı yaklaşımları, farklı algoritmaları ve amaçları olsa da hepsi temelde aynı sonucu arar: Anlamlı Bilgi!
Denetimli (Gözetimli) Öğrenme — Supervised Learning
En basit ifade ile denetimli öğrenmedeki amaç girdi ile çıktı arasındaki kuralları öğrenmektir. Denetimli öğrenme, algoritmaları eğitmek için etiketli veri kümelerinin kullanılması ile tanımlanır. Denetimli öğrenmede çıktının ne olması gerektiği hakkında önceden bilgimiz vardır. Bu yöntemi “denetimli” yapan şey ise modelin eğitilirken belli bir miktar geçmiş girdi ve çıktı verilir, model bu veriler ile eğitilir ve öğrendiği kurallar çerçevesinde yeni veriler ile tahminlemeyi gerçekleştirir. Yeni girdilere uyum sağlayabilmek bir makine öğrenmesi modelinin en önemli kısımlarından biridir. Eğer model aşırı eğitilmişse (overfitting) modelin daha önce karşılaşmadığı verilerde tahmin başarısı oldukça düşük olacaktır. Denetimli öğrenmeyi temelde iki farklı yönteme ayırabiliriz: Sınıflandırma ve Regresyon.
Sınıflandırma (Classification)
Sınıflandırma yöntemi, veri noktalarını sınıflandırmak için kullanılır. Bu problemde makine öğrenmesi verilerin nasıl ayrılacağı kuralını çözmeye çalışır. Sınıflandırma, ayrık ve sırasız olan kategorik sınıf etiketlerini tahmin eden bir tahmin problemidir. Bir öğrenme adımı ve bir sınıflandırma adımından oluşan iki aşamalı bir süreçtir. Sınıflandırma algoritmalarına;
- Doğrusal Sınıflandırıcılar
- Karar Ağaçları
- K En Yakın Komşu
- Rastgele Orman örnek olarak verilebilir.
Python Uygulaması
Sınıflandırma problemine bir örnek olarak çeşitli bilgileri ile bir kişinin diyabet hastası olup olmadığını ölçen bir uygulama verebiliriz. Eğer bağımlı değişkenimiz olan Outcome değeri 1 ise bu kişi diyabet, 0 ise bu kişi diyabet değil şeklinde yorumlanmaktadır.
Veri seti bağımlı ve bağımsız değişkenler olarak ayrıldıktan sonra algoritmayı eğitmek için eğitim ve test seti olarak bir ayrıma gitmektedir. Bu örnekte test seti için toplam veri setinin %30'luk kısmının olması kararlaştırılmıştır. Veri seti eğitim, test olarak ayrıldıktan sonra model kurulmuş ve tahminleme yapılmıştır.
Ardından bu tahminlerin doğruluğu için çeşitli değerleri bakılmıştır. Recall değeri pozitif sınıfın ne kadar başarılı tahmin edildiğini verirken, Precision değeri pozitif olarak tahmin edilen değerlerin başarısını vermektedir.
Regresyon (Regression)
Regresyon yönteminde gözlemler bir sınıfa sokulmak yerine gerekli girdiler kullanılarak bir sayısal çıktı elde edilir. Regresyon uygulamaları bağımlı ve bağımsız değişken arasındaki ilişkiyi anlamak için kullanılır. Bir başka deyişle genellikle iki veya daha fazla değişken arasındaki ilişkilerin belirlenmesi için olarak tanımlanabilir. Regresyon algoritmalarına örnekler şu şekilde verilebilir:
- Doğrusal Regresyon: En uygun düz çizgiyi kullanarak bağımlı ve bağımsız değişkenler arasında ilişki kurar.
- Lojistik Regresyon: Bağımlı değişken kategorik olduğunda kullanılır. Belirli bir sonucun özellikleri ve olasılığı alasında ilişki bulur.
- Polinom Regresyon: Bağımsız ile bağımlı değişken arasındaki ilişkinin n’inci dereceden bir polinom olarak modellendiği bir regresyon analizi biçimidir.
Python Uygulaması
Lineer Regresyon uygulamasında bağımsız değişkenleri TV, Radyo, Gazete reklam harcama miktarları olan ve bağımlı değişkeni ise Satış Miktarı olan bir set kullanılmıştır. Bu uygulama için bağımsız değişken olarak yalnızca TV değeri alınmıştır. Bu yüzden bu uygulama bir Simple Linear Regression problemidir.
Bağımlı ve bağımsız değişkenler belirlendikten sonra model kurulmuş ve modelin Intercept, Coef değerleri bulunmuştur. Ardından “Eğer 500 birimlik TV harcaması olsaydı satış ne olurdu?” sorusu tahminlenmiştir.