Yazan : Şadi Evren ŞEKER
Bu yazının amacı, bilgisayar bilimleri ve iş zekası (business intelligence) gibi disiplinlerin ortak çalışma alanlarından olan veri madenciliği (data mining) konusunda kullanılan metotlardan birisi olan sınıflandırma (classification) kavramını açıklamaktır.
Sınıflandırma kavramı, basitçe bir veri kümesi (data set) üzerinde tanımlı olan çeşitli sınıflar arasında veriyi dağıtmaktır. Sınıflandırma algoritmaları, verilen eğitim kümesinden bu dağılım şeklini öğrenirler ve daha sonra sınıfının belirli olmadığı test verileri geldiğinde doğru şekilde sınıflandırmaya çalışırlar.
Veri kümesi üzerinde verilen bu sınıfları belirten değerlere etiket (label) ismi verilir ve gerek eğitim gerekse test sırasında verinin sınıfının belirlenmesi için kullanılırlar.
Konunun daha kolay anlaşılabilmesi için bir örnek üzerinden anlatmaya çalışalım.
Örneğin aşağıdaki şekilde öğrencilerden toplanan bir veri kümemiz bulunsun.
Yaş | Boy | Kilo | Cinsiyet |
20 | 175 | 70 | Erkek |
21 | 179 | 80 | Erkek |
19 | 162 | 50 | Kız |
22 | 169 | 55 | Kız |
20 | 183 | 90 | Erkek |
19 | 181 | 75 | Erkek |
21 | 171 | 57 | Kız |
Örneğin problemimizi şu şekilde tanımlayalım. Bir sınıflandırıcı yöntemimiz, yukarıdaki kümeye bakarak verilen yaş boy ve kilo değerlerine göre bir öğrencinin cinsiyetini öğrenecek olsun. Yani yukarıdaki veri kümesini bir eğitim kümesi olarak kullanacağız. Ardından gelen yeni bir kayıt için, yaş, boy ve kilo değerleri verildiğinde, sınıflandırıcımız cinsiyetini otomatik olarak tahmin edecek (prediction).
Çok sayıdaki sınıflandırma algoritmalarından basit birini seçelim. Diyelim ki sınıflandırma algoritmamız, verilen etiketteki değerlerin ortalamasını alacak ve bu ortalama değer, öğrendiği değer olacak. Ardından gelen test değerleri için bulmuş olduğu ortalamaya uzaklığına bakacak ve kime yakınsa o etiketten kabul edecek.
Yukarıdaki veri kümesini iki sınıf için ikiye bölelim ve ortalama değerlerini alalım:
Erkekler için öğrenme işlemimiz aşağıda verilmiştir:
Yaş | Boy | Kilo | Cinsiyet |
20 |
175 |
70 |
Erkek |
21 |
179 |
80 |
Erkek |
20 |
183 |
90 |
Erkek |
19 |
181 |
75 |
Erkek |
20 |
179,5 |
78,75 |
Ortalama |
Aynı işlemin kızlar için olanı aşğaıdaki şekildedir:
Yaş | Boy | Kilo | Cinsiyet |
21 |
171 |
57 |
Kız |
19 |
162 |
50 |
Kız |
22 |
169 |
55 |
Kız |
20,66666667 |
167,3333333 |
54 |
Ortalama |
Sonuç olarak algoritmamız erkekler için (20,179.5, 78.5) değerlerini öğrenirken, kızlar için (20.66, 167.33, 54) değerlerini öğreniyor. Diyelim ki yeni gelen ve test edilmesini istediğimiz değer de, yaş : 21, boy: 165, kilo 60 değerlerinde bir kişi olsun. Şimdi algoritmamız öğrendiği değerlere göre bu yeni gelen kişinin cinsiyetini tahmin etmeye çalışacak. Basitçe her değere olan mesafeyi hesaplayacak (burada da çok farklı mesafe hesaplama algoritmaları olmasına karşılık biz yine amacımız temel kavramlar olduğu için konuyu basit tutarak öklit mesafesi (euclidean distance) kullanalım).
Algoritmamızın Erkek tanımından öğrendiği değerler ile yeni gelen kişinin mesafesini hesaplayalım:
Benzer şekilde kızlar için öğrendiğimiz değere olan mesafesini hesaplamaya çalışalım.
Buna göre algoritmamızın verdiği değer, erkeklere olan mesafesinin 23.72 olduğu ve kızlara olan mesafesinin 6.44 olduğudur. Demek ki algoritmamız yeni gelen kişiyi kız sınıfından tanımlamıştır.
İşte sınıflandırma algoritmalarının çalışması, yukarıda da anlatıldığı gibi en basit anlamıyla, 2 aşamadan oluşur.
-
Eğitim verisi üzerinden öğrenme
-
Öğrenilen değerlerle test verisi üzerinde sınıflandırma
Ancak veri madenciliği ve iş zekası çalışmalarında sınıflandırma sadece çalışmanın bir türü ve ufak bir parçası olmaktadır.
Bazı Sınıflandırma Algoritmaları ve ilgili konular:
- Destekçi Vektör Makinesi (Support Vector Machine)
- Doğrusal Olmayan SVM (Non-Linear SVM)
- Veri Akış Madenciliği (Data Stream Mining)
- Naif Bayes Sınıflandırıcısı (Naive Bayes Classifier)
- Naif Bayes ile Metin Sınıflandırma (Naive Bayes Text Classification)
- Karar Ağacı Öğrenmesi (Decision Tree Learning)
- K-En Yakın Komşu (KNN, K-nearest neighborhood)
Veri Kümesine Özel İşlemler
Sınıflandırma Algoritmalarındaki Hata Ölçüm Yöntemleri
Ellerinize sağlık çok sade ve güzel bir anlatımınız var..
eğitim verisi aynı zamanda test verisi olarakta kullanılabilir mi?