Machine Learning #4 — Gözetimsiz Öğrenme, Kümeleme, K-Means Algoritması, Boyut Azaltma, Temel Bileşenler Analizi

Göker Güner
5 min readFeb 4, 2022
https://adimadimgurme.com/2020/09/20/sante-wine-more/ adresinden alınmıştır.

Selamlar,

Eğer bu yazının İngilizcesiyle ilgilenmiyorsanız, bu paragrafı pas geçebilirsiniz.

This post is the fourth article in my Machine Learning series that I have written to consolidate and share what I have learned. For the third article of the series that published on Analytics Vidhya: link

For English version of the article: link

Merhabalar, Machine Learning serimizin dördüncüsünde,

  • Gözetimsiz öğrenme kavramını inceleyecek,
  • Kümeleme yöntemini ve bu yöntemi içeren K-Means Algoritması’nı öğrenecek,
  • Kümeleme yönteminin kritik konularından olan boyut azaltma ve Temel Bileşenler Analizi(PCA) kavramlarına değineceğiz.

Serinin ikinci yazısında yer alan şarap kalitesi veri setini kullanacağız, ancak bu kez etiketleme yapmadan, gözetimsiz öğrenme teknikleriyle veri setini inceleyeceğiz.

Bu yazıda, serinin önceki yazılarından farklı bir öğrenme modeline, gözetimsiz öğrenmeye değineceğiz. Gözetimsiz Öğrenme, gözetimli öğrenmeden farklı olarak, verileri sebep-sonuç ya da giriş-çıkış şeklinde etiketlemeden, veri içerisinde var olan ilişkilerin ve yapıların öğrenilmesidir.

Gözetimli öğrenmeden farklı olarak, bir eğitim verisine ihtiyacımız yoktur. Gözetimsiz öğrenme algroitması, eldeki veriyi yorumlar ve gruplar. Daha sonra da yeni gelen verinin hangi gruba ait olduğunu tahmin eder. Bu tahmini yaparken özelliklerinin o gruplardan hangisine daha çok benzediğini bulmaya çalışır, ancak veriler etiketli olmadığı için bu örneğin ne olduğuna dair bir yorum yapamaz. Bu yorumu uygulayıcıya bırakıyor olmasına rağmen, kolay görselleştirilebildiği için oldukça kullanışlıdır.

Kümeleme algoritması için tüm değerlerin non-null olması ve string barındırmaması önemlidir. Bir analitik uzayda uzaklık hesabına göre kümeleme yapılacağı için tüm değerlerimiz sayısal olmalıdır.

K-Means Kümeleme Algoritması

K-ortalama kümeleme ya da K-means kümeleme (K-means clustering) yöntemi bir veri kümesini giriş parametresi olarak verilen K adet kümeye bölümlemektir. Amaç, gerçekleştirilen bölümleme işlemi sonunda elde edilen kümelerin, küme içi benzerliklerinin maksimum ve kümeler arası benzerliklerinin ise minimum olmasını sağlamaktır.

K-means algoritmasının çalışma mekanizmasına göre öncelikle her kümenin merkez noktasını veya ortalamasını temsil etmek üzere K adet nesne rastgele seçilir. Kalan diğer nesneler, kümelerin ortalama değerlerine olan uzaklıkları dikkate alınarak en benzer oldukları kümelere dahil edilir. Daha sonra, her bir kümenin ortalama değeri hesaplanarak yeni küme merkezleri belirlenir ve tekrar nesnelerin merkeze uzaklıkları incelenir. Herhangi bir değişim olmayıncaya kadar algoritma tekrarlamaya devam eder.

Algoritma temel olarak 4 aşamadan oluşur:

1.Küme merkezlerinin belirlenmesi

2.Merkez dışındaki verilerin mesafelerine göre kümelendirilmesi

3.Yapılan kümelendirmeye göre yeni merkezlerin belirlenmesi (veya eski merkezlerin yeni merkeze kaydırılması)

4.Kararlı hale gelinene kadar 2. ve 3. adımların tekrarlanması.

Bu veri setini kullandığımız bir önceki yazıda df.describe() metodunu kullanıp tablodaki sayısal değerlerleri yorumlayarak veri kümemizin büyük çoğunluğunun quality özelliğinin 5 ve 6 gibi değerlere sahip olduğunu söylemiştik. Bunu görsel olarak temsil etmek için seaborn kütüphanesiyle böyle bir görselleştirme yapabiliriz.

Korelasyon matrisi kavramına serinin önceki yazılarında değinmiştik. Bu kez, farklı bir yaklaşımla üst yarısı olmadan çizdirdik.

Korelasyonu görsel olarak daha net ifade edebilmek için,hedef değişkenimiz olan “quality” yerine daha güçlü korelasyona sahip değişkenleri seçtim. Korelasyon matrisinden de görebileceğimiz üzere Fixed Acidity özelliği, Density ile güçlü pozitif(0.67), pH ile de güçlü negatif(-0.68) bir korelasyona sahip.

Centroid & Inertia Kavramları

K-Means kümeleme algoritmasının amacı, basitçe k adet kümenin ağırlık merkezlerini olabilecek en iyi şekilde seçmektir. Bu ağırlık merkezlerine centroid adı verilir. Olabilecek en iyi şekilde seçildiğinde, kayıp fonksiyonu(yani inertia değeri) minimize edilmiş olur.

