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!