Sayfalar

Scikit-Learn etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Scikit-Learn etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Pazar, Temmuz 08, 2018

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

Sonuçların Analizi ;


Kalp atışı sinyalinin sınıflandırılması amacıyla bu yazımıza kadar 9 metodu kullandık. Yukarıda gördüğünüz grafiği bu sonuçları kullanarak oluşturduk.
Tabloyu da görelim sayılar daha net gözüksün


Tablodan görüldüğü üzere, Derin öğrenme için uyguladığımız 3 ağ tipinden, Conv1d ve LSTM sırayla ilk iki sıraya yerleştiler.  İlk sıradaki Evrişimli yapay sinir ağı, her 3 ölçüt e  - precision,     recall, f1-score - görede  en iyi sonuca ulaştı. Derin öğrenmenin  bu iki modelini Boosting metodları takip ediyor. Sırayla Light GBM, Xgboost, CatBoost , üçüncü , dördüncü ve beşinciliğe yerleşiyorlar. Hemde pratik anlamda ulaştıkları sonuçlar bir birlerinden pek farklı değil. Üstelik 'F' tipi sinyal için derin öğrenme metodlarından daha iyi bir sonuca ulaşmış. Sinyal sınıflarının f1-skor değerlerine göre grafiğine bakalım















Bu bize gösteriyorki, illa derin öğrenme gibi bir müşkülata girmeye gerek yok. Boosting metodlarıda pek güzel işimizi görebilir.

Son olarak En başarılı iki metod olan Conv1D ve LSTM sonuçlarını birleştirince - Ensemble -, bir gıdım daha iyileşme oluyor.

 Classification Report
             precision    recall  f1-score   support

          N      0.990     0.997     0.993     18118
          S      0.933     0.804     0.864       556
          V      0.973     0.954     0.963      1448
          F      0.856     0.735     0.791       162
          Q      0.997     0.987     0.992      1608

avg / total      0.987     0.987     0.987     21892
Elbette bunlar bizim ulaşabildiğimiz sonuçlar.  3. yazımızda geçen metodolojiyi çok daha sistematik ve derinlemesine uygulanırsa sonuçların bir nebze daha iyi olabileceğini düşünüyorum. İlk yazılarımızda bahsetmiştik veri kümemiz sınıf  bazında dengesiz. Buna dair sınıf bazında ağırlıklar yada özel hata fonksiyonları - loss - denenebilir.

Karşılaştırma ;


Veri setini hazırlayanların, yazdığı makalede paylaşılan , sonuç tablosu şöyle ;

Görüldüğü gibi , makaleye göre daha başarılı  sonuçlara ulaşmışız.  Tabloda geçen diğer çalışmaların aynı veri seti üzerinde yapılmadığından karşılaştırmanın çok sağlıklı olmayacağını düşünüyorum.

Son olarak "müşteri her zaman haklıdır" düsturunca.

"Bir çalışma yaptık , Doktorlardan daha iyi kalp rahatsızlığını tespit ediyor !!! "  
mealinde gaflet içinde bir cümle ASLA kurmuyoruz.
Doğrusunun, çalışmanın uygulanabilirliğini, konunun UZMANLARIYLA - yani doktorlarla - görüşerek yapılması gerektiğini söylüyoruz.

Bunca Yazıyı sabırla okuduysanız tebrik ediyoruz. Her türlü eleştiri , görüş ve önerilerinizi bekleriz.


Salı, Temmuz 03, 2018

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

Scikit-Learn ile Sınıflandırma

Scikit-Learn  Python 'un standart Yapay Öğrenme kütüphanesidir.  Kalp atışı sınıflandırma problemi için bu kütüphane ile başlayacağız. Bu kütüphane devasa bir kütüphane aklınıza gelen hemen her tür metod için sınıflar, fonksiyonlar eklenmiştir. Pek çok sınıflandırıcıda hali hazırda emrinize amade beklemedektedir


Yukardaki resim sınıflandırıcı metdolarını karşılaştırmak için yazılmış örnek kodun çıktısıdır.

Sınıflandırıcı için alt sınırımızdan bahsetmiştik geçenki yazımızda. Bütün örneklere normal dersek %82 başarılı çıkıyordu. Önce onu deneyelim


Bu basit ve sade tahmin sistemi bizim alt çizgimiz bu yöntemle ulaştığımız sonuçlardan daha iyi sonuca ulaşamayan, sınıflandırcı metodlarını bu problem için kullanmanın anlamı yok.

