Adım Adım Makine Öğrenmesi Bölüm 2: Denetimli Öğrenme Nedir?

Hatice Candan
Machine Learning Turkiye
4 min readDec 17, 2021

Machine Learning Step-by-Step Part 2: What is Supervised Learning?

Photo by Markus Winkler on Unsplash

Herkese yeniden merhabalar, Adım Adım Makine Öğrenmesi Bölüm 2 ile sizlerleyim. İlk yazımda Makine Öğrenmesi nedir sorusuna cevap aramıştık ve makine öğrenmesi ile ilgili temel bir giriş yapmıştık. Eğer henüz okumadıysanız sizi önce ilk yazımıza alalım . Bu yazımda ise makine öğrenmesi türlerinden Denetimli Öğrenmeyi inceleyiz. Şimdiden hepinize keyifli ve verimli okumalar…

Denetimli Öğrenme (Supervised Learning) Nedir?

Denetimli Öğrenme algoritmasındaki en önemli nokta etiketli bir veri kümesi (labeled dataset) kullanılmasıdır. Yani hangi verinin hangi bilgiye karşılık geldiği bilinmektedir. Algoritma etiketli eğitim verileri üzerinden girdi özelliklerini bir çıktıyla eşleştirmek için optimal bir fonksiyon bulmaya çalışır. Amaç girdi ile çıktı arasındaki örüntüye en iyi uyacak olan fonksiyonu bulmaktır; böylece yeni girdi verilerinin hangi çıktıyı verebileceğinin en iyi şekilde tahmini yapılabilsin.

Yani kısaca denetimli bir öğrenme, bilinen bir girdi seti ile bunlara denk gelen çıktıları alıp algoritmanın daha önce hiç görmediği (eğitimde kullanılmayan) yeni verilere en uygun çıktıları üretmek için kullanılan bir makine öğrenmesi modelidir.

Şekil 1 : Denetimli Öğrenme (Supervised Learning) Modeli

Esasında biz algoritmaya hangi sonuçlara varmasını gerektiğini öğretip bunu yeni veriler üzerinde test ediyoruz. Öğretmen ile öğrenci ilişkisi gibi. Önce bilgileri makinaya öğretip sonra sınava sokuyoruz bakalım ne kadar öğrenmiş, iyi bir öğrenci miymiş :) (Şekil 1).

Konuyu iyice özümsemek için küçük bir örnek verelim. Diyelim ki yazdığım teknik yazıyı okuyacak kişi sayısını makine öğrenmesi yöntemi ile tahmin etmek istiyorum ve verileri ben oluşturacağım. Burada girdi verilerim; yazı uzunluğu, yazıyı yayınladığım saat, takipçi sayım vb. veriler olurken çıktı verim ise okuyacak kişi sayısı olacaktır. Bu verilerime dayanarak algoritmam girdi verilerim ile okunma oranı arasındaki bağlantıyı görebilir ve bir ilişki kurup tahminde bulunabilir.

Denetimli öğrenme genellikle Regresyon ve Sınıflandırma problemlerine uygulanır demiştik.

Regresyon ve Sınıflandırma problemleri arasındaki temel fark; regresyonun fiyat, maaş, yaş gibi sürekli değerleri tahmin etmek için kullanılırken; sınıflandırmanın ise erkek veya kadın, doğru veya yanlış, iyi veya kötü gibi ayrık değerleri tahmin etmek için kullanılmasıdır.

Şekil 2 : Sınıflandırma ve Regresyon

Gelin Regresyon ve Sınıflandırma problemlerine yakından bakalım.

Regresyon (Regression) Nedir ?

Bir regresyon probleminde, sürekli değerli (continuous) bir çıktıyı tahmin etmek hedeflenmektedir. Genellikle bağımlı ve bağımsız değişkenler arasındaki neden sonuç ilişkisini tahmin etmek ve bulmak için kullanılır. İzlenme oranı tahmini, ev-araba fiyatı tahmini, hava durumu tahmini, öğrencilerin alacağı notun tahmini, maaş tahmini gibi. Yani sayısal bir değer arıyorsak regresyonu yapıştırın gitsin …

