Yeni Başlayanlar İçin Denetimsiz Makine Öğrenmesi

Aysen Çeliktaş
6 min readMar 21, 2023

--

Bir önce ki yazım olan “Yeni Başlayanlar İçin Denetimli Makine Öğrenmesi” yazımda, machine learning in ne olduğundan bahsedildi. Burada ise denetimsiz makine öğrenmesinden bahsetmek istiyorum. Ayrıca, derin öğrenme konusuna giriş yapmak isterseniz burada ki linke göz atabilirsiniz. Başlangıç düzeyde bir EDA’nin (Exploratory Data Analyses) Python ortamında nasıl yapıldığına dair basit birtakım fonksiyonların kullanımına da “EDA (Python)” yazımdan ulaşabilirsiniz.

[yazar tarafından Canva’da hazırlandı]

Bu konuya girmeden önce, kısaca istatistiğin ne olduğuna değineceğim. İstatistik, bilgiyi anlamaya ihtiyacın olduğu ortamda, karmaşık verilerin ihtiyaca yönelik gruplandırılması, düzenlenmesi ve anlamlandırılmasını içerir.

Yapılan iş söz konusu olduğunda, hedef, hedef için ihtiyaç duyulan faaliyetin belirlenmesi, planlanması, zaman ve bütçe yönetimin doğru yapılabilmesi ve birçok konu için şarttır. Veriden anlam çıkarma işlemi küçük veri setleri için kısa zamanlı bir iş olsada, büyük ve complex veri setleri için zamandan kazanmak ve belki de bir insanın yapabilmesinin mümkün olmadığı analizlerin yapılması için makine öğrenmesine ve derin öğrenmeye başvurulur. Denetimsiz makine öğrenmesi (unsupervised machine learning), veriden anlam çıkarabilmek için kullanılan bir machine learning yöntemidir. Başlıca üç ana grupta incelenebilir. Bu yazı içerisinde clustering için kullanılan K-Means ve Agglomerative clustering algoritmaları, dimensionality reduction için ise Principal Component Analysis algoritmasına değinilecektir.

[yazar tarafından Canva’da hazırlandı]

Burada verinin etiketlenmesine (label) gerek yoktur çünkü bir ground truth yoktur. Sadece öznitelikler (feature) mevcuttur ve öznitelikler üzerinden elde edilen sonuç insan aklı tarafından anlamlandırılmalıdır. Etiketleme işlemi olmadığı için veri analizinin yapıldığı zamandan kazanç olsada, bir ground truth üzerinden gruplandırılmayan veri setinde yanlış gruplanan veriler olacaktır ve bu yanlışlığın miktarı üzerine bir sonuç bulunmayacaktır. Bunların yanlış olduğunu model söylemez, insan aklının bunu içeride fark etmesi ve gözden kaçırmaması gerekmektedir. Bu gibi sebeplerden ötürü, domain knowledge a sahip olmanız unsupervised machine learning için çok önemlidir. Veri seti tümüyle kullanılmaktadır, denetimli makine öğrenmesinde ki gibi train ve test olarak ayrılmaz. Verinin hepsi ile model eğitilir ve model üzerinden veriler anlamlı gruplar haline getirilmeye çalışılır.

Şekil1. input data set given to the model for supervised and unsupervised machine learning [yazar tarafından Canva’da hazırlandı]

Model sonucunda bulunan gruplar insan aklı tarafından anlamlandırılmaya çalışılır. Bu gruplandırma yapılırken, önemli olan konulardan biri verinin uniform dağılmamış, random yayılım gösteriyor olmasıdır. Çünkü veri ne kadar random dağılırsa, benzerlikte ki farklılıklar o kadar doğru saptanacaktır. Dolayısıyla daha doğru ayrılmış gruplar elde edilecektir. Fakat veri ne kadar uniform olursa, veri bütünüyle çok benzer bir dağılıma sahip olacağından dolayı, anlamsız bir gruplandırma meydana gelecektir.

Şekil2. Random & Uniform Distribution [yazar tarafından Canva’da hazırlandı]

Verinin dağılımında ki rastgeleliğin ölçülmesi için Hopkins score mevcuttur. Hopkins Score 0 ile 1 arasında yorumlanır. Eğer 0,5 den büyükse uniform dağılıma doğru gider, eğer 0 a yakınsa random dağılıma o kadar yakındır.

Kümeleme (clustering) yöntemlerinde, verinin gruplandırılmasıyla oluşan kümelerin, birbirinden ne kadar bağımsız olduğunu ölçütleyen Silhouette score vardır. Bu skor, hem verinin kendi kümesi içerisinde ki elemanlara olan uzaklığını, hem de diğer kümelere ait elemanlara olan uzaklığını hesaba katar. Bir verinin, kendi kümesi içerisinde ki verilere olan uzaklığının ortalamasının (ai), bütün verilere olan uzaklığından (di) çıkarılarak, diğer verilerle arasında ki maksimum uzaklığa bölünmesiyle bulunur. -1 ve 1 arasında değer alan bu skor, 1’e ne kadar yakınsa kümelerin o kadar ayrık olduğu, -1’e ne kadar yakınsa da kümelerin o kadar sıkı olduğu söylenir. Yani Silhouette skorun 1’e yakın olması, kümelerin bağımsız olduğunu göstermektedir.

K-Means Clustering: Gruplanmak istenen küme (cluster) sayısı kadar merkezin (centroid), veri seti üzerine rastgele atanmasıyla başlar. Bu atamanın, oluşturulan kümelerin tam orta notasına gelene kadar güncellenmesini ve her güncellemede verilerin yakın oldukları centroidlere göre tekrar kümelenmesini kapsamaktadır. Burada cost function, Euclidean mesafesidir ve centroid uzaklıkları minimum olana kadar devam eder. Dezavantajı ise centroidler başlangıçta random atandığı için işe yaramaz bir sonuç verme ihtimalinin olmasıdır. Bunun ortadan kaldırılması için varianceın en yoğun olduğu yerlere atama yapılmasını sağlayan parametreler geliştirilmiştir.