Verimiz hazır, sklearn 'ün bir sürü sınıflandırıcısı da elimizin altında. Bundan sonra izleyeceğimiz metodloji şöyle
  1. Sınıflandırıcı Nesnesini oluştur.
  2. Eğitim verisi ile modeli eğit - fit fonksiyonu -
  3. Eğitilmiş model ile doğrulama  verisinden tahmin yaptır - predict -
  4. Tahmin edilmiş değerlerle gerçek değerleri karşılaştır - classification_report fonksiyonu -
  5. Karşılaştırılımış sonuçlar yeterince iyi ise 8. maddeye git
  6. Karşılaştırılımış sonuçları daha iyi hale getirmesni umduğumuz parametre değişikliklerini yap
  7. Yeni parametrelerle 1. maddeye dön
  8. Eğitilmiş model ile test verisinden tahmin yaptır - predict -
  9.  Tahmin edilmiş değerlerle gerçek değerleri karşılaştır - classification_report fonksiyonu -
bu admlardan en muğlak olan 6. olan  daha iyi sonuca ulaştıracak parametre değişikliği.  Bunu yapabilmek için ilk etapta Sınıflandırıcı nasıl çalışır , parametreler ne anlama gelir, bilgi sahibi olmamız lazım. Bunlara ek olarak hangi tür verilerde hangi tip değişiklikler olumlu etkiliyor  gibi tecrübe de gerekiyor. İlki İçin okuyup araştıracaksınız. İkincisi için tecrübe edeceksiniz.

Başlayalım denemelere 3 tip sınıflandırıcı deneyeceğiz.

KNN -  K-En Yakın Komşuluk

 Genellikle KNN olan kısaltılmış adıyla bilinir. KNN genel anlamda hem sınıflandırma hem de regresyon için kullanılabilir. Sklearn de sınıflandırıcı olarak kullanmak için "KNeighborsClassifier" kullanılır. Metodda veriler vektörel olarak ifade edilir. Tahmin işlemi için verilen vektör K adet en yakın komşusunun durumuna göre cevaplanır. Eğer Sınıflandırma problemi ise, K adet komşunun sınıflarının oy çokluğudur. Eğer regresyon ise En Yakın K adet komşusunun değerlerinin ortalamasıdır.
Mesela aşağıdaki grafikte rengi belli olmayan noktanın sınıfı, kendisine en yakın K = 3 komşusunun
rengine göre seçilir.


2 komşusu kırmızı, bir komşusu mavi, sonuç kırmızıdır.


SVM – Destekleyici Vektör Makinesi

Support Vector Machines; Destekçi Vektör Makinesi diye tercüme edilse de Türkçe kaynakların pek çoğunda kısaltma ismiyle SVM olarak geçer. Çekirdek -kernel- fonksiyonu ile veriler hiper uzaya aktarılır, guruplar arası hiper düzlemler hesaplanır. Bu düzleme en yakın veriler - ki destek vektörleri denir - kullanılarak, düzlem guruplar arası en optimum konuma yerleştirilir.
Sınıflandırma  aşamasında da veri hiper uzaya aktarılır ve eğitim verisiyle oluşturulmuş hiper düzleme olan konumuna göre değerlendirilir.






Grafikle kafanızda canlandırmaya çalışalım. Kırmızı ve mavi iki ayrı sınıfa ait veriler ve uzayda şekildeki gibi görünsün. Bu iki gurubu ayrıştıran bir doğru bulalım. Fakat şöyle bir durum var; bu iki gurubu ayrıştıran sonsuz sayıda doğru bulunabilir. Bir kaç tanesini kesik çizgili olarak çizdik. SVM eğitimi ile doğrumuzu guruplar arası en optimum yere taşıyoruz. Grafikteki yeşil çizgi gibi. Doğru bir kez tespit edildikten sonra kullanımı kolaydır. Bulduğumuz doğrunun solunda kalanlar mavi, sağında kalanlar kırmızıdır.
Sklearn de  sınıflandırıcı olarak kullanmak için  "SVC" kullanılır.

Yapay Sinir Ağı

Klasik çok katmanlı Yapay Sinir Ağı. Sklearn de "Multi-layer Perceptron" diye geçiyor. Hem regresyon hem sınıflandırma için kullanılabiliyor. Sınıflandırma problemi için "MLPClassifier" kullanılıyor. Metodun çalışma sistemi için açıklama yazmayacağım, Çünkü eski yazılarımızda çok fazla işlediğimiz bir konu. Biraz zahmet olacak ama kusura bakmayın...

