Makine Öğrenmesi ve Sınıflandırma

Daha önceki Denetimli Öğrenme‘yi anlattığım yazımda sınıflandırma modellerine giriş yapmış, başlıca kullanılan algoritmalara örnekler vermiştim. Bu yazımda da sınıflandırma modellerine giriş yapmadan önce bilinmesi ve gerektiğinde yapılması gerekenleri anlatıp, sınıflandırma algoritmalarını kısaca anlatmaya çalışacağım.

Her makine öğrenmesi uygulamasına başlamadan önce elimize geçen veri setiyle ilgili genel-geçer bazı şeyleri önden bilmek ve uygulayacağımız modelleme çeşidinin kendi içindeki dinamikleri hakkında bilgi sahibi olmak bize her zaman zaman kazandıracaktır. Sınıflandırma modelleri için veri tipi, modelleme sonucunda tahmin edilecek output değerinin nasıl olacağı ve veri setinin algoritmalar için gerektiğinde nasıl dönüştürülmesi gibi konuları algoritmaları açıklamaya başlamadan önce, ilk başta anlatmakta fayda var.

Sınıflandırma modelleri etiketlenmiş verinin olduğu ve kategorik veri/verileri içeren veri setlerinde kullanılır. Peki nedir bu kategorik veri diye hatırlayacak olursak; nümerik olarak açıklanamayan, verinin karakteristiğini ve niteliğini açıklayan veriler kategorik veri olarak adlandırılır. Kategorik verinin kendi içindeki türleri ise; nominal, yani kendi arasında sıralamaya girmeyen veri tipi (cinsiyet: erkek/kadın), ordinal ise, belirli aralık çerçevesinde değerlendirilebilen (ilkokuldan üniversiteye eğitim durumu) veri tipidir.

Gelelim tahmin edilecek olan target yani output değeri veya değerlerinin nasıl tahmin edileceğine. Sınıflandırma modellerinde genel olarak üç türlü tahminde bulunabiliriz. Bu tahmin çeşitlerini yazacak ve açıklayacak olursak;

1- Binary

2- Multiclass

3- Multilabel

Binary sınıflandırma türünde, adından da anlaşılabileceği gibi, iki adet target değerinden bir tanesi tahmin edilmeye çalışılır. Örnek olarak, çeşitli biyolojik değerlerin olduğu bir veri setinde hastanın kalp krizi geçirmesi veya geçirmemesi olasılığı tahmin edilir.

Multiclass sınıflandırmada ise ikiden fazla target değeri vardır ve bu değerler arasından en uygun olanı tahmin edilmesi gerekir. Örnek olarak; internette rahatlıkla bulabileceğiniz Iris veri setinde, Türkçesi süsen olan çiçeğin target olarak 3 farklı türü ve input değeri olarak da çeşitli botanik özellikleri bulunur. Sınıflandırma modellemesi yapılarak, elde olan input değerinin 3 farklı türden hangisine ait olduğu belirlenir.

Multilabel sınıflandırmada, Multiclass‘da olduğu gibi ikiden fazla target değeri vardır ve bu değerlerin hangilerinin input değerine uyduğu tespit edilir. Buraya dikkat edelim; Multiclass‘da olduğu gibi tahmin edilen tek bir değer değil, birden fazla değerdir. Örnek verecek olursak; elimizde NetFlix‘de izlediğimiz dizilerin türlerini tahmin etmemizi sağlayan bir veri seti olsun. Herhangi bir dizinin türlerini tahmin etmek istediğimizde, sınıflandırma modeli bize birden fazla dizi türü sunacaktır. Dizinin belgesel ve drama türünde olmasını tahmin etmesi gibi.


Binary vs Multiclass vs Multilabel, 1

