Python ile Sinir Ağlarını Sıfırdan Uygulamak [Örneklerle]
Yayınlanan: 2020-12-07Bu yazımızda, Sıfırdan bir Sinir Ağının nasıl eğitileceğini ve oluşturulacağını öğreneceğiz.
Sinir ağımızı eğitmek için Churn veri setini kullanacağız. Bir sinir ağının eğitimi karmaşık değildir. Modelimizin verilerimizi kolayca alabilmesi ve herhangi bir engel olmadan kendini eğitebilmesi için verilerimizi önceden işlememiz gerekiyor. Aşağıdaki gibi ilerleyeceksiniz:
- Tensorflow'u yükleyin
- Kitaplıkları İçe Aktar
- Veri Kümesini İçe Aktarın
- Giriş verilerini dönüştürün
- verileri böl
- Modeli başlat
- Modeli oluşturun
- Modeli eğit
- Modeli değerlendirin
Kayıp oranı, bir şirketin abonelerinin veya belirli bir zaman diliminde devam etme eğiliminde olan bir tarafın ölçüsüdür. Bu oran, karların belirlenmesinde ve yeni müşteriler kazanmak için planların oluşturulmasında önemli bir rol oynar. Basit bir ifadeyle, şirket büyümesinin Kayıp oranı ile ölçülebileceğini söyleyebiliriz.
Bu veri kümesinde on üç özelliğimiz var, ancak bir kullanıcının devam etme olasılığını tahmin etmek için gereksinimlerimizi karşılayan yalnızca birkaç özellik kullanıyoruz.
Dünyanın en iyi Üniversitelerinden çevrimiçi makine öğrenimi kursu öğrenin . Kariyerinizi hızlandırmak için Master, Executive PGP veya Advanced Certificate Programları kazanın.
İçindekiler
TensorFlow'u yükleyin
PC'nizde veya dizüstü bilgisayarınızda GPU yoksa Google Colab'ı kullanabiliriz ya da Jupyter Notebook'ları kullanabilirsiniz. Sisteminizi kullanıyorsanız, pip'i yükseltin ve ardından TensorFlow'u aşağıdaki gibi kurun.

Görüntü kaynağı
Kitaplıkları İçe Aktar
Yukarıdaki kod satırlarında, süreçte ihtiyaç duyacağım tüm kitaplıkları yeni içe aktardım.
Numpy → Diziler üzerinde matematiksel işlemler yapmak için kullanılan bir kütüphanedir.
Pandalar → Veri dosyasını Pandalar veri çerçevesi olarak yüklemek ve verileri analiz etmek için.
Matplotlib → Verilerin grafiklerini çizmek için bir pyplot içe aktardım .
Veri Kümesini İçe Aktar
Veri setimiz CSV formatında olduğundan veri setini pandas işlemlerini kullanarak yüklüyoruz. Ardından veri kümesini, X'in Bağımsız ve Y'nin Bağımlı olarak kabul edildiği Bağımlı ve Bağımsız değişkenlere böldük.
Verileri dönüştürün
Veri setimizde Coğrafya ve Cinsiyet olmak üzere iki kategorik özelliğimiz var . Bu iki özellik için kuklalar oluşturmamız gerekiyor, bu yüzden get_dummies yöntemini kullanıyoruz ve ardından bunları Bağımsız Özellikler Verilerimize ekliyoruz.
Aptallar oluşturmayı ve bunları verilerimizle birleştirmeyi bitirdikten sonra, orijinal özellikleri, yani Cinsiyet ve Coğrafyayı tren verilerimizden kaldıracağız.
Okuyun: Yapay Sinir Ağları ve Makine Öğrenimi