Sonuçlar

KNN

             precision    recall  f1-score   support

          N      0.979     0.995     0.987     18118
          S      0.882     0.671     0.762       556
          V      0.946     0.906     0.926      1448
          F      0.791     0.679     0.731       162
          Q      0.994     0.954     0.973      1608

avg / total      0.974     0.975     0.974     21892

SVM

             precision    recall  f1-score   support

          N      0.961     1.000     0.980     18118
          S      0.984     0.570     0.722       556
          V      0.987     0.772     0.866      1448
          F      0.854     0.648     0.737       162
          Q      0.999     0.917     0.957      1608

avg / total      0.966     0.965     0.962     21892

YSA

             precision    recall  f1-score   support

          N      0.980     0.995     0.987     18118
          S      0.886     0.631     0.737       556
          V      0.966     0.901     0.932      1448
          F      0.815     0.654     0.726       162
          Q      0.979     0.979     0.979      1608

avg / total      0.975     0.976     0.975     21892

Sklearn ile yaptığımız denemelerin sonuçları böyle bundan sonraki  aynı konulu yazılarımızda, Başka kütüphaneler  ve metodlarla denemeler yapmaya çalışacağız. Her türlü görüş ve önerilerinizi bekleriz.

Pazar, Temmuz 01, 2018

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

Veri kümesini okuma

Indirdiğimiz sıkıştırılmış dosyayı açtığımızda 4 tane csv  dosya çıkıyor. Bu dosyalardan ikis bizim kullanacağımız "MIT-BIH Arrhythmia" isimli veri kümesine ait. csv uzantılı dosyalar  metin tipinde ve değerler arasında genellikle 'virgülle ayrılmış dosyalardır. 
"mitbih_train.csv"  : 188 sutunlu son sutun etiket değeri ve 87554  örnek içeriyor
"mitbih_test.csv"  : 188 sutunlu son sutun etiket değeri ve 21892  örnek içeriyor
Veriler hazırda eğitim ve test için ayrılmış durumda ama biz ilave bir ayrım daha getireceğiz. Doğrulama - validation -  denen bu ayrılmış veri tıpkı test verisi gibi doğrudan eğitmde kullanılmaz. Fakat eğitim algoritmalarının hemen hemen her türünde ayarlamanız gereken parametreler vardır.  Hiper parametre denen bu değişkenlerin  değişimi ile aynı model aynı veri kümesi için çok değişik sonuçlar verebilir. Değişkenlerin en doğru değerlerinin tespiti için teorik bir formül yoktur. En iyi sonuca ulaşmak için genellikle denemeler yapılır. Deneme sonucunun iyi yada kötü olduğuna ancak eğitim de kullanılmamış verilere nasıl sonuçlar verdiğine bakarak karar verilir. İşte Doğrulama verisi diye geçen kısmın amacı budur.  Test verisiyle Doğrulama verisi aynı olamazmı. Olur hatta genelliklede öyle yapılır. Eğer yeterince fazla veriniz varsa ayrı ayrı olması daha doğru olur. Çünkü peyder pey hiperparametrelerle modelimizin performansını yükseltiriz. Ama farkında olmadan eğitim için kullanmadığımız veriden gelen bilgilerle düzeltmeler yapmış olabiliriz. Bu durumda test için ulaştığımız sonuçlara güvenemeyebiliriz.  Biz bu çalışmada bunu uygulamak amaçlı  3 e ayıracağız.
Eğitim verisinin %20 sini doğrulama verisi olarak ayırıyoruz. İlk aşamada kullanmayacağız ama sonra hiper parametre ayarlarında kullanmak üzere ayıracağız.

csv uzantılı dosyaları okumanın pek çok yolu vardır.  Biz numpy nin loadtxt fonksiyonunu kullanıyoruz ve sklearn 'ün train_test_split fonksiyonuyla doğrulama - validation  - kısmını ayırıyoruz.



Dataların dağılımlarına bakıyoruz. Hangi sınıfdan  ne kadar örnek var bunu görmek önemli.


