Makine Öğrenmesinde Density-based spatial clustering of applications with noise (DBSCAN)…


Herkese merhaba! Bu yazımda sizlere Density-based spatial clustering of applications with noise (DBSCAN) Algoritması’ndan bahsedeceğim. Bu yazıdan önce diğer yazılarımı okumak için buraya tıklayabilirsiniz.

DBSCAN algoritması bir gözetimsiz makine öğrenmesi algoritmasıdır ve kullandığı yöntem ise kümelemedir. Peki elimizdeki verileri nasıl kümeler?

Öncelikle elimizde bir grup insanın boy ve kilolarını içeren bir veri seti olsun ve bunu iki boyutlu bir grafiğe dökelim.

Photo from: StatQuest with Josh Starmer

Amacımız bu verileri kümelemek ve şu görüntüyü elde etmek:

Photo from: StatQuest with Josh Starmer

Şimdi de bunun yapılış aşamalarını inceleyelim. Öncelikle herhangi bir noktadaki veriyi alalım ve işaretleyelim. Daha sonrasında etrafına yarıçapını kendimizin belirleyeceği bir daire çizelim.

Photo from: StatQuest with Josh Starmer

Bu dairenin kapsadığı ve değdiği verileri de düşünelim ve işaretlediğimiz noktanın 8 tane veriye komşu olduğunu görelim.

Photo from: StatQuest with Josh Starmer

Bunu her bir noktaya uygulayalım ve yoğunluğu en fazla olanlardan başlayacak şekilde farklı bir renk atayalım:

Photo from: StatQuest with Josh Starmer

Diğer taraftaki kırmızılıklar farklı bir kümeyi temsil ettikleri için onlara daha sonrasında farklı bir renk atayacağız, görüldüğü üzere bazı verilerimiz işaretlenmemiş olarak durmakta, bunun sebebi ya hiç komşuluğu olmaması ya da az sayıda komşuda olmasıdır.

Az sayıda komşuya sahip olanlar kümeleme işlemi bittikten sonra en yakın olan kümeye atanır fakat hiçbir komşuluğu olmayan veriler ise kümelenme yapılmadan kalır. Bu işlemlerin sonucunda elde edeceğimiz görüntü:

Photo from: StatQuest with Josh Starmer

Bu şekilde olmalıdır.

Şimdi ise Python üzerinden bir örnek yapalım.

Python Üzerinden Density-based spatial clustering of applications with noise (DBSCAN) Algoritması Örneği

Öncelikle veri setimizi oluşturalım ve gerekli kütüphaneler ekleyelim.

import numpy as np
from sklearn.cluster import DBSCAN

from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler

centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4,random_state=0)

Daha sonrasında DBSCAN algoritmasını veri setimize uygulayalım.

db = DBSCAN(eps=0.3, min_samples=10).fit(X)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_

Daha sonrasında oluşan sonucu bir grafiğe bastıralım ve inceleyelim.

import matplotlib.pyplot as plt

unique_labels = set(labels)
colors = [plt.cm.Spectral(each)
for each in np.linspace(0, 1, len(unique_labels))]
for k, col in zip(unique_labels, colors):
if k == -1:

col = [0, 0, 0, 1]

class_member_mask = (labels == k)

xy = X[class_member_mask & core_samples_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
markeredgecolor='k', markersize=14)

xy = X[class_member_mask & ~core_samples_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
markeredgecolor='k', markersize=6)

plt.show()

Uygulamanın Sonucu

Görüldüğü üzere elde edilen grafikte kümelenmeyen noktalar da dahil olmak üzere toplamda üç adet kümelenmiş veri görülmektedir.

Bu yazımız burada sonlanıyor. Bir sonraki yazıda görüşmek dileğiyle, sağlıcakla kalın!

Makine Öğrenmesindeki ve daha çeşitli konulardaki kodlamalara ulaşmak için buraya tıklayın!

Kaynaklar

Youtube Channel : StatQuest with Josh Starmer

  1. Aurélien Géron — Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow



Source link

Leave a Reply

Your email address will not be published.

Previous Article

Get intimate with Spitfire Audio’s pristine new virtual piano

Next Article

Lenco LS-410 review

Related Posts