Makine öğrenmesi algoritmaları, veri olarak gelen nümerik değerleri bir takım matematiksel işlemlerden ve parametre ayarlarından geçirerek bize en iyi tahmini vermeye çalışır. Ama yukarıda sınıflandırma problemlerinde veri setinin içinde input veya output olarak kategorik verinin olacağından bahsetmiştik. Peki bu durumda ne yapacağız? İşte tam da bu noktada imdadımıza bir Feature Engineering metodu olan Encoding yetişiyor. Encoding kısaca; farklı teknikler kullanarak elimizdeki kategorik veriyi nümerik veriye döndürme işlemidir. Başlıca Encoding tekniklerini sayacak olursak;

  • One-Hot Encoding
  • Label Encoding
  • Binary Encoding
  • Target Encoding
  • Hash Encoding
  • vs…

Sınıflandırma modellemelerinden önce bilinmesi gerekenleri kısaca anlatmaya çalıştım. Gelelim Sınıflandırma Modellleri oluşturmak için kullanılan algoritmaları kısaca tanımaya.

Decision Tree

Türkçeye karar ağaçları olarak çevirilen bu algoritma türünde, kısaca; veri setinin içindeki uygun input değerleri top-down bir çözüm uygulanarak ve if-else durumları kontrol edilerek adeta kökten yapraklara kadar bir karar ağacı oluşturulur. Veri seti içindeki input değerleri output değerlerine göre sınıflandırılmış olur. Decision Tree; Binary, Multiclass ve Multilabel sınıflandırma uygulamalarında kullanılabilir. Bu arada hatırlatmakta fayda var; Decision Tree algoritması parametre ayarı yapılarak regresyon modellemelerinde de kullanılabilir.

Random Forest

Random Forest algoritması aslında, Decision Tree algoritmasındaki karar ağacının birden fazla olmasıdır. Random Forest uygulamasında her karar ağacı birbirinden bağımsız çalışır. Karar ağaçları sonucunda en çok hangi değer tahmin edildiyse o değer seçilir.

Support Vector Machine (SVM)

Support Vector Machine algoritmasında sınıflandırmayı oluşturmak için veri seti içinde hyperplane dediğimiz bir sınır çizgisi oluşturulur. Bu sınır çizgisi sınıflar arasındaki uzaklığı maximize etmeye çalışır. Binary ve Multiclass uygulamalarında çalıştırılabilir.

Naive Bayes

Naive Bayes algoritması olasılık hesaplamaları yaparak veri seti içindeki etiketlenmiş veriyi kümelendirmeyi amaçlar. Bu algoritma türü avantaj olarak, az veri içeren veri setlerinde bile iyi çalışabilir.

Logistik Regresyon

Normal regresyon çözümleri dışında, Logistik Regresyon, genellikle target değerinin 0 ya da 1 olduğu Binary uygulamaları için sınıflandırma problemlerinde de kullanılabilir. Sigmoid fonksiyonu kullanılarak veri seti target değerlerine uygun olarak ayrılır ve sonucunda sınıflar olasıksal olarak oluşturulmuş olur. Nadir de olsa one vs all stratejisiyle Multiclass uygulamalarında kullanılabilir.

K-Nearest Neighbour

Kısaca KNN algoritması, veri seti içindeki bağımsız input değerleri arasındaki benzerliklerin üzerinden tahminin yapıldığı bir algoritma çeşididir. Bu algoritmada her bir veri noktası için gözlem oluşturulur ve tahmini yapabilmek için uzaklık hesabı ile gözlemler arasında adeta kümelenmeler çıkarılır. Bu kümelerin içindeki frekansı en çok olan değer tahmin olarak atanır.

Yukarıda bahsettiğim Encoding çeşitleri ve kısaca açıklamaya çalıştığım Sınıflandırma algoritmalarının her biri aslında ayrı bir yazı konusu. İlerleyen zamanlarda hepsi için tek tek yazılar hazırlayacağım.

Şimdilik sağlıcakla kalın.

Kaynak:

https://www.cse.iitk.ac.in/users/sigml/lec/Slides/MLL.pdf

Leave a Reply