Örnek verelim. Eğitim verimizdeki Normal örneklerin sayısı, eğitim veri sayımızın %82 kusuruna denk geliyor. Yani her örneğe doğru diyen bir sınıflandırma modeli toplamda %82 doğrulukta başarılıymış gibi görünür. Bunun ana sebebi veri kümesindeki dengesiz veri dağılımıdır. Ama gerçek hayatta da çoğunlukla bu tip dengesiz verilerle uğraşmak gerekiyor. Dengesiz veri kümesi problemi çok geniş burda geçiştirmenin anlamı yok. Eğer kısmet olursa bir başka yazıda yazarız inşallah.

Bu dağılımla tek başına doğruluk - accuracy -  değerinin bir şey ifade etmediğini başka ölçüm -metric - kıstaslarına bakmak gerektiğini anlıyoruz.



Çok sınıflı bir tahmin yapmaya çalışıyoruz. Yukardaki resim örneğindeki gibi İki hata durumumuz var;
"Hamile olmayana hamilesin" diyebiliriz.
Yada tersi "hamile olana hamile değilsin" denebilir.
Bunun dışındaki iki doğru seçenek var ;
"hamileye hamile"
"hamile olmayana hamile değilsin"
demek
Bu ana tanımlar sonrası bunlardan hesaplanan recall (duyarlılık) , precision (kesinlik) ve f1 skoru denen ölçütler var.  Bunları sklearn ün classification_report ile hesaplattırabiliyoruz. Teferruatlarına bakmak isterseniz internette, Ölçüt çeşitleri ve nasıl hesaplandıklar iyi ve kötü  yanları ile ilgili pek çok kaynak bulabilirsiniz.  Mesela bakınız;  "Sınıflandırma Modellerinde Başarı Kriterleri"


Yazı uzunluğu okunabilirlik limitini aşmak üzere,
Veri kümesi üzerinde çeşitli  Yapay Öğrenme metodlarının denenmesini bir dahaki yazımıza bırakıyoruz. Buraya kadar sabırla okuğunuz için teşekkürler.
Her türlü görüş ve önerilerinizi bekleriz.

Cuma, Temmuz 08, 2016

Python İle Yapay Zeka 3

Regresyon :

Problemimizin sınıflandırıcı ile çözümünü yapmıştık şimdide regresyon metodlarından biri ile aynı problemi çözelim.

Biz problemimizde LassoLarsCV metodunu kullanacağız. Liner bir metodun Lars algoritmasıyla ve cross validation ile sağlaması yapılmış bir regresyon modeli çıkarır. Lars ağgoritması için verdiğimiz linke bakın. Cross-validation kavramından bahsedelim biraz.

'Cross Validation' diye de geçen bir terim bu. Türkçeye çapraz doğrulama diye geçmiş. Bir önceki örnekde de görmüştük. Eğitimini yaptığımız sistemin eğitim için kullanmadığımız verilerle doğrulmasının yapılması gerekiyor.  Kabaca anlatırsak ; çapraz doğrulama ile eğitim verisi  istenen sayıda parçaya ayrılır.

Bir parçasının ayrılıp diğerleri ile model eğitilir.  Ayrılan parçası ile doğrulaması yapılarak o modelin performansı ölçülmüş olur.  Sonuçda elede edilen eğitilmiş modellerin  performanslarının ortalaması kullanılır.

Uygulamamıza dönersek. Verimiz zaten hazırdı. Aynı kısımdan devam edersek önce kullanacağımız sistem için gereken çağrıları yapalım



 İlk satırda LassoLarsCv  sınıfını kullanmak için gerkeken çağrıdır. İkinci satırda ise bu tip modellerde performansı artıran bir ön işleme metodudur. 


Scale- Ölçekleme  fonksiyonu ile her değerden ortalama çıkarılıp standart sapmaya bölünerek uygulanıyor.  İlk satırda Ölçekleme için gereken sınıf oluşturuluyor. İkinci satırda Ölçekleme için gerken parametreler fit fonksiyonu ile ve eğitim verisi kullanılarak  elde ediliyor.  Sonraki satırlarda Sonrasında transform fonksiyonu ile gereken ölçekleme işlemleri eğitim ve test verisi için uygulanıyor.

ilk satırda LassoLarsCV sınıfı tanımlanıyor 10 parçalı bir çapraz doğrulama yapılması için parametre olarak 'cv=10' veriliyor.
ikinci satırda diğer sklearn modellerindeki gibi fit fonksiyonu ve eğitim verileri ile eğitim işlemi yapılıyor

bu model yine aynı diğer çoğu sklearn modelinindeki gibi predict fonksiyonu ile eğitilmiş modelimizin test verisi için tahminlerini alıyoruz.

