Sayfalar

Çarşamba, Temmuz 04, 2018

EKG Kalp Atışı Sınıflandırması 4

Gradient Boosting Kütüphaneleri ile Sınıflandırma

Boosting ve gradient boosting genel algoritmalar. Yaygın olarak bilinen hali karar ağaçlarıyla çalışanı. Çok kaba bir özet geçersek. Zayıf sınıflandırıcılar olan küçük karar ağaçlarının birleştirilmesiyle  oluşturulmuş güçlü bir sınıflandırıcı oluşturulmaya çalışılıyor.



Gradient Boost 'un sklearnin içinde de var. Fakat biz harici kütüphaneler olana XGBoost, Light GBM ve CatBoost 'u burada kulanacağız

XGBoost :  İlk çıkan ve popüler olan kütüphane. Özellikle Kaggle yarışmalarında çok kullanılıyordu.
Tantım yazısı ;
XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and portable. It implements machine learning algorithms under the Gradient Boosting framework. XGBoost provides a parallel tree boosting (also known as GBDT, GBM) that solve many data science problems in a fast and accurate way. The same code runs on major distributed environment (Hadoop, SGE, MPI) and can solve problems beyond billions of examples.

LightGBM : Microsoft 'un geliştirdiği açık kaynak kodlu bir kütüphane, Epey güçlü ve yaygınlaşmaya başladı.
Tanıtım yazısı;
 A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

CatBoost : Yandex'in geliştirdiği açık kaynak kodlu bir kütüphane, Nispeten çok daha az biliniyor ama en az rakipleri kadar güçlü. Yaygınlaşmaya çalışıyor.
Tanıtım yazısı;
 CatBoost is an open-source gradient boosting on decision trees library with categorical features support out of the box for Python, R

 Konunun detayları hakkında bir kaç bağlantı verip geçiyoruz.

 Kullanımları 

 Sklearn tipi bir kullanımları var.  Sınıflandırıcı nesnenizi oluşturuyorsunuz. "fit" fonksiyonu ile eğitim , "predict" fonskisyonu ile tahmin yapıyorsunuz.

XGboost için   :  "XGBClassifier" sınıfı kullanılıyor


Sonuç :
             precision    recall  f1-score   support

          N      0.981     0.999     0.989     18118
          S      0.966     0.667     0.789       556
          V      0.977     0.921     0.948      1448
          F      0.894     0.728     0.803       162
          Q      0.994     0.965     0.979      1608

avg / total      0.980     0.981     0.980     21892


LightGBM  için : "LGBMClassifier" sınıfı kullanılıyor


Sonuç:
              precision    recall  f1-score   support

          N      0.982     0.999     0.990     18118
          S      0.974     0.683     0.803       556
          V      0.980     0.927     0.953      1448
          F      0.876     0.741     0.803       162
          Q      0.995     0.973     0.984      1608

avg / total      0.982     0.982     0.981     21892

CatBoost için : "CatBoostClassifier" sınıfı kullanılıyor.



Sonuç :
              precision    recall  f1-score   support

          N      0.982     0.997     0.989     18118
          S      0.931     0.680     0.786       556
          V      0.973     0.918     0.945      1448
          F      0.848     0.722     0.780       162
          Q      0.987     0.972     0.980      1608

avg / total      0.979     0.980     0.979     21892

Sonuçlar çok büyük farklılık göstermiyor.
Boosting kütüphaneleri ile yaptığımız denemelerin sonuçları böyl. Bir sonraki yazımızda kısmetse derin öğrenme ile aynı probleme çözüm bulmaya çalışacağız. Her türlü görüş ve önerilerinizi bekleriz.

1 yorum:

mkysoft dedi ki...

Bu güzel derleme ve örnek için teşekkürler.