Yapay Zeka ile Kalp Krizi Teşhisi Part 1 - Matlab

Merhaba Arkadaşlar,

Çok uzun zamandır herhangi bir yazı paylaşamadım. Malum üniversitenin son dönemleri tasarım ve bitirme projeleri derken zaman hızlı geçti. Buna ek olarak birde işe başlamak araya girdi. Üniversite zamanlarımda yapmış olduğum ve burada yayımlamadığım bazı çalışmaları buradan paylaşmak istiyorum. Bir abimin de dediği gibi "Bilginin zekatını vermek gerekir". Ayrıca her çalışmamda "Bilgi paylaştıkça çoğalır" görüşünü benimsediğim için ekstra bir yazma ihtiyacı hissettim. Teknik konularda Türkçe kaynak bulmak oldukça zor. Bu nedenle yapılan çalışmaları da yayımlamak gerektiğini düşünüyorum. Lafı fazla uzatmadan parça parça çalışmalarımdan bahsedeceğim. İlk olarak yapay zeka ile alakalı bir konudan başlamak istiyorum. Yaptığım çalışmanın adı "Yapay Zeka ile Kalp Krizi Tespiti".


Günümüzün en büyük sağlık sorunlarından olan kalp hastalıklarının erken tespit edilmesi ve müdahale edilmesi amacıyla bu proje gerçekleştirilmiştir. Projenin tüm adımları bilgisayar ortamında gerçekleştirilmiştir. (Zaman kısıtlamasından dolayı gerçekleme imkanı bulamadım fakat vaktim olduğunda bu konu üzerine çalışacağım.) Yapay sinir ağları daha çok paralel işlemcilerde performans göstermektedir. Çoğu işlemci seri komut işlemektedir. Bu nedenle yapay sinir ağını gerçeklemesi zordur. Bu projenin yapay zeka adımları Matlab ortamında yapılmıştır.

EKG Veri Seti Oluşturma
EKG sinyali üzerinde hayati önem taşıyan birçok önemli parametre mevcuttur. Mutlak doğruluk isteniyorsa tüm bu veriler yapay sinir ağına aktarılmalıdır. Aksi durumda eksik bilgi girildiğinde ağ verimli çalışmaz ve yanlış sonuçlar verebilir. Bunun önüne geçmek amacıyla veri seti çok kapsamlı seçilmiştir. İnternet ortamında üniversitelerin laboratuvarlarında hazırlanan birçok veri seti vardır. İnternet haricinde bu verilere doğrudan hastaneden veya laboratuvarlardan ulaşmak mümkün değildir. Deneylerin yapılabilmesi için bu veriler kişilerden izin alınarak yapılır. Uluslararası birçok okulun laboratuvarında bu veriler mevcuttur. Ancak çoğu veri eksik yada yetersizdir. Bu nedenle verilerin düzenli bir şekilde alınması gerekmektedir. Veriler düzgün alınsa dahi özellik açısından oldukça fazla olmalıdır. Az özellik ile hastalık teşhisi kolay anlaşılamamaktadır. Bu nedenle hem düzenli hem de oldukça fazla veri seçilmelidir. Projede kullanılan EKG verileri UCI Machine Learning Repository veri tabanından alınmıştır. UCI veri tabanında bulunan EKG verileri hem düzenli hem de ayrıntılı bir şekilde düzenlenmiştir.

UCI veri tabanı arayüzü aşağıda gösterilmiştir. Bu veri tabanında bulunan EKG verileri 278 farklı özellik taşımaktadır. Bu nedenle buradan alınan veriler projede kullanılmıştır. Veri tabanında toplam 452 adet farklı EKG örneği mevcuttur. Bunlardan 245 tanesi normal insan verilerine aittir. Geri kalan kısım farklı hastalıkları ifade etmektedir. Proje gereği veri tabanından normal veriler ve kalp krizi verileri alınmıştır.


Veri tabanından alınan normal ve kalp krizi verileri Excel ortamında aşağıdaki gibi düzenlenmiştir. Burada her sütun bir EKG değerini temsil etmektedir. Satırlar ise EKG’deki özellikleri belirtmektedir.


Birinci satırdaki veriler hastaların yaşını, ikinci satırdaki veriler hastaların cinsiyetini (0 ise erkek, 1 ise kadın), üçüncü satırdaki veriler hastaların boyunu ve dördüncü satırdaki veriler ise hastaların kilosunu ifade etmektedir. 


Yapay Sinir Ağı Oluşturma
EKG verileri Excel’de derlenmiştir. Yapay sinir ağı oluşumu için 2 adet girdi ve 2 adet çıktı oluşturulmuştur. Normal şartlarda yapay sinir ağımıza 1 adet girdi ve 1 adet çıktı uygulamamız gerekir. Projede girdi veri setinde 10 adet normal EKG, 10 adet ise kalk krizi geçirmiş EKG verisi vardır. Test girdi setinde ise 5 adet normal EKG, 5 adet ise kalp krizi geçirmiş EKG vardır. Output ve Test Output veri setlerinde ise sağlıklı EKG 1, hastalıklı EKG ise 0 ile ifade edilmiştir. Ancak ağın eğitildikten sonra test edilmesi gerekir. Bunun için yapay sinir ağına 1 adet test girdisi ve 1 adet de test çıktısı eklenmiştir. Yapay sinir ağımız makine öğrenmesi gerçekleştirir. Ayrıca öğretmenli öğrenme gerçekleştirir. Bu nedenle ağa girdi ve çıktılar eklenir. Yapay sinir ağı oluşumu için Excel’deki veriler MATLAB ortamına aktarılır. 


Tüm girdi ve çıktı veri setleri yukarıdaki gibi Matlab'e aktarılır. Daha sonra aşağıdaki görseldeki gibi 4 adet veri setimiz Matlab ortamına aktarılmış olur.


Bu part için şimdilik yazacaklarım bu kadar. Bir sonraki partta kaldığımız yerden devam edeceğiz.

Şimdiden iyi çalışmalar dilerim.

Yorumlar

  1. Guzel bir calisma olmus, matlab disinda bi program ile yapilabilir mi, fortran gibi?

    YanıtlaSil
    Yanıtlar
    1. Yapay zeka tool'ları var mı bilmiyorum? Eğer varsa aynı şeyler orada da yapılabilir.

      Sil
  2. merhaba acaba test girdileriniz için kullandığınız EKG datalarını paylaşabilir misiz?

    YanıtlaSil
  3. Merhabalar,

    EKG dataları için yukarıda görselde nereden aldığımı belirttim. Kolayca ulaşabilirsiniz.

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Basit Bir EKG Nasıl Yapılır?

Digilent BASYS2 7 Segment Kullanımı