Şekil3. K-Means Clustering [yazar tarafından Canva’da hazırlandı]
Şekil4. K-Means Clustering [yazar tarafından Canva’da hazırlandı]

Kümelemede (clustering), küme içerisinde ki mesafenin minimum, kümeler arası mesafenin maximum olması istenir. Inertia ve Distortion bunun için kullanılan başlıca iki yöntemdir. Inertia N elemanlı bir kümenin elemanlarının hepsinin, centroide göre uzaklıklarının karelerinin toplanması ile bulunur. Distortion ise her kümenin ayrı ayrı inertia değerlerinin, bu kümeye ait eleman sayısına bölünmesiyle ve her birinin toplanmasıyla elde edilir. Bu iki score, Elbow metodu ile birlikte incelenerek, verinin kırılma noktalarına bakılır. Bu metod bahsedilecek yöntemlerden K-Means için kullanılarak, başlangıçta belirlenecek küme sayısını belirlemeye yardımcı olur.

Şekil5. Elbow Methods [yazar tarafından Canva’da hazırlandı]

K-Means, Hierarchical olmayan bir kümeleme yöntemiyken, hierarchical olan kümeleme yöntemlerine Agglomerative ve Divisive clustering yöntemleri örnek olarak verilebilir. Divisive clustering söz konusu olduğunda, başlangıçta bütün veriler tek bir küme olarak alınıp, bölüne bölüne yeni kümeler oluşturulur. Bu yapılırken arka planda aynı zamanda K-Means clustering çalışır. Bu sebeple hesaplama maliyeti çoktur ve çok tercih edilmez. Genelde tercih edilen Agglomerative clustering’dir. Burada, başlangıçta bir küme sayısı belirlemeye yoktur.

Şekil6. Hierarchical Clustering — Dendrogram [yazar tarafından Canva’da hazırlandı]

Agglomerative Clustering: Hierarchical clustering sınıfına giren bu kümeleme yöntemi, bütün veri noktalarını tek başına bir küme (cluster) olarak alır. Takiben, birbirine en yakın olanları kümelemeye başlar. Sonra o kümeleri de kendi aralarında kümelemeye başlar. Bütün veri birleşe birleşe tek bir kümeyi oluşturur. Bunu yaparken oluşturduğu ağaca benzer yapıya ise dendrogram denir.

Şekil7. Agglomerative Clustering — Dendrogram [yazar tarafından Canva’da hazırlandı]

İki veri noktası kümelenirken dikkat edilen kavram linkagedır. Bunların arasından Single Linkage, iki nokta arasında ki ya da kümeler arasında ki en kısa mesafeyi baz alır. Complete Linkage ise en uzak mesafeyi baz almaktadır. Average Linkage, noktaların birbirlerine göre olası her uzaklığını hesaplar ve bunların ortalamasını baz alırken, Centroid Linkage centroidi en yakın olan baz alınır. Bir de Ward’s method var. Bu method, veri hangi kümeye dahil olursa, varianceda ki iyileşme en iyi olacak, bunu dikkate alır.

Şekil8. Linkages [yazar tarafından Canva’da hazırlandı]

Clustering dışında, denetimsiz makine öğrenmesinde gruplandırma işlemi bazen de dimensionality reduction için yapılmaktadır. Burada ki amaçlardan biri veri setinde ki featurelardan ortak gruplar elde ederek, componentler oluşturmak ve böylece boyut azaltmaktır. Buna algoritmalardan en güzel örnek Principal Component Analysis’dır.

Principal Component Analysis (PCA): Bu algoritma, featureları noiselerinden arındırarak, verinin özünün ortaya çıkarılması için kullanılabilir. Aynı zamanda, çok sayıda featurea sahip büyük bir veri setinin, daha hızlı işlem görmesi, daha açıklanabilir bir yolla görselleştirilebilmesi ve featureların işlem görürken gizli tutulması gerektiğinde kullanılır. Örnek olarak, 20 featurea sahip bir veri seti, featureları kaybetmeden 3 component ile analiz edilebilir. Tabi ki, belirli bir oranda information kaybı söz konusudur.

Şekil9. Principal Component Analysis [yazar tarafından Canva’da hazırlandı]

PCA öncelikle datayı standardize eder. Dikkat edilmesi gereken şeylerden biri, sadece standart scale eder çünkü amaç orta noktayı bulmaktır. Tüm featureların componenti bunun üzerinden oluşturulur. Tam orta noktaya konulan eksen üzerinden covariance matrix oluşturulur ve maximum varianceı verecek vektör hesaplanır. Tüm variance kapsanacak şekilde, bu vektöre dik ikinci bir vektör hesaplanır. Bunlar Eigen vektör, yani componentlerdir.

Son olarak, genel bir hatırlatma ile yazımı bitirmek istiyorum. Unsupervised machine learning, bulduğu çıktıların insan aklıyla yorumlandırılmasına ihtiyaç duyar. Bulunan sonuçlardan elde edilen bulguların (inside) not alınarak, sonuçta toparlanması ve anlamlı bir çıktı elde edilmesi, analizi yapan kişiye bağlıdır.

References

[1] Geron, A. (2019). Handson Machine Learning with Scikitlearn, Keras & TensorFlow. o’Reiley Media. Inc, Sebatopol, CA.

[2] Murphy, K. P. (2022). Probabilistic machine learning: an introduction. MIT press.

--

--