Neural Network Python Code: Bir Başlangıç Rehberi

Giriş: Yapay Sinir Ağı Nedir?

Yapay sinir ağları, biyolojik sinir sistemini modelleyen ve makine öğrenimi alanında sıkça kullanılan algoritmalardır. Bilgiyi işlemek için ağlar şeklinde düzenlenmiş düğümlerden oluşurlar. Her bir düğüm, diğer düğümlerle bağlantılıdır ve bu bağlantılardan gelen girdileri işler. Yapay sinir ağları, özellikle görüntü tanıma, doğal dil işleme ve zaman serisi tahmini gibi karmaşık veriler üzerinde güçlü tahminler yapabilme yeteneği ile bilinmektedir.

Python, bu tür makine öğrenimi uygulamaları için popüler bir dil haline gelmiştir. Geniş kütüphane desteği ve kullanıcı dostu yapısı sayesinde, veri bilimcileri ve geliştiriciler için ideal bir ortam sunar. Kütüphaneler, sinir ağları oluşturmayı, eğitmeyi ve test etmeyi kolaylaştırarak kullanıcıların karmaşık algoritmaları hızlı bir şekilde uygulamasına olanak tanır.

Bu rehberde, Python kullanarak basit bir yapay sinir ağı oluşturma sürecine adım adım göz atacağız. Temel kavramların yanı sıra, sinir ağlarının nasıl uygulanacağını ve eğitileceğini ele alacağız. Ayrıca, örnek kod parçalarını inceleyerek, kendi yapay sinir ağınızı oluşturmanıza yardımcı olacağız.

Gerekli Kütüphaneler ve Kurulum

Yapay sinir ağları geliştirmek için bazı temel Python kütüphanelerine ihtiyaç duyacağız. Bu kütüphaneler arasında NumPy, Pandas ve özellikle TensorFlow ve Keras bulunmaktadır. NumPy, sayısal hesaplamalar için güçlü bir kütüphanedir. Pandas ise veri manipülasyonu ve analizi için çok kullanışlıdır. TensorFlow ve Keras ise derin öğrenme uygulamaları için kullanılan popüler kütüphanelerdir.

Öncelikle gerekli kütüphaneleri Python ortamınıza kurmalısınız. Aşağıdaki komutları terminalinizde çalıştırarak bu kütüphaneleri kurabilirsiniz:

pip install numpy pandas tensorflow keras

Kurulum tamamlandıktan sonra, bu kütüphaneleri projemizde kullanmaya hazır hale geleceğiz. Kütüphaneleri Python dosyamıza import ederek başlayalım:

import numpy as np
import pandas as pd
from tensorflow import keras
from keras import layers

Yapay Sinir Ağı Oluşturma

Şimdi, basit bir yapay sinir ağı oluşturalım. Amacımız, bu ağın basit bir veri kümesi üzerinde eğitilmesini sağlamak. Örnek olarak, Iris veri kümesini kullanalım. Bu veri kümesi, farklı çiçek türlerinin özelliklerini içerir ve sınıflandırma problemleri için sıklıkla kullanılır.

Öncelikle, verileri yüklemeli ve hazırlamalıyız. Pandas kütüphanesi, veri kümesinin yüklenmesi ve ön işlenmesi için bize yardımcı olacaktır. Iris veri kümesini şu şekilde yükleyebiliriz:

data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)
data.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']

Veri kümesini yükledikten sonra, özellikleri ve etiketleri ayırmamız gerekiyor. Aşağıda, bu işlemi nasıl gerçekleştireceğimizi göreceksiniz:

X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values

Veri Ön İşleme

Sinir ağımızı eğitmek için, verilerimizin uygun biçimde olması gerekmektedir. Bu nedenle, özellikleri normalleştirmeli ve etiketleri sayısal değerlere dönüştürmeliyiz. Özellikleri normalleştirmek için, her bir özelliğin min-max ölçekleme yöntemiyle [0, 1] arasında olacak şekilde dönüştürülmesine bakalım:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

Şimdi de etiketlerimizi sayısal değerlere dönüştürmek için Keras’ın ‘LabelEncoder’ sınıfını kullanabiliriz. Kendi modelimizi oluşturmak için bu dönüştürmeyi yapmamız önemlidir:

from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
y_encoded = label_encoder.fit_transform(y)

Model Oluşturma ve Eğitme

Artık verilerimizi hazırladığımıza göre, yapay sinir ağımızı oluşturma zamanıdır. Keras kütüphanesini kullanarak, basit bir model oluşturacağız. Modelimiz, bir giriş katmanı, bir gizli katman ve bir çıkış katmanından oluşacak:

model = keras.Sequential()
model.add(layers.Dense(10, activation='relu', input_shape=(4,)))
model.add(layers.Dense(3, activation='softmax'))

Burada ilk katman, 10 nörona sahip ve ‘relu’ aktivasyon fonksiyonunu kullanırken, ikinci katman üç nöron ile çıktı sağlamakta ve ‘softmax’ aktivasyon fonksiyonu ile çalışmaktadır. Modelimizi derlemek için, ‘adam’ optimizasyon algoritması ve ‘sparse_categorical_crossentropy’ kaybı kullanacağız:

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Eğitim için modelimizi bir giriş ve çıkış ile eğitebiliriz. Eğitim verilerimizin %80’ini eğitim için kullanarak, %20’si ile test edeceğiz:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y_encoded, test_size=0.2, random_state=42)
model.fit(X_train, y_train, epochs=100, batch_size=5, validation_data=(X_test, y_test))

Model Performansı ve Tahminler

Modelimizi eğittikten sonra, test verilerimiz üzerindeki performansını değerlendirmeliyiz. Keras kütüphanesi, modelimizin doğruluğunu hızlı bir şekilde görmek için kolay bir yol sunmaktadır:

loss, accuracy = model.evaluate(X_test, y_test)
print(f'Test Doğruluğu: {accuracy:.2f}')

Doğruluk oranını hesapladıktan sonra, modelimizin başarı düzeyini elde ederiz. Ayrıca, yeni örnekler üzerinde tahminler yapmak için modelimizi kullanabiliriz. Aşağıdaki kod ile yeni veriler üzerinde tahmin yapabilirsiniz:

new_samples = [[5.1, 3.5, 1.4, 0.2], [6.0, 3.0, 4.8, 1.8]]
predictions = model.predict(new_samples)
predicted_classes = np.argmax(predictions, axis=1)
predicted_labels = label_encoder.inverse_transform(predicted_classes)
print(predicted_labels)

Sonuç

Bu yazıda, Python kullanarak basit bir yapay sinir ağı oluşturma sürecini keşfettik. NumPy, Pandas, TensorFlow ve Keras kütüphanelerinin faydalarını ele alarak, bir model oluşturmayı ve eğitmeyi gösterdik. Yapay sinir ağları ile ilgili temel kavramları anlamak, karmaşık öğrenme süreçlerini uygulamak için önemlidir.

Yapay sinir ağları, makine öğrenimi alanında önemli bir yere sahiptir ve Python ile bu süreçleri gerçekleştirmek oldukça kolaydır. Kendi projelerinizde bu bilgileri kullanarak daha gelişmiş sinir ağları ve uygulamaları tasarlayabilirsiniz.

Unutmayın ki, her yeni öğrenim deneyimi, teknolojiye olan tutkularınızı ve becerilerinizi geliştirir. Kendi yapay sinir ağınızı oluşturarak, bu alanda daha derinlemesine bilgi sahibi olabilir ve projelerinizi ileri taşımak için ilham alabilirsiniz.

Scroll to Top