Depresyon Veri Setini Kullanarak Bir Yapay Sinir Ağı Modeli Oluşturmak ve Eğitmek
Depresyon Veri Setini Kullanarak Bir Yapay Sinir Ağı Modeli Oluşturmak ve Eğitmek
python # Gerekli kütüphaneleri içe aktarın import numpy as np import pandas as pd import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # Depresyon veri setini okuyun # Veri seti, depresyon belirtilerini 0 (yok) veya 1 (var) olarak etiketleyen 27 sorudan oluşmaktadır # Veri setinin kaynağı: www.kaggle.com/utkarshxy/who-world-mental-health-survey df = pd.read_csv("depression.csv") # Girdi ve çıktı değişkenlerini ayırın X = df.drop("depressed", axis=1) y = df["depressed"] # Veri setini eğitim ve test kümelerine bölün X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Verileri ölçeklendirin scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Yapay sinir ağı modelini oluşturun model = keras.Sequential([ layers.Dense(32, activation="relu", input_shape=(27,)), layers.Dropout(0.5), layers.Dense(16, activation="relu"), layers.Dropout(0.5), layers.Dense(8, activation="relu"), layers.Dense(1, activation="sigmoid") ]) # Modeli derleyin optimizer = keras.optimizers.Adam(learning_rate=0.001) model.compile(optimizer=optimizer, loss="binary_crossentropy", metrics=["accuracy"]) # Early stopping ekleyin early_stopping = keras.callbacks.EarlyStopping(monitor="val_loss", patience=5, restore_best_weights=True) # Modeli eğitin model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.1, callbacks=[early_stopping]) # Modelin performansını değerlendirin model.evaluate(X_test, y_test) # Eğitilmiş modeli kaydedin model.save("trained_model.h5") Bu kod, depresyon veri setini kullanarak bir yapay sinir ağı modeli oluşturmak ve eğitmek için yazılmıştır. Depresyon veri seti, Dünya Sağlık Örgütü’nün dünya çapında yaptığı bir zihinsel sağlık anketinden elde edilmiştir. Veri seti, depresyon belirtilerini 0 (yok) veya 1 (var) olarak etiketleyen 27 sorudan oluşmaktadır. Kodun yaptığı işlemler şunlardır: - Gerekli kütüphaneleri içe aktarır. Bu kütüphaneler, veri işleme, makine öğrenimi ve yapay sinir ağı modelleri için kullanılan yaygın araçlardır. - Depresyon veri setini okur ve bir pandas veri çerçevesine dönüştürür. - Girdi ve çıktı değişkenlerini ayırır. Girdi değişkenleri, depresyon belirtilerini soran 27 sorudur. Çıktı değişkeni, depresyon durumunu gösteren 0 veya 1 değeridir. - Veri setini eğitim ve test kümelerine bölün. Eğitim kümesi, modeli eğitmek için kullanılır. Test kümesi, modelin performansını değerlendirmek için kullanılır. Test kümesinin boyutu, veri setinin %20’sidir. Rastgele durum, veri setinin bölünme şeklini belirler. - Verileri ölçeklendirir. Verileri ölçeklendirmek, modelin daha iyi öğrenmesine yardımcı olur. Ölçeklendirme için standartlaştırma yöntemi kullanılır. Bu yöntem, verilerin ortalamasını 0 ve standart sapmasını 1 yapar. - Yapay sinir ağı modelini oluşturur. Model, dört katmandan oluşur: - Bir giriş katmanı, 27 girdi alır ve 32 nöronlu bir yoğun katmana bağlanır. Bu katmanın aktivasyon fonksiyonu relu’dur. Relu, doğrusal olmayan bir fonksiyondur ve modelin karmaşık ilişkileri öğrenmesine yardımcı olur. - Bir bırakma katmanı, modelin aşırı uyumunu önlemek için kullanılır. Bu katman, her eğitim adımında rastgele olarak %50’sini bırakır. Aşırı uyum, modelin eğitim verilerine çok iyi uyum sağlaması ancak yeni verilerde kötü performans göstermesi durumudur. - Bir gizli katman, 16 nöronlu bir yoğun katmandır. Bu katmanın aktivasyon fonksiyonu da relu’dur. Bu katman, modelin daha fazla özellik öğrenmesine olanak tanır. - Bir bırakma katmanı, modelin aşırı uyumunu önlemek için kullanılır. Bu katman, her eğitim adımında rastgele olarak %50’sini bırakır. - Bir gizli katman, 8 nöronlu bir yoğun katmandır. Bu katmanın aktivasyon fonksiyonu da relu’dur. Bu katman, modelin daha fazla özellik öğrenmesine olanak tanır. - Bir çıkış katmanı, 1 nöronlu bir yoğun katmandır. Bu katmanın aktivasyon fonksiyonu sigmoid’dir. Sigmoid, 0 ile 1 arasında bir değer üreten bir fonksiyondur. Bu değer, modelin depresyon olasılığını tahmin etmesini sağlar. - Modeli derler. Modelin derlenmesi, modelin nasıl eğitileceğini belirler. Modelin optimizasyon algoritması olarak Adam kullanılır. Adam, modelin ağırlıklarını güncellemek için adaptif bir yöntemdir. Modelin öğrenme hızı 0.001 olarak ayarlanır. Öğrenme hızı, modelin ağırlıklarını ne kadar hızlı değiştireceğini belirler. Modelin kayıp fonksiyonu olarak ikili çapraz entropi kullanılır. İkili çapraz entropi, modelin tahminleri ile gerçek değerler arasındaki farkı ölçer. Modelin metriği olarak doğruluk kullanılır. Doğruluk, modelin doğru tahmin ettiği örneklerin yüzdesidir. - Erken durdurma ekler. Erken durdurma, modelin eğitimini, doğrulama kümesindeki kayıp değeri artmaya başladığında durduran bir geri çağırma fonksiyonudur. Doğrulama kümesi, eğitim kümesinin %10’luk bir bölümüdür. Erken durdurma, modelin aşırı uyumunu önlemek için kullanılır. Erken durdurma, kayıp değeri en düşük olan modelin ağırlıklarını geri yükler. Erken durdurma, kayıp değeri 5 kez arttığında modelin eğitimini durdurur. - Modeli eğitir. Model, eğitim kümesindeki verileri kullanarak 50 dönem boyunca eğitilir. Bir dönem, modelin tüm eğitim verilerini bir kez gördüğü süredir. Modelin toplu iş boyutu 32’dir. Toplu iş boyutu, modelin her eğitim adımında kaç örnek aldığını belirler. Model, her dönem sonunda doğrulama kümesindeki performansını gösterir. Erken durdurma geri çağırma fonksiyonu, modelin eğitimini durdurmak için izler. - Modelin performansını değerlendirir. Model, test kümesindeki verileri kullanarak performansını değerlendirir. Model, test kümesindeki kayıp değeri ve doğruluk değerini gösterir. - Eğitilmiş modeli kaydeder. Model, "trained_model.h5" adlı bir dosyaya kaydedilir. Bu dosya, modelin yapısını ve ağırlıklarını içerir. |