Fakat bu modelimizde sınıflandırmanın aksine tahminler sadece 0 ve 1 arası bir değer olarak hesaplanır.


Modelimizin performansını ölçmek için  bu sayıların bir eşik eğerin altında olanlarını 0  üstünde olanlarını 1 olarak  filitreliyoruz. Eşik değeri olarak orta noktayı seçiyoruz 0.5

Artık tahminlerimizi tıpkı sınıflandırmadaki gibi değerlendirebiliriz.


İlk  satırda karşılaştırma matrisini -confusion matrix-  hesaplıyoruz.  Bu yazımızda konuyu biraz daha açalım bu matrisde sutunlar tahminleri satırlar gerçek değerleri gösteriyor
yani ilk satırda 1638 + 55 = 1693 gerçekde 0 olması gereken gözlem var.  Bunun 1638 i  0 diye doğru tahmin edilmiş 55 tanesine 1 denilmiş Aynı şekilde ikinci satırda yani 1 değeri için 3+969 = 972 gözlem vardır bunlardan 969 tanesi 1 diye doğru tahmin edilmiş 3 tanesi 0 diye yanlış yahmin edilmiş.

Sınıflandırma örneğimizde giriş özelliklerinin önem derecesini görmüştük.  Şimdi kullandığımız metod da aşağı yukarı aynı amaç için coef_ özelliğini kullanıyoruz.



Regresyon modelimiz de de en önemli giriş özellikleri sırası ile Aydınlık değri Light  ve  Karbondioksit değeri CO2. Sınıflanırdmadaki modelimizin aksine bu iki özellik dışındakilerin bir önemi görünmüyor.

Eşik değerini  orta nokta olarak seçtik farklı eşik değerleri için tahminlerimizin doğruluk oranı değişirmi ?




Hesaplayalım  Yukardaki kodda hem eğitim verisi hemde tes verisi için tahminler yapılıp değişik eşik değerleri için doğruluk oranları hesaplanıyor. eğitim ve test verisi doğruluk oranını  ortalamalırnın maksimum olduğu eşik değeri hesaplanıyor.


Hesaplanmı eşik değerlerini grafik olarak gösteriyoruz ve altında bulduğumum optimum eşik değeri için hesaplanan eşik değerlerini yazıyoruz.

Koda ulaşmak için buraya bakabilirsiniz 

Evet Bir yazımızın daha sonuna geldik. Eğer Uygun zaman ve uygun bir veri seti bulabilirsem bu yazı serisinin bir sonrakinda Danışmansız - Unsupervised - metdola ilgili bir uygulama yapmak ve anlatmak istiyorum. Her türlüğörüş öneri ve sorularınızı bekleriz.

Pazartesi, Temmuz 04, 2016

Python İle Yapay Zeka 2

Yazımıza devam edelim

Eğitim için datamızı hazırlamıştık aynı işlemleri test verisi içinde uygulamamız gerekiyor. Bizim şimdi kullandığımız veri setinde test verileri için ayrı bir dosya hazırlanmış öyle bir dosya olmasa bile bizim verinin bir kısmını test için ayıırmamız gerekmektedir. Çünkü eğitim sonunda sistemi eğitimde kullanılmayan verilerle doğrulamak gerekli bir adımdır.



Eğtim verilerini hazırlamak için uyguladığımız adaımlarla aynı. sadece Giriş veri sutun adlarını grafiklerde kullanmak için kaybolmadan inLabels dizisine atıyoruz.

Eğitim :

Şimdi elimizde sensörlerden gelen verilerimiz var ve  sensör verilerine karşılık odanın boş olduğu yada içinde birilerinin olduğu bilgisi var. Böyle bir sisteme danışmanlı -Supervised - sistem deniyor.
Kullanacağımız kütüphanenin pek çok değişik modeli var. Eğitim hakkında dikkat edilmesi gereken pek çok konu var. YSA üzerine yazdığımız şu yazıdaki 
ysa-buyu-degildir.html
 bilgilerden çoğu bütün danışmanlı eğitim sistemlerinde geçerlidir okumanızı öneriririm.
Probelmimizi iki şekilde ele alabiliriz, Sınıflandırma ve Regresyon. Sınıflandırmada çıkış değeri odanın boş yada dolu olması üzerine bir sınıflandırma. Regresyonda ise 0 ila 1 arası bir çıkış değerine ulaşmak şeklinde bir her ikisi içinde deneme yapacağız.

