folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veri Setini Matlab'a Import Etmek



Veri Setini Matlab'a Import Etmek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    venedikli
    venedikli's avatar
    Kayıt Tarihi: 15/Eylül/2015
    Erkek

    Hocalar selam, epilepsi hastalığı taşıyan 24 tane hastanın anlık EEG beyin sinyallerini içeren bir veri setimiz var.

    Bu veri setini kullanarak hastaların bir dahaki nöbetlerini ne zaman geçireceğini, makine öğrenmesi yaparak tespit-tahmin etmek istiyoruz.

    Lakin bu veri setleri .edf uzantısında ve bir türlü import edemedik.

    Veri setlerini nasıl import edebiliriz veya excel formatına nasıl dönüştürebiliriz?

    Veri Seti: https://physionet.org/physiobank/database/chbmit/

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    selam hocam,

    edf dosyalarini nasil import edersin bir fikrim yok ama eger cözemezsen söyle bir yol izleyebilirsiniz;

    ben döküman analiz dersi aldim ve bazi projelerimiz oldu, kelime tanimayla ilgili dikey ve yatay historgram cikartiyorduk ve bunlari kendimize göre belirli bir featurelar olusturarak kelime tanima yapiyorduk.. sen de benzer bir yapiyla hareket edersen bunlari bir standarta oturtursun. Yani biraz daha acacak olursam, graph in bir satirini ele al ve atiyorum ölcüsü 1000x20 olsun. sen 1000 lik olan uzunlugu 100 parcaya böl böylece elinde 10x20 lik bir matris olacak her bir kolon icin. Ayni sekilde diger graphlari da bu sekilde olusturursan elinde her bir graph icin 10 ar tane 10x20 lik bir veri olacak.. Bunlarin ortalamasini alip belli bir esik degeri vererek normal degerler ve nöbet gecirme aninin ortalamasini bulabilirsin.. 

     

    anlatimim pek aciklayaci olmadiginin farkindayim ama bu konuya bakarsan biraz daha fikir verir https://www.tahribat.com/forum/image-similarity-comparison-algoritmasi-hakkinda-f-205831

    ayrica burayi da okuyabilirsin https://www.tahribat.com/forum/artificial-neural-networks-kullanarak-karakter-ana-206276

    bu sekilde kelime benzerlik oranlarini buluyorduk. Sen de grafiklerin benzerliklerini (normal durum ve nöbet durumunu) bulabilirsin.. Matlab üzerine cok fazla calismadim, basit olmasi acisindan c# ile gitmistik, resimleri pixllere ayirip siyah ve beyaz pixelleri sayman gerekiyor. Tabi öncelikle ilgili resimleri güzelce temizlemen gerek (cesitli algoritmalar var bunlarla ilgili).

     

    kolay gelsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    venedikli
    venedikli's avatar
    Kayıt Tarihi: 15/Eylül/2015
    Erkek
    unbalanced bunu yazdı

    selam hocam,

    edf dosyalarini nasil import edersin bir fikrim yok ama eger cözemezsen söyle bir yol izleyebilirsiniz;

    ben döküman analiz dersi aldim ve bazi projelerimiz oldu, kelime tanimayla ilgili dikey ve yatay historgram cikartiyorduk ve bunlari kendimize göre belirli bir featurelar olusturarak kelime tanima yapiyorduk.. sen de benzer bir yapiyla hareket edersen bunlari bir standarta oturtursun. Yani biraz daha acacak olursam, graph in bir satirini ele al ve atiyorum ölcüsü 1000x20 olsun. sen 1000 lik olan uzunlugu 100 parcaya böl böylece elinde 10x20 lik bir matris olacak her bir kolon icin. Ayni sekilde diger graphlari da bu sekilde olusturursan elinde her bir graph icin 10 ar tane 10x20 lik bir veri olacak.. Bunlarin ortalamasini alip belli bir esik degeri vererek normal degerler ve nöbet gecirme aninin ortalamasini bulabilirsin.. 

     

    anlatimim pek aciklayaci olmadiginin farkindayim ama bu konuya bakarsan biraz daha fikir verir https://www.tahribat.com/forum/image-similarity-comparison-algoritmasi-hakkinda-f-205831

    ayrica burayi da okuyabilirsin https://www.tahribat.com/forum/artificial-neural-networks-kullanarak-karakter-ana-206276

    bu sekilde kelime benzerlik oranlarini buluyorduk. Sen de grafiklerin benzerliklerini (normal durum ve nöbet durumunu) bulabilirsin.. Matlab üzerine cok fazla calismadim, basit olmasi acisindan c# ile gitmistik, resimleri pixllere ayirip siyah ve beyaz pixelleri sayman gerekiyor. Tabi öncelikle ilgili resimleri güzelce temizlemen gerek (cesitli algoritmalar var bunlarla ilgili).

     

    kolay gelsin

    eyvallah hocam teşekkür ederim anlatmak istediğinin mantığını kavradım lakin burada nöbet geçirme zamanını saptayabilmek için kullanacağımız algoritma, önceki nöbet geçirme sürelerinin ortalamasını alarak ulaşabileceğimiz bi şey olmayacak.  Daha önce kullanılmış algoritmaları geliştirmeyi deneyeceğiz veya kendimiz algoritma oluşturmaya çalışacağız önceki ve sonraki sinyalleri takip edeceğiz

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ben tip alanina cok yakin degilim hocam (tip elektronigi okumadigim icin kiziyorum kendime aslinda...).. Ancak benim anladigim kadariyla bu nöbetlerin olusumunda verdigin grafikler belli bir sekilde degisiyor. Eger siz bu degisim zamanini biliyorsaniz, o zamana ait grafik cizimleri icin bir algoritma gelistirebilirsiniz. Söyle ki öncelikle tüm grafigin yukarida bahsettigim gibi dikey ve yatay histogramlari cikarilir ve bunlarin feature larina göre gruplandirilir. Daha sonra nöbetin oldugu anin kisimlari alinir ve bunlar da gruplandirilir, daha sonra nöbetin olmadigi anlar da gruplandirilir.. 

    Böylece elinizde nöbet oldugunda ve nöbet olmadigindaki gruplamalar var, bunlarin farkini bulabilirsiniz. Tabi bunlari daha spesifik yapmak icin daha fazla veri setiyle calismak gerek. Ortalamaya yakin bir gruplandirmaniz oldugunda, nöbet gecirmeden önce nöbete yaklasincaki grup bulunabilir. 

    Yukarida söylemedim ama söyle basitce bir örnek vereyim.. Uzun bir eeg sinyaliniz olsun ve bunlarin histogramlarini alip bir kac özellige göre gruplandirdiniz. Mesela grubumuz söyle olsun; toplamda 15-20 arasi siyah pixel varsa ve pixellerin cogu ortadaki 5 satirda ise bu bizim ortalama grubumuz olsun. Nöbet gecirildiginde toplam siyah pixel sayisi 30 dan fazla ise ve bu pixellerin cogu en üstteki 5 satida ise (sinyaller yukariya dogru firlamis mesela benim örnegimde) o zaman anlarim ki bu nöbet anidir. Nöbet gecirmeden önceki zamanin grubuna bakalim, orada da mesela 25 civari pixel var ve pixellerin cogu orta segmentten yukariya dogru yavas yavas cogalmakta ise bu nöbetin geleceginin habercisidir. Nöbet bitimi icin de bir grup yaparsak, nöbet aninda 30 dan fazla pixel vardi ve nöbet bitince bu pixel sayisi üst taraftan asagi dogru kaymakta yani orta segmentte pixeller artmakta yani üstten asagiya dogru pixel sayisi artiyorsa nöbet bitmis demektir (nöbet gelecegi sirada asigdan yukariya dogru bir pixel artisi oluyordu burda tam tersi yukaridan asagiya pixel artisi oluyor)

    not: pixellerden kastim siyah renkli olan pixellerin sayisi.

     

    Ben anlatimim icin üzgünüm hocam bu sekilde pek anlatma yetenegim yok :) Ama benim söyledigim mantik temel obje tanima yöntemidir. Pixellere ayirarak bunlari featureslere göre gruplandirmak gerekiyor. Benim anlattigim kisim burada daha iyi görsel olarak aciklaniyor https://docs.opencv.org/3.3.0/d7/d8b/tutorial_py_face_detection.html (featuresleri cikarma ile ilgili). Burada kendinize göre bir algoritma yapiyorsunuz (benim yukarida söyledigim belli alanlarda 15-20 pixel, 25 pixel, 30 pixel.. gibi) bu da onu tanimliyor. Tabi ki birden fazla features cikarirsan bu tanima sansini arttirir ama bunun icin de belki yüzbinlerde data setine ihtiyaciniz olacak. O zaman daha spesifik bir ayrim yapabilirsiniz. Mesela bir sinyalin 20pixel yüksekliginde oldugunu varsayarsak, elinizdeki 100 binlerce veritesinden 1. satirda kac siyah nokta, 2. satirda kac siyah nokta olmasinin ortalamasini bulabilirsiniz. 24 tane veri seti cok büyük bir sayi degil ama yine de bir seyler cikarabilirsiniz.

    Ayrica birol kuyumcu'nun bu konuyla ilgili yazilmis bir kitabi var http://www.kitapyurdu.com/kitap/opencv-goruntu-isleme-ve-yapay-ogrenme/376463.html&filter_name=Birol%20Kuyumcu

    kendisinden cok sey ögrendim. Bir blogu da var, http://derindelimavi.blogspot.ch/ buradaki makalelerden de faydalanabilirsin hatta kendisiyle iletisime de gecebilirsin. Bildim bileli bu isle ugrasiyor. 

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    venedikli
    venedikli's avatar
    Kayıt Tarihi: 15/Eylül/2015
    Erkek
    unbalanced bunu yazdı

    ben tip alanina cok yakin degilim hocam (tip elektronigi okumadigim icin kiziyorum kendime aslinda...).. Ancak benim anladigim kadariyla bu nöbetlerin olusumunda verdigin grafikler belli bir sekilde degisiyor. Eger siz bu degisim zamanini biliyorsaniz, o zamana ait grafik cizimleri icin bir algoritma gelistirebilirsiniz. Söyle ki öncelikle tüm grafigin yukarida bahsettigim gibi dikey ve yatay histogramlari cikarilir ve bunlarin feature larina göre gruplandirilir. Daha sonra nöbetin oldugu anin kisimlari alinir ve bunlar da gruplandirilir, daha sonra nöbetin olmadigi anlar da gruplandirilir.. 

    Böylece elinizde nöbet oldugunda ve nöbet olmadigindaki gruplamalar var, bunlarin farkini bulabilirsiniz. Tabi bunlari daha spesifik yapmak icin daha fazla veri setiyle calismak gerek. Ortalamaya yakin bir gruplandirmaniz oldugunda, nöbet gecirmeden önce nöbete yaklasincaki grup bulunabilir. 

    Yukarida söylemedim ama söyle basitce bir örnek vereyim.. Uzun bir eeg sinyaliniz olsun ve bunlarin histogramlarini alip bir kac özellige göre gruplandirdiniz. Mesela grubumuz söyle olsun; toplamda 15-20 arasi siyah pixel varsa ve pixellerin cogu ortadaki 5 satirda ise bu bizim ortalama grubumuz olsun. Nöbet gecirildiginde toplam siyah pixel sayisi 30 dan fazla ise ve bu pixellerin cogu en üstteki 5 satida ise (sinyaller yukariya dogru firlamis mesela benim örnegimde) o zaman anlarim ki bu nöbet anidir. Nöbet gecirmeden önceki zamanin grubuna bakalim, orada da mesela 25 civari pixel var ve pixellerin cogu orta segmentten yukariya dogru yavas yavas cogalmakta ise bu nöbetin geleceginin habercisidir. Nöbet bitimi icin de bir grup yaparsak, nöbet aninda 30 dan fazla pixel vardi ve nöbet bitince bu pixel sayisi üst taraftan asagi dogru kaymakta yani orta segmentte pixeller artmakta yani üstten asagiya dogru pixel sayisi artiyorsa nöbet bitmis demektir (nöbet gelecegi sirada asigdan yukariya dogru bir pixel artisi oluyordu burda tam tersi yukaridan asagiya pixel artisi oluyor)

    not: pixellerden kastim siyah renkli olan pixellerin sayisi.

     

    Ben anlatimim icin üzgünüm hocam bu sekilde pek anlatma yetenegim yok :) Ama benim söyledigim mantik temel obje tanima yöntemidir. Pixellere ayirarak bunlari featureslere göre gruplandirmak gerekiyor. Benim anlattigim kisim burada daha iyi görsel olarak aciklaniyor https://docs.opencv.org/3.3.0/d7/d8b/tutorial_py_face_detection.html (featuresleri cikarma ile ilgili). Burada kendinize göre bir algoritma yapiyorsunuz (benim yukarida söyledigim belli alanlarda 15-20 pixel, 25 pixel, 30 pixel.. gibi) bu da onu tanimliyor. Tabi ki birden fazla features cikarirsan bu tanima sansini arttirir ama bunun icin de belki yüzbinlerde data setine ihtiyaciniz olacak. O zaman daha spesifik bir ayrim yapabilirsiniz. Mesela bir sinyalin 20pixel yüksekliginde oldugunu varsayarsak, elinizdeki 100 binlerce veritesinden 1. satirda kac siyah nokta, 2. satirda kac siyah nokta olmasinin ortalamasini bulabilirsiniz. 24 tane veri seti cok büyük bir sayi degil ama yine de bir seyler cikarabilirsiniz.

    Ayrica birol kuyumcu'nun bu konuyla ilgili yazilmis bir kitabi var http://www.kitapyurdu.com/kitap/opencv-goruntu-isleme-ve-yapay-ogrenme/376463.html&filter_name=Birol%20Kuyumcu

    kendisinden cok sey ögrendim. Bir blogu da var, http://derindelimavi.blogspot.ch/ buradaki makalelerden de faydalanabilirsin hatta kendisiyle iletisime de gecebilirsin. Bildim bileli bu isle ugrasiyor. 

     

    veri setimiz geniş hocam 24 hastanın, kafanın 23 ayrı yerinden alınan sinyalleri var her sinyal de giriş ve çıkış için ayrı izleniyor. yani 24*23*2 tane sinyalimiz var ortalama. uzunluklarıda 1 saat ve saniyede 5 kere örnekleniyorlar. 

    anlattığın yöntem daha çok görüntü işleme ve örüntü tanımaya yakın. lakin bizim veri setlerimiz içinde sinyal çizili olarak var mı göremiyoruz çünkü edf dosyasını açamıyoruz. söylediğin işlemleri yapabilmek için bütün bu sinyallerin grafiği olması lazım. bizim elimizde grafik yok. edf dosyalarını açabilirsek her şey netleşicek. 

    edf dosyalarının içeriğinde sadece kanallardan gelen sinyallerin değerleri (feature ve label'lar) olsa bile işimizi görür. O veriler üzerinden makine öğrenmesi uygulayabiliriz.

    https://physionet.org/physiobank/database/chbmit/chb01/chb01_01.edf örneğin bu 1. hastanın ilk 1 saatlik eeg verileri. içeriğini açabilirsek sonuca ulaşabiliriz.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    Şimdi dostum datanın çıktısını bilmediğim için doğru okuyup okumadıgını bilemeyeceğim. Zira sana attığım iki konudakinin sadece ikincisi yüklü bir data döndürdü. Sanırım boyut büyük oldugu için okumakta zorlanıyor.

    Matlabta pek mahir olmasamda bir kaç sonuç elde ettim. Umarım işini görür.

    http://www.mathworks.com/matlabcentral/fileexchange/38641-reading-and-saving-of-data-in-the-edf+

    Aşağıdaki linkteki fonksiyonları çalışma dosyana kaydet. Sonrasında data dosyalarınıda bu klasör içine koy.

    Aşağıdaki gibi okuyabilirsin.

    Dediğin gibi 23 sutunlu bir data çıkıyor. Örnek olarak plot ettim birini. Filmlerde gördüğümüz grafiklere benzer birşey çıktı sanırım dogru yaptım.

    Hayırlı bilimler efenim.

    1234567B tarafından 02/Ara/17 16:39 tarihinde düzenlenmiştir

    arbeit macht frei
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    venedikli
    venedikli's avatar
    Kayıt Tarihi: 15/Eylül/2015
    Erkek
    1234567B bunu yazdı

    Şimdi dostum datanın çıktısını bilmediğim için doğru okuyup okumadıgını bilemeyeceğim. Zira sana attığım iki konudakinin sadece ikincisi yüklü bir data döndürdü. Sanırım boyut büyük oldugu için okumakta zorlanıyor.

    Matlabta pek mahir olmasamda bir kaç sonuç elde ettim. Umarım işini görür.

    http://www.mathworks.com/matlabcentral/fileexchange/38641-reading-and-saving-of-data-in-the-edf+

    Aşağıdaki linkteki fonksiyonları çalışma dosyana kaydet. Sonrasında data dosyalarınıda bu klasör içine koy.

    Aşağıdaki gibi okuyabilirsin.

    Dediğin gibi 23 sutunlu bir data çıkıyor. Örnek olarak plot ettim birini. Filmlerde gördüğümüz grafiklere benzer birşey çıktı sanırım dogru yaptım.

    Hayırlı bilimler efenim.

    çok teşekkürler efenim ilerlediğimiz sonuçları da buraya aşama aşama kaydetmeyi düşünüyorum. elleriniz dert görmesin

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bulusma Fatihi
    samato
    samato's avatar
    Kayıt Tarihi: 31/Mayıs/2007
    Erkek

    süper hocam aşamaları koyarsan valla.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    Benzer senaryoda bende EMG kaydı için sinyal analizi yapmak istiyorum. Daha önce matlab-sinyal analizi-emg falan uğraşan varsa haberleşebiliriz. Akademik çalışma, yayında adınız olabilir :D


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
Toplam Hit: 2131 Toplam Mesaj: 10
matlab dataset