Regresyon algoritmalarından bazıları şu şekilde sıralanabilir :

· Simple Linear Regression

· Multiple Linear Regression

· Polynomial Regression

· Logistic Regression

· Support Vector Regression

· Decision Tree Regression

· Random Forest Regression

Şekil 3 : Lineer Regresyon (Linear Regression) Modeli

Lojistik Regresyon (Logistic Regression) gibi bazı regresyon algoritmalarının sınıflandırma için de kullanılabileceğini ve tam tersinin de geçerli olabileceğini unutmamak gerekir. Ne de olsa her iki problem de Denetimli Öğrenme Algoritmalarında uygulanmaktadır.

Sınıflandırma (Classification) Nedir ?

Sınıflandırma adından da anlaşılacağı üzere veri kümesini farklı parametrelere dayalı olarak sınıflara ayırmayı hedefleyen bir algoritmadır. Girdi verilerini ayrık değerdeki çıktı verisine eşleyen problemlere uygulanmaktadır; yani çıktı verileri kategorik tiptedir. Örneğin göğüs kanseri tahmini, bir resmin kedi içerip içermediği, cinsiyet tahmini vb. Yani bir şeyleri kategorize etmek istiyorsak sınıflandırmayı yapıştırın gitsin …

Sınıflandırma algoritmalarından bazıları şu şekilde sıralanabilir :

· Logistic Regression

· K-Nearest Neighbours

· Support Vector Machines

· Kernel SVM

· Naïve Bayes

· Decision Tree Classification

· Random Forest Classification

Şekil 4 : Sınıflandırma (Classsification) Modeli

Kısa bir örnekle konuyu ne kadar anlamışız kendimizi bir test edelim ve anlaşılmayan yerler pekişsin.

Şimdi diyelim ki bir şirket yönetiyorsunuz (umarım bir gün) ve aşağıdaki sorunları çözümlemek için makine öğrenmesi algoritması geliştirmek istiyorsunuz.

Problem 1 : Aynı öğelerden oluşan büyük bir envanteriniz var ve önümüzdeki 3 ay içinde bu ürünlerden kaçının satılacağını tahmin etmek istiyorsunuz.

Problem 2 : Geliştirmiş olduğunuz yazılımın bireysel müşteri hesaplarını incelemesini ve incelediğiniz hesabın hacklendi mi yoksa güvenlik ihlaline mi uğradığına karar vermesini istiyorsunuz.

Her iki problemi de tahmin edilmeye çalışılan hedefler açısından ele alırsak, yukarıda tartıştığımız denetimli öğrenme kategorilerinden hangilerinin altına koyabiliriz?

Çözümlere bakmadan önce 2 sn düşünelim….

Düşündüğünüzü varsayıp çözümlere geçtik :)

Problem 1, regresyon problemidir. Bunun nedeni, belirli bir süre boyunca çok sayıda öğeyi tahmin etmeye çalışıyoruz. Dolayısıyla, bu problemin sürekli değerli bir çıktısı vardır. Ne demiştik, sayısal bir değer arıyorsak regresyonu yapıştırın gitsin.

Problem 2, sınıflandırma problemidir. Bunun nedeni, yalnızca hesapların saldırıya uğrayıp uğramadığını tahmin etmeye çalışıyoruz. Bu nedenle, bu problemin ayrık değerli bir çıktısı vardır.

Son Söz ve Kapanış

Regresyon ve sınıflandırma konusunu daha detaylı olarak başka bir yazımda masaya yatırmayı planlıyorum. Şimdilik bu kadar yeterli. Umarım faydalı olmuştur. Gelecek yazımda Denetimsiz Öğrenmeyi ayrıntılarıyla anlatıyor olacağım.

Kendinize cici bakın :)

Photo by Marten Newhall on Unsplash

--

--

Hatice Candan
Machine Learning Turkiye

AI Engineer Intern at Mia Teknoloji || ex - Core Team Lead at Google Developer Student Clups ML and AI Team