KNN Görselleştirmesi Python ile: Temel Adımlar

Giriş

K-Nearest Neighbors (KNN), makine öğrenimi dünyasında heyecan verici ve oldukça popüler bir sınıflandırma algoritmasıdır. Basit yapısı ve kolay uygulanabilirliği sayesinde hem yeni başlayanlar hem de deneyimli geliştiriciler arasında sıkça tercih edilmektedir. Ancak bir modelin performansını anlamak ve geliştirmek için verileri doğru bir şekilde görselleştirmek kaçınılmazdır. Bu yazıda, Python kullanarak KNN algoritmasının nasıl görselleştirileceğini öğrenerek verilerinizi daha iyi anlamanızı sağlamak istiyoruz.

KNN, temel olarak, bir verinin hangi sınıfa ait olduğunu belirlerken en yakın komşularının etki düzeyini kullanır. Modelin başarısını artırmak için veriyi görselleştirerek, hangi sınıfın daha baskın olduğunu, sınırları ve potansiyel olarak sorunlu noktaları analiz etmek önemlidir. Görselleştirme işlemi, veri setinizdeki trendlere ve desenlere derinlemesine dalmanıza olanak tanır.

Bu yazıda, KNN algoritmasının temel bir uygulaması ile başlayacak ve ardından bu modeli Python ile nasıl görselleştirebileceğinize dair adım adım rehber sunacağız. Amacımız, görselleştirme ile modelinizin performansını artırmanız ve geliştirme süreçlerinizi desteklemenizdir.

KNN Modelinin Kurulumu

Python’da KNN modelini oluşturmak için önce gerekli kütüphaneleri yüklememiz gerekiyor. ‘scikit-learn’, ‘numpy’ ve ‘matplotlib’ en yaygın olarak kullanılan kütüphanelerdendir. Öncelikle, verileri oluşturmak için ‘make_classification’ fonksiyonunu kullanarak rastgele bir veri seti oluşturabiliriz.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

Bu kod parçasında önce gerekli kütüphaneler içe aktarılıyor. Ardından, ‘make_classification’ fonksiyonu, sınıflandırma için gerekli olan eğitme verilerini oluşturmada bize yardımcı oluyor. Bu aşamada, veri setinin boyutunu ve sınıf sayısını belirleyebiliriz. Örneğin, 2 sınıflı ve 100 örnekten oluşan basit bir veri seti oluşturalım:

X, y = make_classification(n_samples=100, n_features=2, n_classes=2, n_clusters_per_class=1, n_redundant=0, random_state=42)

Bu kodda ‘n_samples’ ile toplam örnek sayısını, ‘n_features’ ile özellik sayısını, ‘n_classes’ ile sınıf sayısını belirlemiş olduk. KNN modelini kurmak için verimizi eğitim ve test setlerine ayırmalıyız. Bunun için ‘train_test_split’ fonksiyonunu kullanacağız:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Bu aşamada, eğitim setimiz toplam veri setinin %70’ini, test setimiz ise %30’unu alacaktır.

KNN Modelinin Eğitimi

KNN modelini kurduktan sonra, bu modeli eğitmek için ‘KNeighborsClassifier’ sınıfını kullanabiliriz. Bu sınıf, komşu sayısını belirlememizi sağlayan bir parametre alır. Burada 5 komşu kullanarak bir model yaratacağız:

knn_classifier = KNeighborsClassifier(n_neighbors=5)
knn_classifier.fit(X_train, y_train)

Yukarıdaki kodda, modelimizi ‘fit’ yöntemiyle eğitim verilerimizle eğitiyoruz. Model eğitildikten sonra, test verilerimiz üzerinde tahmin yapma sürecine geçebiliriz. ‘predict’ yöntemi ile test verileri üzerinde tahmin yapalım:

y_pred = knn_classifier.predict(X_test)

Artık modelin çalışır durumda olduğunu ve tahminler ürettiğini biliyoruz. Ancak, elde edilen sonuçları analiz etmek ve modelimizin ne kadar iyi performans sergilediğini değerlendirmek için görselleştirmeye geçelim.

KNN Sonuçlarının Görselleştirilmesi

KNN modelimizin sonuçlarını görselleştirmek için ‘matplotlib’ kütüphanesini kullanacağız. Görselleştirmeye başlamadan önce, eğitim ve test verilerimizin yanı sıra tahmin sonuçlarını da görselde yer almasını sağlamak bizim için önemli. Bu amaçla, eğitim ve test verilerini farklı renklerle göstererek, modelin nasıl bir performans gösterdiğini görselleştirebiliriz.

plt.figure(figsize=(10, 6))
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, marker='o', label='Eğitim Verisi', alpha=0.5)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, marker='x', label='Gerçek Test Verisi', alpha=0.7)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, marker='*', label='Tahmin Edilen Test Verisi')
plt.title('KNN Sonuçlarının Görselleştirilmesi')
plt.xlabel('Özellik 1')
plt.ylabel('Özellik 2')
plt.legend()
plt.show()

Bu kodda, farklı veri gruplarını aynı çizimde göstererek tahmin edilen sınıfları ve gerçek sınıfları karşılaştırmış olduk. ‘scatter’ fonksiyonu ile bildiğimiz eğitim test verilerinin yanı sıra tahmin edilen verileri de işaret etmeyi başardık. Görselin başlığı, eksen tanımları ve efsane ile birlikte daha anlaşılır hale getirdik.

Ayrıca 2D alanımızda, KNN algoritmasının nasıl çalıştığını gözlemleme fırsatı buluyoruz. Test verilerinin gerçek sınıfları ve tahmin edilen sınıfları arasındaki farkları görsel olarak analiz ederek, modelimizin ne kadar doğru çalıştığını değerlendirebiliriz.

Sonuç ve Çıkarımlar

KNN algoritmasını sihirli bir şekilde hayata geçirmek ve ardından sonuçlarını Python ile görselleştirmek, veri bilimi ve makine öğrenimiyle ilgili deneyim kazanmada oldukça faydalıdır. Modelin doğruluğunu analiz etmek için kullanılan grafikler, veri setinin yapısının daha iyi anlaşılmasına katkı sağlar. Geliştiricilerin bu tür alanlarda uygulama yapması ve görselleştirmeleri çoğaltması, öğrenmeyi ve uygulamayı pekiştirecektir.

Aynı zamanda, görselleştirme süreçlerinin geliştirilmesi, model düzeltme ve hiper parametre ayarlamaları konusunda da önemli ipuçları sunabilir. Görselleştirme ile birlikte model gündemini şekillendirmek, veri bilimi topluluğuyla daha etkili bir iletişim sağlamanıza yardımcı olacaktır.

Python ile KNN modelinizin görselleştirilmesi için sunduğumuz bu rehberden yola çıkarak, farklı veri kümeleri ve senaryolar ile deneyimleyebilir ve gelişime açık alanlar bulabilirsiniz. Kendi projelerinizde uygulamak ve deneyimlemek için cesaret edebilirseniz, KNN algoritmasını ve diğer makine öğrenimi yöntemlerini ilerletmeye başlayabilirsiniz.

Scroll to Top