KNN ve DBSCAN Algoritmalarını Scikit-learn ile Kullanma

Bilgisayar Mühendisliği Notları
By -
0

 

 

Scikit-learn, hem KNN hem de DBSCAN algoritmalarını içeren popüler bir makine öğrenmesi kütüphanesidir. Bu algoritmalar, scikit-learn'ün neighbors ve cluster modülleri altında bulunur. Aşağıda her iki algoritmanın scikit-learn'de nasıl kullanıldığına dair örnekler ekledim.

 

1. KNN (K-Nearest Neighbors) - Sınıflandırma

 

KNN, scikit-learn'de KNeighborsClassifier sınıfı ile kullanılır. Aşağıda basit bir sınıflandırma örneği bulabilirsiniz: 

from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score

# Iris veri setini yükle
data = load_iris()
X = data.data
y = data.target

# Veriyi eğitim ve test setlerine ayır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# KNN modelini oluştur ve eğit
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Tahmin yap ve doğruluğu hesapla
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Doğruluk: {accuracy * 100:.2f}%")


2. DBSCAN - Kümeleme


DBSCAN, scikit-learn'de DBSCAN sınıfı ile kullanılır. Aşağıda basit bir kümeleme örneği yer almaktadır:


from sklearn.datasets import make_blobs
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt

# Veriyi oluştur
X, _ = make_blobs(n_samples=500, centers=3, cluster_std=0.60, random_state=0)

# DBSCAN modelini oluştur
dbscan = DBSCAN(eps=0.3, min_samples=10)
y_dbscan = dbscan.fit_predict(X)

# Kümeleme sonuçlarını görselleştir
plt.scatter(X[:, 0], X[:, 1], c=y_dbscan, cmap='viridis')
plt.title("DBSCAN Kümeleme Sonuçları")
plt.show()



Scikit-learn'deki Temel Parametreler:


KNN Parametreleri:
n_neighbors: Komşu sayısı (K).
metric: Mesafe ölçütü (örneğin, 'euclidean', 'manhattan').


DBSCAN Parametreleri:
eps: Bir noktanın komşuları ile olan maksimum mesafe.
min_samples: Küme oluşturulabilmesi için gereken minimum nokta sayısı.


Avantajlar ve Dezavantajlar
KNN:
Avantaj: Basit, esnek ve küçük veri setleri için hızlıdır.
Dezavantaj: Büyük veri setlerinde, özellikle yüksek boyutlu verilerde zaman karmaşıklığı yüksek olabilir.


DBSCAN:
Avantaj: Gürültüye duyarlıdır ve karmaşık şekilli kümeleri tanıyabilir.
Dezavantaj: Parametre ayarları, özellikle eps ve min_samples doğru seçilmediğinde kötü sonuçlar verebilir.
Bu şekilde, scikit-learn'deki KNN ve DBSCAN algoritmalarını kullanarak verinizi sınıflandırabilir veya kümeleyebilirsiniz.











Yorum Gönder

0Yorumlar

Yorum Gönder (0)