Keras ile Python’da Regresyon Örneği

Giriş

Son yıllarda yapay zeka ve makine öğrenimi alanındaki gelişmeler, veri analizi ve modelleme yaklaşımlarını köklü bir şekilde değiştirdi. Keras, Python tabanlı en popüler derin öğrenme kütüphanelerinden biridir ve kullanıcılara karmaşık yapay zeka görevlerini kolaylıkla gerçekleştirmelerini sağlar. Bu yazıda, Keras’ı kullanarak basit bir regresyon örneği gerçekleştireceğiz. Regresyon, bağımlı değişkenin (tahmin edilmek istenen) bağımsız değişkenlerle ilişkisini modelleyen bir istatistiksel yöntemdir. Keras ile regresyon problemlerini anlamak, makine öğrenimindeki temel becerilerden biridir.

Bu örnekte, Keras’ın sunduğu çeşitli bileşenleri kullanarak bir model oluşturacak ve bu modelin veri setindeki bağımsız değişkenlere dayalı olarak bağımlı değişkeni nasıl tahmin ettiğini göreceğiz. İşe, gerekli kütüphaneleri yüklemekle başlayalım.

Gerekli Kütüphanelerin Yüklenmesi

Keras ile regresyon modeli oluşturmak için bazı temel kütüphanelere ihtiyacımız var. Aşağıdaki kod parçacığını kullanarak gerekli kütüphaneleri yükleyebilirsiniz:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense

Yukarıdaki kodda, numpy ve pandas kütüphanelerini veri manipülasyonu ve analiz için, sklearn kütüphanesini ise verimizi eğitim ve test setlerine ayırmak için kullanıyoruz. Keras kütüphanesi içinde ise, Sequential modeli ve Dense katmanını kullanarak yapay sinir ağımızı oluşturacağız.

Veri Setinin Hazırlanması

Regresyon modelimizi eğitmek için uygun bir veri setine ihtiyacımız var. Bu örnekte, basit bir doğrusal regresyon problemi için üretilmiş olan bir veri seti kullanacağız. İşte basit bir veri seti oluşturan Python kodu:

# Basit veri seti oluşturma
X = np.random.rand(100, 1) * 10  # 0-10 arası 100 rastgele sayı
Y = 2 * X + 1 + np.random.normal(0, 1, (100, 1))  # y = 2x + 1 + gürültü

Bu kod, rasgele sayılardan oluşan bir bağımsız değişken X ve söz konusu bağımsız değişkene dayalı olarak oluşturulmuş bir bağımlı değişken Y üretir. Y değişkeni, X’in iki katı artı bir ekleyerek ve biraz gürültü ekleyerek hesaplanmıştır. Böylece çok basit bir doğrusal ilişki kurmuş olduk.

Verinin Eğitim ve Test Setlerine Bölünmesi

Modelimizin eğitimini yapmak ve elde ettiğimiz modelin kalitesini değerlendirmek için verilerimizi eğitim ve test setlerine ayırmamız gerekiyor. Bunun için Keras kütüphanesinin sağladığı train_test_split fonksiyonunu kullanacağız:

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)

Bu kod, veri setimizi randomize bir şekilde, %80’ini eğitim seti, %20’sini test seti olarak ayırır. Modelimizi eğitmek için X_train ve Y_train değişkenlerini kullanacak, daha sonra test verileriyle modelimizin performansını değerlendireceğiz.

Modelin Oluşturulması

Şimdi, Keras ile basit bir yapay sinir ağı modeli oluşturalım. Aşağıdaki kod ile modelimizi tanımlayabiliriz:

model = Sequential()
model.add(Dense(units=1, input_shape=(1,)))  # Tek bir girdi ve çıktı ile basit bir model

Yukarıdaki kod, Sequential modelimizi başlatıp, ilk katmanda tek bir nöron (unit) içeren Dense katmanını ekler. Bu katman, yapay sinir ağının en temel yapı taşlarını oluşturur. Girdi boyutu (1,) şeklinde belirlenmiştir çünkü yalnızca tek bir bağımsız değişkenimiz var.

Modelin Derlenmesi

Modeli oluşturduktan sonra, onu kullanmadan önce derlememiz gerekiyor. Modeli derlemek için kayıp fonksiyonu ve optimizasyon algoritmasını tanımlamamız gerekir:

model.compile(optimizer='adam', loss='mean_squared_error')

Yukarıdaki kodda, optimizasyon algoritması olarak adam kullanılıyor. Kayıp fonksiyonu olarak ise, regresyon problemleri için yaygın olarak kullanılan mean_squared_error belirlenmiştir. Bu sayede modelimiz, tahminlerinde hata payını minimize etmeye çalışacaktır.

Modelin Eğitilmesi

Artık modelimizi eğitmeye hazırız! Aşağıdaki kod ile modelimizi eğitim verileri ile eğitebiliriz:

model.fit(X_train, Y_train, epochs=100, verbose=0)

Bu kod, modelimizi 100 epoch boyunca eğitim verileri ile eğitir. verbose=0 parametresi, eğitim sürecinde detaylı bilgi almak istemediğimizi belirtir. Eğitim tamamlandığında, modelimiz X_train verisiyle tahminlerde bulunmaya uygun hale gelecektir.

Modelin Değerlendirilmesi

Eğitim tamamlandıktan sonra, test setindeki verilerle modelimizin başarısını değerlendirebiliriz. Bunun için test verilerini kullanarak modelimizin tahminlerini yapmamız gerekecek:

predictions = model.predict(X_test)

Bu kod, test setimiz üzerindeki tahminleri üretir. Şimdi, tahminlerimizi ve gerçek değerleri karşılaştırarak modelin ne kadar başarılı olduğunu görebiliriz. Bunu görselleştirmek için Matplotlib kütüphanesini kullanabiliriz:

import matplotlib.pyplot as plt
plt.scatter(X_test, Y_test, color='blue', label='Gerçek Değerler')
plt.scatter(X_test, predictions, color='red', label='Tahminler')
plt.legend()
plt.show()

Yukarıdaki kod, gerçek değerleri mavi noktalarla ve tahmin edilen değerleri kırmızı noktalarla gösterir. Böylece modelimizin ne kadar iyi tahmin yaptığını görsel olarak değerlendirmiş olacağız.

Sonuç

Bu yazıda, Keras kütüphanesini kullanarak basit bir regresyon örneği gerçekleştirdik. Adım adım, gerekli kütüphanelerden başlayarak, veri setinin hazırlanması, modelin oluşturulması, eğitilmesi ve değerlendirilmesine kadar bir regresyon modelinin tüm aşamalarını ele aldık. Elde ettiğimiz sonuçlar, Keras’ın güçlü ve kullanıcı dostu özellikleri sayesinde regresyon problemlerini çözüme kavuşturabilmek için etkili bir araç olduğunu göstermektedir.

Umarım bu rehber, Keras ile regresyon problemleri üzerine çalışma yapmanızda size yardımcı olur. Kendi projelerinizi geliştirirken, bu temel bilgileri ve yöntemleri kullanarak daha karmaşık modeller oluşturabilirsiniz. Unutmayın, makine öğrenimi ve yapay zeka dünyasında başarılı olmak için denemeler yapmaktan ve sürekli öğrenmekten vazgeçmeyin!

Scroll to Top