KNN Algoritması ile Python’da GitHub Projesi Oluşturma

KNN Nedir?

KNN (K-Nearest Neighbors), gözetimli öğrenme metodlarından biridir ve sınıflandırma ile regresyon problemlerinde yaygın olarak kullanılır. KNN algoritması, bir veri noktasının hangi sınıfa ait olduğunu belirlemek için en yakın komşularını analiz eder. Örneğin, bir nesnenin renginden, boyutundan ve diğer özelliklerinden yola çıkarak, onu tahmin edilen sınıfa yerleştirme işlevi görür. KNN’nin temel mantığı, benzer özelliklere sahip nesnelerin, daha fazla benzerlik gösterdiği sınıflara ait olması gerektiği üzerine kuruludur. Bu algoritmanın en büyük avantajı, uygulama kolaylığı ve veri setleri üzerinde iyi performans göstermesidir.

KNN algoritmasını kullanabilmek için öncelikle veriyi uygun bir formatta hazırlamak gerekmektedir. Bu aşamada, sklearn kütüphanesi çokça işimize yarar. Python’da, KNN algoritmasını uygulamak için gerekli olan temel adımları takip edebilirsiniz. Ancak unutulmaması gereken en önemli nokta, verinin doğru bir şekilde etiketlenmiş olmasıdır. Aksi takdirde, algoritmanın performansı düşebilir ve istenilen sonuçları veremeyebilir.

Genellikle, KNN algoritması ile sınıflandırma problemleri üzerinde çalışılır. Doğru k komşu sayısı (k değerlerinin belirlenmesi) bulunduktan sonra, algoritmanın performansı özellikle yüksek seviyelere ulaşabilir. Veri setine uygun şekilde ayarlanan k sayısı ile, modelin tahmin gücü artırılabilirken, aşırı uyum (overfitting) riskinin de azalması sağlanır.

GitHub Projesine KNN Ekleme

Artık KNN algoritmasının temellerini öğrendiğimize göre, bunu GitHub’da geliştireceğimiz bir projeye entegre etmeye başlayabiliriz. İlk adım olarak GitHub’da bir depo oluşturmalıyız. Bu depoda, Python kodlarımızı yazacağımız dosyaları barındıracağız. Bu süreç, bir projeyi yapılandırmayı ve versiyon kontrolünü öğrenmek için mükemmel bir fırsattır. Başlangıç olarak, ‘KNN_Python_Project’ adında bir depo oluşturabilirsiniz.

Depo oluşturdunuz ve projenizi başlatmak için uygun bir yer seçtiniz, artık kod yazma aşamasına geçebiliriz. Projemizin iç yapısını oluşturmak için Python ve sklearn kütüphanesini kullanarak KNN algoritmasını burada uygulayacağız. Öncelikle gerekli kütüphaneleri yüklememiz gerekiyor:

pip install numpy pandas scikit-learn

Yüklemelerin ardından veri setimizi Python ortamımıza aktaralım. Örneğin, iris veri seti ile başlayabiliriz. Ciencia veri setimizde bitki türleri ile ilgili özellikler bulunmaktadır. Bu veri seti, KNN algoritması ile sınıflandırma sorunlarına iyi bir örnektir. Kütüphanelerimizi kullandıktan sonra, pandas ile veri setimizi okuyalım:

import pandas as pd
iris = pd.read_csv('iris.csv')

Veri Setinin Hazırlanması

İlk adım olarak, veri setimizdeki etiketlenmiş verileri, modelimiz ile çalışabilmemiz için düzenlememiz gerekiyor. Veri hazırlama sürecinde, etiketler ve özellikleri ayırarak eğitim ve test setleri oluşturmalıyız. Genellikle %70 eğitim, %30 test seti oranı kullanılır. KNN algoritması için önemli olan bir diğer faktör ise veri ön işleme aşamasıdır. Özellikle, sayısal ve kategorik verilerin uygun şekilde dönüştürülmesi, algoritmanın doğruluğunu artıracaktır.

Bu aşamada, sklearn’dan ‘train_test_split’ fonksiyonunu kullanarak eğitim ve test setlerimizi ayırabiliriz. Kod yapımız şu şekilde olabilir:

from sklearn.model_selection import train_test_split
X = iris.drop(['species'], axis=1)  # Özellikler
Y = iris['species']  # Etiketler
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=42)

Veri setimizi düzgün bir şekilde hazırladıktan sonra artık KNN modelimizi oluşturmaya hazırsınız. Bu noktada sklearn kütüphanesinin KNeighborsClassifier sınıfını kullanıyoruz. Modeli oluşturup, eğitim seti üzerinde eğitebiliriz:

from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, Y_train)

Model Test Etme ve Sonuçları Değerlendirme

Artık modelimizi eğitim setinde eğittik. Bir sonraki adım, modelimizin test seti ile performansını değerlendirmektir. Modelimizin ne kadar doğru tahmin yaptığını öğrenmek için, test setimizi kullanarak tahminler oluşturalım:

y_pred = model.predict(X_test)

Modelin başarısını, doğruluk skoru ile ölçebiliriz. sklearn kütüphanesi, bu iş için çok pratik bir yöntem sunmaktadır. Aşağıdaki kod ile doğruluğu hesaplayabiliriz:

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(Y_test, y_pred)
print(f'Doğruluk Skoru: {accuracy}')

Sonuçları alarak modelimizin ne kadar iyi çalıştığını görebiliriz. Basit bir veri seti üzerinde uyguladığımız KNN algoritması ile, yeteri kadar eğitim aldığımızda, oldukça iyi performanslar alabiliriz. Ancak unutmamalıyız ki, daha karmaşık veri setlerinde ve uygulamalarda modelimizi geliştirmek için farklı teknikler veya parametre ayarları deneme ihtiyacımız olacaktır.

Projemizi GitHub’a Yükleme

Son olarak, geliştirdiğimiz projeyi GitHub’a yüklemek için yerel depo ve uzaktaki GitHub deposu arasında senkronizasyon sağlamamız gerekiyor. Git kullanarak aşağıdaki adımları izleyelim:

git init
.git add .
git commit -m 'İlk versiyon'
git remote add origin 
git push -u origin master

Bu adımlarla birlikte, proje dosyalarınızı GitHub üzerindeki deponuza yüklemiş oldunuz. Bunu tamamladıktan sonra, gelişim sürecinizin ne kadar ilerlediğini ve motivasyonunuzu artıracaktır. GitHub’da projeler oluşturmak, aynı zamanda başkalarının projelerine katkıda bulunmak da büyük bir öğrenim fırsatıdır.

KNN ile ilgili yaptığımız bu proje, Python ile makine öğrenimi temelini atmak için ideal bir başlangıçtır. Daha sonraki çalışmalarda, veri temizleme, parametre ayarları, model değerlendirme yöntemleri ve daha karmaşık veri setleri ile çalışarak bilgi birikimimizi genişletebiliriz.

Scroll to Top