Bölünmüş veriler
Model_selection alt kitaplığı olan Sklearn'den, tren ve test kümelerini ayırmak için kullanılan train_test_split'i içe aktaracağız. Bölmeyi yapmak için train_test_split işlevini kullanabiliriz. test_size = 0.3, test için tutulması gereken verilerin yüzdesini gösterir.
Verileri normalleştirin
Tüm özellik değerlerinin aynı aralıkta olduğundan emin olmak önemlidir. Modelin, özellikler arasındaki temel kalıpları öğrenmesi ve nasıl karar vereceğini öğrenmesi zor olurdu, bu nedenle StandardScaler yöntemini kullanarak verilerimizi aynı aralığa normalleştiririz.
Bağımlılıkları içe aktar
Şimdi, derin bir sinir ağı oluşturmak için gereken işlevleri içe aktaracağız.
Modeli Oluştur
Modelimizi oluşturmanın zamanı geldi!. Şimdi sıralı modelimizi başlatalım. Sıralı API, çoğu sorun için katman katman modeller oluşturmanıza olanak tanır.
Bir model oluşturmadan önce yapmamız gereken ilk şey, bir model nesnesinin kendisini oluşturmaktır. Bu nesne, Sequential adlı sınıfın bir örneği olacaktır.
İlk tam bağlı katmanı ekleme
Katman türleri ve işlevleri hakkında bilginiz yoksa, bilmeniz gereken kavramların çoğunu bilmenizi sağlayan Sinir Ağlarına Giriş başlıklı bloguma bakmanızı öneririm.
Bu, bu işlemin çıktısının, doğrusallığı kırmak için ReLU aktivasyon fonksiyonunu uyguladığımız altı nörona sahip olması gerektiği ve giriş nöronlarının sayısının 11 olduğu anlamına gelir. Bütün bu hiperparametreleri .add() yöntemini kullanarak ekleriz.
Bu gizli katmanın çıktısının altı düğüme sahip olacağı aynı konfigürasyona sahip bir gizli katman ekleyeceğiz.
Çıktı Katmanı
Bu katmanın çıktısı, kullanıcının abonelikte kalıp kalmayacağını veya ayrılıp ayrılmayacağını söyleyen yalnızca bir düğüme sahip olacaktır. Bu katmanda aktivasyon fonksiyonumuz olarak sigmoid kullanıyoruz.
Hakkında bilgi edinin: Derin Öğrenme ve Sinir Ağları
derleme
Şimdi ağımızı bir optimize edici ile bağlamamız gerekiyor. Bir optimize edici, hataya göre ağımızın ağırlıklarını güncelleyecektir. Bu süreç geri yayılım olarak bilinir.
Burada optimize edicimiz olarak adam kullanacağız . Sonucumuz ikili açısından olduğundan, ikili çapraz entropi kullanıyoruz ve kullandığımız ölçümler doğruluktur .
Modeli eğitmek
Bu aşama, temeldeki kalıpları, veriler arasındaki ilişkileri öğrenmek ve bilgisine dayalı olarak yeni sonucu tahmin etmek için modelimizi eğitmemiz gereken çok önemli yoldur.
Modeli eğitmek için model.fit() yöntemini kullanıyoruz. Yöntemin içine üç argüman iletiyoruz, bunlar
input → x_train, ağa beslenen girdidir
çıktı → bu, x_train için doğru cevapları içerir, yani, y_train

no.of.epochs → Ağı veri seti ile kaç kez eğiteceğiniz anlamına gelir.
Değerlendirmek
Modelin performansını, iki argüman iletmeniz gereken sklearn kitaplığından doğruluk_skorunu içe aktararak değerlendirebilirsiniz. Biri gerçek çıktı, diğeri ise tahmin edilen çıktılardır.
Ayrıca okuyun : Gerçek Dünyada Sinir Ağı Uygulamaları
Çözüm
Şimdilik bu kadar. Umarım ilk sinir ağınızı oluşturmaktan keyif almışsınızdır. Mutlu Öğrenme!
Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan IIIT-B & upGrad'ın Makine Öğrenimi ve AI'daki Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.