ALERJİ TESTİ VERİLERİNİ KULLANARAK BİR YAPAY ZEKA MODELİ GELİŞTİRMEK
Kaya Ridvan
ALERJİ TESTİ VERİLERİNİ KULLANARAK BİR YAPAY ZEKA MODELİ GELİŞTİRMEK
ALERJÝ TESTÝ VERÝLERÝNÝ KULLANARAK BÝR YAPAY ZEKA MODELÝ GELÝÞTÝRMEK
import tensorflow as tf
from tensorflow import keras
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv("alerji_testi.csv")
data.head()
X = data.drop("alerji", axis=1)
y = data["alerji"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = keras.Sequential([
keras.layers.Dense(5, input_shape=(5,)),
keras.layers.Dense(16, activation="relu"),
keras.layers.Dense(1, activation="sigmoid")
])
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])
model.fit(X_train, y_train, epochs=10, batch_size=32)
# Tahminleri doðrudan ham olasýlýklar olarak alýn
predictions = (model.predict(X_test) > 0.5).astype("int32")
# Sýnýflandýrma raporu
cr = classification_report(y_test, predictions)
print(cr)
# Karýþýklýk matrisi
cm = confusion_matrix(y_test, predictions)
sns.heatmap(cm, annot=True, fmt="d")
plt.xlabel("Tahmin Edilen")
plt.ylabel("Gerçek")
plt.show()
# Diðer metrikleri hesapla
loss, accuracy = model.evaluate(X_test, y_test)
print("Loss:", loss)
print("Accuracy:", accuracy)
#Yazan Rýdvan Kaya
Bu kod, alerji testi verilerini kullanarak bir yapay sinir aðý modeli oluþturmak ve test etmek için yazýlmýþtýr. Kodun yaptýðý iþlemleri adým adým açýklamaya çalýþacaðým:
- Ýlk olarak, gerekli kütüphaneleri içe aktarýyoruz. "TensorFlow" ve "Keras", yapay sinir aðlarý oluþturmak ve eðitmek için kullanýlan popüler Python kütüphaneleridir. "Scikit-learn", veri bölme, model deðerlendirme ve metrik hesaplama gibi makine öðrenimi görevleri için kullanýlan bir Python kütüphanesidir. "Pandas", veri manipülasyonu ve analizi için kullanýlan bir Python kütüphanesidir. "NumPy", bilimsel hesaplama için kullanýlan bir Python kütüphanesidir. "Matplotlib" ve "Seaborn", veri görselleþtirme için kullanýlan Python kütüphaneleridir.
- Sonra, alerji testi verilerini bir CSV dosyasýndan okuyoruz ve ilk beþ satýrýný görüntülüyoruz. Bu veri seti, beþ girdi özelliði ("yaþ, cinsiyet, kilo, boy, kan grubu") ve bir çýktý etiketi (’alerji") içerir. Alerji, 0 veya 1 olarak kodlanmýþtýr. 0, alerjisi olmayan kiþileri, 1 ise alerjisi olan kiþileri temsil eder.
- Daha sonra, veri setini girdi ve çýktý olarak ayýrýyoruz. Girdi, "X" deðiþkenine, çýktý ise "y" deðiþkenine atanýr. Alerji sütununu veri setinden çýkarýyoruz, çünkü bu bizim tahmin etmek istediðimiz etiketimizdir.
- Ardýndan, veri setini eðitim ve test olarak ikiye bölüyoruz. Eðitim verileri, modeli eðitmek için kullanýlýr. Test verileri ise modelin performansýný deðerlendirmek için kullanýlýr. Test verilerinin boyutunu %20 olarak belirliyoruz ve rastgele durumu 42 olarak ayarlýyoruz. Bu, veri bölümünün her seferinde ayný olmasýný saðlar.
- Sonra, yapay sinir aðý modelimizi oluþturuyoruz. Modelimiz, üç katmandan oluþur. Ýlk katman, girdi katmanýdýr ve beþ nöron içerir. Girdi katmaný, veri setimizdeki beþ özelliði alýr. Ýkinci katman, gizli katmandýr ve 16 nöron içerir. Gizli katman, girdi katmanýndan gelen bilgileri iþler ve aktivasyon fonksiyonu olarak "relu" kullanýr. Relu, doðrusal olmayan bir fonksiyondur ve nöronun çýktýsýný sýfýr veya pozitif olarak belirler. Üçüncü katman, çýktý katmanýdýr ve bir nöron içerir. Çýktý katmaný, modelin tahminini üretir ve aktivasyon fonksiyonu olarak "sigmoid" kullanýr. Sigmoid, 0 ile 1 arasýnda bir deðer döndüren bir fonksiyondur. Bu deðer, alerji olasýlýðýný temsil eder.
- Daha sonra, modelimizi derliyoruz. Derleme, modelin nasýl eðitileceðini ve deðerlendirileceðini belirler. Kayýp fonksiyonu olarak "binary_crossentropy" kullanýyoruz. Binary_crossentropy, ikili sýnýflandýrma problemleri için uygun bir kayýp fonksiyonudur ve modelin tahminleri ile gerçek etiketler arasýndaki farký ölçer. Optimizasyon algoritmasý olarak "adam" kullanýyoruz. Adam, modelin aðýrlýklarýný güncellemek için kullanýlan etkili bir optimizasyon algoritmasýdýr. Metrik olarak "accuracy" kullanýyoruz. Accuracy, modelin doðru tahmin ettiði örneklerin yüzdesini verir.
- Ardýndan, modelimizi eðitiyoruz. Eðitim, modelin verilerden öðrenmesini saðlar. Eðitim verilerini ve etiketlerini modelimize veriyoruz. Epoch sayýsýný 10 olarak belirliyoruz. Epoch, veri setinin tamamýnýn model tarafýndan kaç kez iþlendiðini gösterir. Küme boyutunu 32 olarak belirliyoruz. Küme boyutu, modelin her adýmda kaç örnek aldýðýný gösterir.
- Sonra, modelimizi test ediyoruz. Test, modelin görmediði veriler üzerinde nasýl performans gösterdiðini ölçer. Test verilerini modelimize veriyoruz ve tahminleri alýyoruz. Tahminleri doðrudan ham olasýlýklar olarak alýyoruz ve 0.5’ten büyük olanlarý 1, küçük olanlarý 0 olarak kodluyoruz. Bu þekilde, tahminleri ikili etiketlere dönüþtürmüþ oluyoruz.
- Daha sonra, modelimizin performansýný deðerlendiriyoruz. Modelimizin performansýný deðerlendirmek için çeþitli metrikler kullanýyoruz. Bunlardan bazýlarý þunlardýr:
- Sýnýflandýrma raporu: Bu rapor, modelin her sýnýf için doðruluk, hassasiyet, hatýrlama ve F1 skoru gibi metrikleri verir. Doðruluk, modelin doðru tahmin ettiði örneklerin yüzdesidir. Hassasiyet, modelin bir sýnýfý doðru tahmin etme olasýlýðýdýr. Hatýrlama, modelin bir sýnýfý kaçýrmadan tahmin etme olasýlýðýdýr. F1 skoru, hassasiyet ve hatýrlamanýn harmonik ortalamasýdýr. Sýnýflandýrma raporunu ekrana yazdýrýyoruz.
- Karýþýklýk matrisi: Bu matris, modelin her sýnýf için doðru ve yanlýþ tahminlerini gösterir. Karýþýklýk matrisini bir ýsý haritasý olarak çiziyoruz ve deðerleri gösteriyoruz. X ekseni tahmin edilen sýnýflarý, Y ekseni ise gerçek sýnýflarý temsil eder. Matrisin köþegeni doðru tahminleri, diðer hücreler ise yanlýþ tahminleri gösterir. Karýþýklýk matrisini göstermek için bir grafik penceresi açýyoruz.
- Diðer metrikler: Modelimizin kaybýný ve doðruluðunu hesaplýyoruz. Kayýp, modelin tahminleri ile gerçek etiketler arasýndaki farký ölçer. Doðruluk, modelin doðru tahmin ettiði örneklerin yüzdesini verir. Kayýp ve doðruluðu ekrana yazdýrýyoruz.
Bu kod, Python dilinde yazýlmýþ bir kod parçasýdýr. Python, popüler ve güçlü bir programlama dilidir. Bu kodu çalýþtýrmak için, birkaç yöntem vardýr. Bunlardan bazýlarý þunlardýr:
- Komut satýrý veya terminal kullanarak: Bu yöntem, iþletim sisteminizin komut satýrý veya terminalini açmanýzý ve python komutunu kodunuzun adýyla birlikte yazmanýzý gerektirir. Örneðin, kodunuz hello.py adlý bir dosyada ise, þöyle yazabilirsiniz:
python hello.py
Bu komut, Python yorumlayýcýsýna kodunuzu çalýþtýrmasýný söyler. Kodunuzun .py uzantýsýna sahip olduðundan emin olun.
- Etkileþimli modda kullanarak: Bu yöntem, Python yorumlayýcýsýný etkileþimli modda baþlatmanýzý ve kodunuzu doðrudan yazmanýzý gerektirir. Etkileþimli modda, kodunuzu parça parça yazabilir ve sonuçlarýný anýnda görebilirsiniz. Etkileþimli modu baþlatmak için, komut satýrýnda veya terminalde python yazmanýz yeterlidir.
- Bir IDE veya kod editörü kullanarak: Bu yöntem, Python ile uyumlu bir IDE (Entegre Geliþtirme Ortamý) veya kod editörü kullanmanýzý gerektirir. IDE veya kod editörü, kodunuzu yazmanýzý, çalýþtýrmanýzý, test etmenizi ve hata ayýklamanýzý kolaylaþtýran araçlar sunar. Python için popüler IDE ve kod editörleri arasýnda PyCharm, Visual Studio Code, Spyder, Sublime Text ve daha birçoklarý bulunmaktadýr.
- Bir dosya yöneticisi kullanarak: Bu yöntem, iþletim sisteminizin dosya yöneticisini kullanmanýzý ve kodunuzu içeren dosyayý çift týklamanýzý gerektirir. Bu þekilde, kodunuz varsayýlan Python yorumlayýcýsý tarafýndan çalýþtýrýlýr.
Sosyal Medyada Paylaşın:
(c) Bu şiirin her türlü telif hakkı şairin kendisine ve/veya temsilcilerine aittir.