"Enter"a basıp içeriğe geçin

Tahminleme ve Veri Görselleştirme

Geçtiğimiz yazıda Scikit-Learn kütüphanesini kullanarak elimizdeki veri seti ile farklı modeller için eğitim (training) gerçekleştirdik. Ancak bu modelleri kullanabilmek için modellere tahmin (prediction) yaptırabilmemiz gerekiyor.

Modellerin ne kadar iyi çalıştığını anlamak için ise kullandığımız yönteme ve veri setine uygun ölçme teknikleri uygulamamız gerekiyor. Ölçme tekniklerini sonraki yazılarımız ile öğrenmeye başlayacağız fakat şimdilik veri görselleştirmeye kısa bir giriş yaparak modelimizin ne kadar iyi çalıştığını grafikler ile görmeye çalışalım.

Önceki yazıda Logistic Regression, Yapay Sinir Ağları (Multilayer Perceptron), Karar Ağacı (Decision Tree) ve Support Vector Machines ile sırası ile aşağıdaki sınıflandırma (classification) modellerini eğittik :

  • LR_classifier
  • MLP_classifier
  • DT_classifier
  • SVM_classifier

Bu modellere tahmin yaptırmak için modellere (nesnelere) ait predict metodunu kullanacağız. Bu sayede özellik seti (feature set) içerisinden test seti olarak ayırdığımız X_test içerisinde bulunan her bir değer için tahminde bulunduracağız:

y_pred_LR = LR_classifier.predict(X_test)
y_pred_MLP = MLP_classifier.predict(X_test)
y_pred_DT = DT_classifier.predict(X_test)
y_pred_SVM = SVM_classifier.predict(X_test)

Dört ayrı modelimiz olduğu için dört ayrı tahmin seti yarattık.

Test seti ve tahmin setlerimizi görselleştirmeden önce eğitim setini görselleştirerek aslında Keşifsel Veri Analizi (Exploratory Data Analysis) adımına ait olan eğitim setini görselleştirmek ile işe başlayalım. Görselleştirme dendiğinde akla gelen ilk Python kütüphanelerinden biri matplotlib. Biz de bu kütüphaneden faydalanacağız.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.scatter(X_train[:,0],X_train[:,1],c=y_train)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Train Data Set')

Yukarıdaki scatter plot kod parçası x1 ve x2 özelliklerine sahip noktaları grafiğe dökerken renklendirme için ise hedef değerleri taşıyan y_train dizisini kullanıyor ve aşağıdaki grafik oluşuyor.

Grafiğe baktığımızda yaklaşık olarak (0,0) noktası etrafında çembere benzer şekilde öbeklenmiş değerlerin 1 değerini (sarı noktalar), daha dışarıda olanların ise 0 değerini (mor noktalar) aldığını görüyoruz.

Aynı şekilde test setimizi de görselleştirerek inceleyelim :

fig, ax = plt.subplots()
ax.scatter(X_test[:,0],X_test[:,1],c=y_test)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Test Data Set')

Test setimizde de benzer bir dağılımı gösterdik. Şimdi renklendirme işini modellerimize yaptırdığımız tahminlerle yapalım ve farkları inceleyelim:

fig, ax = plt.subplots()
ax.scatter(X_test[:,0],X_test[:,1],c=y_pred_LR)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Logistic Regression Predictions')
fig, ax = plt.subplots()
ax.scatter(X_test[:,0],X_test[:,1],c=y_pred_MLP)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Multilayer Perceptron Predictions')
fig, ax = plt.subplots()
ax.scatter(X_test[:,0],X_test[:,1],c=y_pred_DT)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Decision Tree Predictions')
fig, ax = plt.subplots()
ax.scatter(X_test[:,0],X_test[:,1],c=y_pred_SVM)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_title('Support Vector Machines Predictions')

Görüldüğü üzere Yapay Sinir Ağları, Karar Ağacı ve Support Vector Machines test datası ile sahip olduğumuz renklendirmeye benzer şekilde renklendirmeler çıkarsalar da Logistic Regression oldukça hatalı bir renklendirme çıkarmamıza neden oldu.

Logistic Regression’ın bu şekilde hatalı bir sonuç çıkarmasının nedeni doğrusal bir model olmasıdır. Ancak doğrusal olarak ayrıştırabileceğimiz veri setleri ile kullanıldığında kabul edilebilir sonuçlar üretebileceğini unutmayalım.

Son üç yazı için uyguladığımız adımları topluca bulabileceğiniz github repo dosyasına erişmek için tıklayın.

Bu yazı ile Python ile Basit Uygulamalar yazı dizisini sonlandırmış bulunuyoruz.

Bir sonraki yazımız Makine Öğrenmesi’nin 7 Adımı ile makine öğrenmesi uygulamalarında kullanılan süreci tanıyacağız. Bir sonraki yazı dizisi Performans Değerlendirme Yöntemleri ile modelimizin ne kadar iyi çalıştığını anlamayı öğreneceğiz.

Keyifli Öğrenmeler 🙂

İlk Yorumu Siz Yapın

Bir Cevap Yazın

Translate »
%d blogcu bunu beğendi: