🔄 Neyi Karşılaştıracağız?
Bu yazıda üç popüler denetimli öğrenme algoritmasını karşılaştırıyoruz:
- K-En Yakın Komşu (KNN)
- Destek Vektör Makineleri (SVM)
- Karar Ağacı (DT)
Aşağıdaki metrikler üzerinden değerlendirme yapılacak:
- Doğruluk (Accuracy)
- Makro Ortalama Metrikleri (Precision, Recall, F1)
- Ağırlıklı Ortalama Metrikleri (Precision, Recall, F1)
🔹 Veri Seti: Cam Tanımlama
Klasik Glass Identification dataset kullanılıyor:
- 214 Satır
- 10 Sütun: Kırılma indeksi + 8 kimyasal bileşen + Cam türü
import pandas as pd
csv = pd.read_csv("glass.csv")
print(csv.columns)
🔍 Özellikler
- RI (Kırılma İndeksi)
- Na, Mg, Al, Si, K, Ca, Ba, Fe (Kimyasal elementler)
- Type (Hedef sınıf)
🌐 Algoritmaları Öğrenmek İçin Kaynaklar
Teorik tanımlar yerine, her algoritma için görsel + makale kaynakları sunuyorum:
🔢 KNN:
🌳 Karar Ağacı:
⚖️ SVM:
📅 Proje Yapısı
.
├📄 glass.csv <- Veri seti
├🗋 Dt.py <- Decision Tree class'ı
├🗋 KNN.py <- KNN class'ı
├🗋 SVM.py <- SVM class'ı
├🗋 tools.py <- Görselleştirme araçları
├🗋 db.py <- Veri kontrol dosyası
└🗋 main.py <- Ana çalıştırıcı
📈 Veri Hazırlama
Her sınıf aşağıdaki ortak fonksiyonu içerir:
x_train, x_test, y_train, y_test = model.data_preprocces()
Adımlar:
- CSV'yi oku
- Son sütunu kaldırarak
X
verisini al - Son sütunu
y
(etiket) olarak ata - Veriyi %80 eğitim / %20 test olarak böl
Destekleyen dosyalar: Dt.py
, KNN.py
, SVM.py
💡 Model Entegrasyonu
Her sınıf, aşağıdaki seçeneklere sahip bir predict_report()
fonksiyonu içerir:
-
0
: Tahmin sonuçlarını döndürür -
1
: Doğruluğu döndürür -
2
: Confusion matrix döndürür -
3
: Sınıflandırma raporu (dict) döndürür
🌿 Görselleştirme Araçları
tools.py
modülü ile metrikleri matplotlib
kullanarak çizebilirsiniz:
Tools.Acc_table(report_list)
Tools.macro_prec(report_list)
Tools.macro_recall(report_list)
Tools.macro_f1(report_list)
Tools.wei_prec(report_list)
Tools.wei_recall(report_list)
Tools.wei_f1(report_list)
Bu fonksiyonlar metrikleri hem grafik olarak gösterir, hem de terminale yazar.
📊 Karşılaştırma Sonuçları
✔ Doğruluk
🌱 Makro Ortalama Precision
📊 Makro Ortalama Recall
📊 Makro Ortalama F1
📊 Ağırlıklı Ortalama Precision
📊 Ağırlıklı Ortalama Recall
📊 Ağırlıklı Ortalama F1
🔹 Sonuç
✅ Decision Tree, bu veri seti üzerinde hem KNN hem de SVM'den daha başarılı sonuçlar veriyor.
Bu, her zaman DT'nin en iyisi olduğu anlamına gelmez; ancak Cam Türü tespiti gibi bir senaryoda, herhangi bir hiperparametre ayarı yapmadan bile DT öne çıkıyor.
📆 Kendin Dene
Tüm kaynak koda buradan ulaşabilirsiniz:
- 🔗 GitHub: Machine_Learning_Alg_Comp
Kod yapısı modüler halindedir, bu sayede:
- Veri setini değiştirebilir
- Yeni modeller ekleyebilir
- Grafik ve analizleri genişletebilirsiniz
✨ Repoyu Yıldızla
Eğer bu proje size faydalı olduysa, GitHub'da yıldız vererek destek olabilirsiniz:
Okuduğunuz için teşekkür ederim! 🚀
Top comments (0)