Sınıflandırma :

 Önce gereken kütüphane  çağrılarını yapıyoruz.


Biz sınıflandırma için kullandığımızda RandomForestClassifier tercih ettiğimizden onu dahil ettik. Scikit-Learn kütüphanesinin içinde elbette pek çok değişik sınıflandırıcı mevcuttur.  Sizde onları dahil edip denemeler yapabilrsiniz.  Kütüphanenin bir güzelliği çoğu modele aynı kullanım arabirimi oluşturmuş olmasıdır. İkinci satırda ise eğitim sonrası tes aşamasında modelimiz başarısını ölçmek için kullanacağımız fonksiyonları çağırmamız için gereken modüldür.


RandomForestClassiffier  karara ağaçları türü bir sınıflandırıcıdır. Her sınıflandırcının kendisine göre ayar parametreleri vardır. Daha iyi sonuçlar için bu parametreleri ayarlamak gerekebilir. İlk aşamada varsayılan değerlerle deneme yapıp sonuçları değerlendirerek ve Probleminizi, verilerinizi dikkate alarak denemeler yapmanız gerekecektir.



Yukarda gördüğünüz gibi  biz ilk satırda RandomForestClassiffier sınıflandırıcı tanımladık sadece iki parametre ayarı yaptık. İkinci satır ise sklearn modelleri  için genel bir yapıdır. fit  fonksiyonuyla sınıflandırıcıya giriş ve çıkış verileri verilip kendini eğitim işlemi başlatıldı. Eğitimm işlemi verinize ve parametrelerinize kullandığınız sınıflandırıcıya göre değişik zaman alabilir. Bizim verimiz büyük olmadığından eğitim işlemi çok kısa sürer.

İlk satırda predict fonksiyonu ile eğitilmiş modelimize test giriş verileri verilip  bu verileri için çıkış değerleri tahmin ediliyor -predictions- . predict fonksiyonuda sklearn modelleri  için genel bir yapıdır.
 ikinci satırda  eğitilmiş model başarı ölçüm fonksiyonlarından birini görüyorsunuz. confusion_matrix fonksiyonu bizden gerçek sonuçlar ve modelin tahminlerini ister ve karşılaştırır. Ve bize matris formunda bir çıktı verir. Şimdi bizim örneğimizde odanın boş olması ve dolu olması durumu var. Modelimizde yine 2 şekilde tahmin yürütebilir. Bu taminler gerçekler sonuçlarla karşılaştırıldığında
  1. Boş Oda -- Boş 
  2. Boş Oda  -- Dolu 
  3. Dolu Oda  -- Boş
  4. Dolu Oda -- Dolu 
 diye tahmin edilebilir. Bu fonksiyon bu  bu yapıyı 2x2 lik bir matris şekline gösterir.
detaylı bilgi için bakınız
Confusion_matrix
Bu bize modelimizin tahmin geçerliliğini gösterir.  Model başarı ölçüm sistemlerinden biriside tahminlerin doğruluk oranıdır. accuracy diye geçer



Doğruluk oranı içinde accuracy_score fonksiyonunu çağırıyoruz. Elbette bu hesabın yapılması için gerçek değerlerin ve tahminlerin verilmesi gerekiyor.  Sonuçda eğittiğimiz model %97.7 bir tahmin doğruluk başarısına sahip.

RandomForestClassiffier modelininin Karar Ağacı yapısında bir sınıflandırıcı olduğunu söylemiştik  Ağaç temelli modellerin Giriş değişkenlerinin önem sıralamasınıda veren bir  özelliği vardır.
Eğitilmiş model eğitim sonrasında feature_importances_  değişkeninde giriş değişkenlerinin önemlerini tutan bir dizi oluşturur. Peki bu liste ne anlama gelir.  Grafiğe dönüştürelim ve görelim.



Kodda ise  Matplotlib  kütüphanesi ile sutun garfiği oluşturuldu. Grafikler sonucları çok daha iyi görmemizi sağlar
Odanın boşmu dolumu olduğunu tahmin etmemizde en çok önemi olan giriş değişkenleri ; grafikden de kolayca görebileceğimiz gibi  Öncelikle aydınlık -Light-  sonra Karbondioksit -CO2 - miktarı  geliyor.

Problemimizin sınıflandırmayla çözümünün de sonuna geldik bir sonraki yazımızda Regresyonla bir bir çözüm daha üreteceğiz.
Görüş ve önerilerinizi bekleriz.

Hayırlı bayramlar