Unsupervised Learning Örnekleri ile Python Uygulamaları

Giriş

Makine öğrenimi, verilerden öğrenme ve içgörüler elde etme yeteneği olan bir alan olarak giderek önem kazanıyor. Bu alanda iki ana öğrenme türü bulunuyor: denetimli ve denetimsiz öğrenme. Denetimli öğrenme, etiketli verilerle çalışırken, denetimsiz öğrenme, etiketlenmemiş veriler üzerinde çalışarak veri içinde gizli yapıları keşfetmeyi amaçlar. Bu yazımızda, denetimsiz öğrenmenin ne olduğunu, önemini ve Python ile nasıl uygulanabileceğine dair örnekler sunacağız.

Denetimsiz Öğrenmenin Temelleri

Denetimsiz öğrenmek, verilerin gruplandırılması, sıkıştırılması veya veri içinde gizli desenlerin keşfi gibi işlemleri içerir. Bu tür bir öğrenme, veri kümesindeki örnekler arasında benzerlikler ve farklılıklar bulmayı hedefler. Özellikle büyük veri kümelerinde, verileri anlamak ve yapısal özelliklerini ortaya çıkarmak için denetimsiz öğrenme teknikleri sıklıkla kullanılır.

Örneğin, müşteri segmentasyonu, denetimsiz öğrenmenin bir uygulamasıdır. Müşteri verileri üzerinde yapılan bir analiz sonucunda, benzer alışveriş davranışlarına sahip müşterilerin belirlenmesi, işletmelerin pazarlama stratejilerini daha etkili bir şekilde belirlemelerine yardımcı olabilir. Burada amaç, benzer müşteri gruplarını belirleyerek onlara özel hizmetler sunmaktır.

Denetimsiz öğrenmenin popüler yöntemleri arasında kümeleme ve boyut azaltma teknikleri yer alır. Kümeleme, verileri, benzer özelliklere göre gruplara ayırırken, boyut azaltma, veri setinde yer alan değişken sayısını azaltarak daha anlamlı ve yönetilebilir veri setleri oluşturur.

Kümeleme Yöntemleri

Kümeleme, denetimsiz öğrenmenin temel uygulamalarından biridir. Verileri gruplara ayırarak, her bir grubun ortak özelliklerini keşfetmemizi sağlar. Python’da, kümeleme yöntemleri arasında K-means, Hiyerarşik Kümeleme ve DBSCAN gibi algoritmalar yaygın olarak kullanılmaktadır.

Örneğin, K-means algoritması, verileri k adet küme oluşturacak şekilde ayrıştırmak için iteratif bir yaklaşım kullanır. Başlangıçta rastgele belirlenen k merkezinden yola çıkarak, her bir veri noktası en yakın merkeze atanır. Daha sonra, her küme için yeni bir merkez hesaplanarak bu işlem tekrarlanır. Bu süreç, merkezi güncellemeleri belirli bir eşiğe ulaşıncaya kadar devam eder.

Aşağıda, Python kullanarak K-means algoritmasını uygulayan basit bir örnek paylaşacağız:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# Örnek veri oluşturma
X = np.random.rand(100, 2)

# K-means clustering uygulama
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

# Sonuçları görselleştirme
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red')
plt.title('K-means Kümeleme Örneği')
plt.xlabel('Özellik 1')
plt.ylabel('Özellik 2')
plt.show()

Bu örnekte, rastgele oluşturulan 100 veri noktası üzerinde K-means algoritması uygulanmış ve elde edilen kümeler görselleştirilmiştir. Kümelerin merkezleri kırmızı noktalarla gösterilmiştir.

Hiyerarşik Kümeleme

Hiyerarşik kümeleme, verileri bir ağaç yapısında (dendrogram) gruplamak üzere kullanılan başka bir denetimsiz öğrenme yöntemidir. Bu yöntem, veriler arasında hiyerarşiler oluşturarak benzerliklerin daha ayrıntılı bir analizine olanak tanır. Hiyerarşik kümeleme, iki temel yaklaşım olan agglomeratif (birleştirici) ve divisive (bölme) yöntemleriyle uygulanabilir.

Python’da hiyerarşik kümeleme uygulamak için scipy kütüphanesi sıklıkla kullanılır. Kullanıcılar, kendilerine uygun olabilecek küme sayısını seçip, daha sonrasında verilerini bu kümelere ayırabilirler. Örnek bir uygulama aşağıdaki gibidir:

import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage

# Örnek veri oluşturma
np.random.seed(42)
X = np.random.rand(10, 2)

# Hiyerarşik kümeleme uygulama
linked = linkage(X, 'ward')

# Dendrogram oluşturma
plt.figure(figsize=(10, 7))
dendrogram(linked)
plt.title('Hiyerarşik Kümeleme Dendrogramı')
plt.xlabel('Veri Noktaları')
plt.ylabel('Mesafe')
plt.show()

Bu örnekte, bağlantı matrisi kullanılarak elde edilen dendrogram, veri noktalarının nasıl gruplandığını ve bunlar arasındaki mesafeleri görselleştirir.

Boyut Azaltma Yöntemleri

Denetimsiz öğrenmenin bir diğer önemli uygulaması boyut azaltma yöntemleridir. Boyut azaltma, yüksek boyutlu veri setlerini daha düşük boyutlu alana projekte ederek, verilerin daha anlamlı ve analiz edilebilir hale gelmesini sağlar. Bu amaçla, en yaygın kullanılan tekniklerden biri Principal Component Analysis (PCA) yani Ana Bileşenler Analizi’dir.

PCA, verilerin varyansını maksimize eden yeni boyutlar (bileşenler) oluşturur. Bu bileşenler, orijinal verilerin doğrusal kombinasyonlarıdır. Özellikle çok yüksek boyutlu verilere sahip olan makine öğrenimi projelerinde PCA uygulamaları oldukça yaygındır.

Aşağıda, PCA kullanımına dair basit bir örnek verilmektedir:

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# Iris veri setini yükleme
iris = load_iris()
X = iris.data

# PCA uygulama
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

# Sonuçları görselleştirme
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=iris.target, cmap='viridis')
plt.title('PCA ile Boyut Azaltma')
plt.xlabel('Bileşen 1')
plt.ylabel('Bileşen 2')
plt.show()

Bu örnekte, Iris veri seti üzerinde PCA uygulanarak veriler iki boyutlu alana indirilmiş ve görselleştirilmiştir. Her bir renk, veri setindeki farklı sınıflara ait örnekleri temsil etmektedir.

Sonuç

Denetimsiz öğrenme, veri analizi ve modelleme süreçlerinde güçlü bir araçtır. Veri kümesindeki yapıları ve örüntüleri anlamak için denetimsiz öğrenme teknikleri büyük önem taşır. Python, bu tür uygulamaları gerçekleştirmek için geniş bir kütüphane ve araç seti sunar.

Kümeleme ve boyut azaltma gibi teknikleri kullanarak, verinin derinliklerine inebilir ve önemli içgörüler elde edebilirsiniz. Ayrıca, denetimsiz öğrenme ile elde edilen bilgiler, denetimli öğrenme algoritmalarının daha etkili hale getirilmesine de yardımcı olabilir.

Sonuç olarak, Python ile denetimsiz öğrenmeyi kullanarak kendi projelerinizi geliştirebilir, veri analizi süreçlerinizi daha verimli hale getirebilirsiniz. Gelecek yazılarımızda, denetimsiz öğrenmeye dair daha farklı teknikleri ve uygulamaları ele alacağız.

Scroll to Top