www.aliosmangokcan.com

Bu çalışmada güneş radyasyon verileri kullanarak yapay sinir ağları (YSA) ile tahmin gerçekleştirilmiştir. Uygulama Matlab araçlarından “nntool” aracılığıyla yapılmıştır.

1.GÜNEŞ RADYASYON VERİ SETİ [1]:

Kullanılan veri seti, HI-SEAS hava istasyonundan Mission IV ve Mission V bölgeri arasındaki ve 31.12.2016 tarihine ait verilerden oluşmaktadır. Yılın son gününe ait 300sn aralıklarla oluşturulmuş bu veri setinde basınç, nem, rüzgâr açısı ve rüzgâr hızı verileri yer almaktadır.  Veri setinin özellikleri Tablo1’de görülmektedir:

Özellik

Birimi

Güneş Radyasonu

Metre başına watt2

Sıcaklık

Fayrenayt

Basınç

Yüzde

Nem

Hg

Rüzgâr Açısı

Derece

Rüzgâr Hızı

Saatte Mil

Tablo 1: Veri Seti Özellikleri


2.UYGULAMA:

Veri setimiz 288x6 ölçülerine sahiptir. Bu verinin %15’i rasgele seçilmiş ve yapay sinir ağını test etmek için ayrılmıştır. Matlab yapay sinir ağı aracı satır matisine göre işlem yaptığı için oluşturulan veri matrislerinin tersi (transpose) alınmıştır. Matlab worskspace’deki son durum Şekil 1’de gösterilmiştir.

Şekil 1: Giriş, Hedef, Test Giriş ve Test Hedef Matrisleri

Verilerin yüklenmesinden sonra nntol açılır ve yukarıda belirlenmiş olan veriler bu yapay sinir ağı aracına tanıtılır. Şekil 2’deki Input Data bölümünde “Girdi” ve “Testgirdi” isimli giriş değerlerimiz, Target Data bölümünde “Hedef” ve “Test Hedef” değerlerimiz görülmektedir. Network kısmında en iyi sonucu bulmak için çeşitli kombinasyonlarda oluşturulan YSA modelleri listelenmiştir. Test sonuç verileri Output Data, hatalar ise Error Data bölümünde yer almaktadır. Bu veriler istenirse Export seçeneği ile daha sonra kullanılmak üzere kayıt altına alınabilir.

 Şekil 2: Nntol Veri Yönetim Ekranı

Şekil 3’de oluşturulan sinir ağına ait özellikler görülmektedir. Burada giriş ve hedef veriler belirtildikten sonra eğitim fonksiyonu, öğrenme fonksiyonu, performans fonksiyonu, katman sayısı, nöron sayısı ve transfer fonksiyonunu değiştirerek en iyi sonucu elde edilebilmektedir.

Şekil 3: YSA Oluşturma Ekranı

Oluşturulan YSA’nın eğitilmesine ait görüntüsü Şekil 4’de yer almaktadır. Şekil 4’ün üst kısmında 5 giriş, 1 çıkış ve 100 nöronlu ara katmanı olan YSA yapısı görülmektedir. Bu YSA’ya ait özellikler aşağıdaki gibidir:

  1. Yapay sinir ağımızda verileri bölümlendirirken rasgele indeksler kullanarak 3 sete bölen “dividerand” algoritması kullanılmıştır.
  2. Sinir ağının eğitiminde ise “trainscg” yani ölçekli eşlenik gradyan geri yayılım algoritması kullanılmıştır.
  3. Performans hesabında sinir ağındaki her bir çıkış-hedef eleman çiftinin değeri Cross-Entropy = -t .* log(y)  formülü ile hesaplanarak bulunmuştur[2].

Şekil 4: YSA Eğitim Ekranı

 3.SONUÇLAR:

Şekil 4’e bakıldığında eğitimin doğrulama kontrol sayısı üst sınırı olan 50 değerine ulaştığı için bittiği görülmektedir. Eğitim bittiği anda ağımızın 58.iterasyonda, performans değerinin 0,066 ve veri değişim oranın 0,673 olduğu görülmektedir.

Şekil 5: Tahmin Sonuçları

Şekil 5’de ağımızın eğitim, doğrulama ve test verileri üzerindeki tahmin başarısı ile toplam başarı oranı görülmektedir. Buna göre yapay sinir ağımızın toplam başarısı %87,32 tür. Bu sonuç Şekil 3’e ait açıklamalarda da belirtilen fonksiyonlar ve diğer parametreleri değiştirerek yapılan diğer ağ modelleri arasında elde edilmiş en iyi sonuçtur. 

 Şekil 6: Eğitim Performansı             

         

Şekil 7: Test Çıktısı-Tahmin Çıktısı Grafiği  

     

Şekil 6’daki eğitim performansı grafiğinde eğitim, doğrulama ve test verilerinin tahmininde YSA’ya ait en iyi sonucun 8 iterasyonda elde edildiği görülmüştür. Burada x ekseni iterasyon sayısını gösteriyorken y ekseni MSE değerini göstermektedir.

MSE bir ağ performansı fonksiyonudur ve ağın performansını, kare ortalamalarının hatalarına göre ölçer.

Şekil 7’de ise ağın test verilerinin çıktısı (turuncu çizgi) ile ağımıza ait çıktının (mavi çizgi) karşılaştırılması yer almaktadır. Test verilerimizin az olmasından kaynaklı bazı bölgelerde uyumsuzluk görülmektedir.  Doğru sayıda veri seti ile daha uyumlu bir sonuç elde edilecektir. 

NOT: Burada yaptığım paylaşımlar, matlab araçlarını öğrenme aşamasında yaptığım çalışmalardır. Herhangi bir iddaası yoktur. Paylaşımlardaki birincil maksat: benim gibi öğrenme yolunda olanlara fikir verme, bilime minik de olsa katkıda bulunmaktır. Anlayışınız ve ilginiz için teşekkür ederim. Ali Osman Gökcan ;-)

 

KAYNAKLAR

[1]  Data Set: https://www.kaggle.com/dronio/SolarEnergy

[2] Matlab Help

 

--->>>Matlab Optimtool Toolbox ile Genetik Algoritma Örneği için TIKLAYINIZ <<<---

 --->>>Matlab Fuzzy Logic Toolbox ile Tahmin Örneği için TIKLAYINIZ <<<---

 --->>>C++ ile Geri Yayılım Algoritması Örneği için TIKLAYINIZ <<<---

 --->>>C++ ile Makine Öğrenmesi KNN algoritması Örneği için TIKLAYINIZ <<<---

ysa, matlab, 'matlab ysa', 'yapay sinir ağları', 'ysa ile güneş radyasyon tahmini', 'ysa ile tahmin', 'matlab nntool', 'nntool toolbox regression', 'matlab nnttol regresyon örneği', 'matlab ysa uygulamaları', 'nntool ysa uygulaması', 'artificial neural networks', 'matlab nntool ysa uygulaması', 'matlab uygulamaları', 'ysa uygulamaları', 'yapay sinir ağı uygulamaları', 'Ali Osman Gökcan', 'Ali Osman Hoca', 'Ali Osman','ali osman matlab', 'güneş radyasyon verileri tahmin', 'nntool ile regresyon', 'nntool toolbox regression', 'matlab regression example', 'ali osman gökcan matlab', 'güneş radyasyon tahmini'