Not: Pek tabii ki, nihai amacımız sadece inertia’yı olabildiği kadar küçültmek değildir. Cluster veya centroid sayısını veri kümesinin eleman sayısına eşit belirlersek doğal olarak inertia sıfır olacaktır. Ama sonucunda verimiz kümelenmemiş olur.

İdeal küme sayısının kaç olabileceği, dirsek metodu ile bulunur.

“quality” özelliğini veri kümemizdeki örneklerin özellikleri arasından çıkardık, ardından değerleri bir X değişkenine atadık ve skaler büyüklüklerin etkisini gidermek için scale ederek algoritmamızın veriyi anlamak için kullanacağı girdi setimizi hazırlamış olduk.

Not: Optimum küme sayısını belirlerken, X değerlerinin scale edilmiş halini kullanmadık çünkü bu metod, model başarımını artırmak için yapacak olduğumuz sayısal bir düzeltmedir. Ancak öncesinde, bu veriyi kaç kümeye ayıracağımızı bilmek için, verinin kendisini incelemek isteriz, üzerinde oynama yapılmış halini değil.

Küme sayımızı 3 olarak belirleyebiliriz gibi duruyor, devamında inertia değerinin düşme hızı azalıyor.

K-Means modelimiz, hazırlamış olduğumuz veri setinin ilk 1000 örneğini eğitim için kullanacak, diğer 500 örneği de ilk 1000 örnekten yaptığı çıkarımlara göre sınıflandıracak.

Kümelerin ağırlık merkezlerini grafikte kare olarak görebilirsiniz. Bazı keskin örnekleri düzgün kümeleyebilmiş olsak da, renkler biraz karışık duruyor. Daha iyi performans için algoritmamıza nasıl yardımcı olabiliriz?

Boyut Azaltma & PCA

Boyut azaltma, verilerdeki kalıpları bulur ve bunları “sıkıştırılmış” bir biçimde yeniden ifade eder. Böylece, süre ve boyut açısından daha efektif hesaplama yapabilir. Çok daha büyük veri kümelerinde çalışıldığında sadece doğruluk değil, süre açısından da önemlidir.

En önemli işlevi ise, görece az bilgi içeren özelliklerin veri kümesinden atılmasıdır. Boyut azaltma işlevinde kullanılan en temel teknik, PCA(Principal Component Analysis — Temel Bileşen Analizi)’dir.

Yapmaya çalışacağımız temel şey, ver için önemli bilgileri içeren “temel bileşen” sayısını bulmak ve veri setindeki özellikleri bu sayıya indirmektir.

Bu bileşenlere, kimi kaynaklarda “içsel boyut” olarak da rastlamanız mümkündür. Bu örnek için, bizim veri kümemiz aslında çok boyutlu bir küme iken, “içsel” olarak aslında 2 boyutludur diyebiliriz.

Burada, özelliklerin ciddi bir bölümünün bilgi içermediğini görüyoruz. Bileşen sayımızı 2 olarak belirlersek, işimize yarayacak bilginin önemli bir bölümünü koruyabiliriz gibi görünüyor. Peki bu “bilgi” dediğimiz büyüklüğün tam olarak ne kadarını koruyoruz?

Bileşen sayımızı 2 olarak belirlediğimizde, toplam varyansın yaklaşık %99.8'ini, yani neredeyse tamamını koruyabiliyoruz.

Hem ağırlık merkezleri, hem de kümeler kesinlikle ilk denememizde olduğundan daha iyi görünüyor.

Hiyerarşik Kümeleme

Hiyerarşik kümeleme, örnekleri küçükten büyüğe doğru bir küme hiyerarşisi içerisinde düzenler ve teknik-olmayan insanlar için veriyi görselleştirmenin iyi bir yoludur. Tıpkı lise biyolojisinde gördüğümüz canlılar alemi sınıflandırmasına benzer olarak, en küçük(veya büyük) ortak özelliklerden başlar ve sınıflayarak devam eder.

Tam bağlantıda(yukarıdaki linkage metodunda “complete” olarak refere edilmiştir), kümeler arasındaki mesafe, kümelerin en uzak noktaları arasındaki mesafedir. Buna agglomerative(birleştirici) yaklaşım denir. Bu yaklaşımın başlangıcında, tüm nesneler birbirinden ayrıdır. Yani örneklerin her biri kendi başına bir kümedir. Devamında benzer özniteliklere sahip kümeler bir araya getirilerek tek bir küme elde edilir. Bu yöntemin bir diğer adı da En Uzak Komşu Yöntemi’dir(Furthest Neighbor).

Tek bağlantıda(aşağıdaki linkage metodunda “single” olarak refere edilmiştir), kümeler arasındaki mesafe, kümelerin en yakın noktaları arasındaki mesafedir. Bölücü(divisive) yaklaşımda ise ayrıştırıcı bir strateji hakimdir. Bu yaklaşımda başlangıçta tek bir küme vardır. Her aşamada uzaklık/benzerlik matrisine göre nesneler ana kümeden ayrılarak, farklı alt kümeler oluşur. Süreç sonucunda her veri bir küme olur. Bu yöntemin diğer adı da En Yakın Komşu Yöntemi’dir(Nearest Neighbor).

Sonraki yazılarımızda görüşmek üzere.

--

--

Göker Güner

YTU Alumni. ML Ops & Engineer at AlternaCX. Data&AI Enthusiast. MS Student at Bahcesehir University AI Program with Thesis.