Şimdi Ara

Yapay Sinir Ağları ile Tahmin İşlemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
28
Cevap
3
Favori
4.236
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
2 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhaba arkadaşlar. Yapay sinir ağları ile tahmin etme üzerine bir projemiz var. Elimizde 14000 değerden oluşan bir zaman serimiz var. Bir yapay sinir ağı oluşturup, bu ağı zaman serimizin %70 i ile eğitiyoruz. Kalan %30 unu test ediyoruz. Şimdi amacımız elimizdeki zaman serisinin de ötesini tahmin ettirmek. Yani örneğin 14025. değeri tahmin ettirmek istiyoruz. Ancak burada tıkandık.

    MATLAB'ta Neural Network Time Series Toolbox üzerinde çalışıyoruz. Yardımlarınız için şimdiden teşekkürler



  • Merhaba. Ben mühendis değilim, hatta mühendislik öğrencisi de değilim ancak fikrimi sizlerle paylaşmak istedim.

    Eğer 14025'i tahmin etmesini isteseydim, kendim 14025'i nasıl tahmin ederdim onu düşünürdüm.

    14025 tahminine nasıl ulaşırdım, 14025 değerini nasıl bulurdum onu düşünürdüm.

    Belki yardımcı olur.
  • umut_baris kullanıcısına yanıt
    Hocam ardışık olarak tahmin edileceğini düşünüyoruz. Yani 14025 i direk tahmin etmesi mantıksız gibi önce 14001 14002 .... . Gibi ardışık olarak tahmin edip en son 14025 tahmin edilir diye düşünüyoruz ama işte close loop adında bir fonksiyon var bunun parametrelerini kendi problemimize uyarlayamıyoruz.
  • Hocam bu konuda eksi cahillerdenim. Proje hakkında resim falan paylsşırmısınız. Yada bu bir makine mi ? Cehalet
  • Redese kullanıcısına yanıt
    Makine değil hocam MATLAB üzerinde uygulaması bulunan, gerekli adımları takip ettiğinizde size hazır yazılmış kodu veren bir uygulama aslında. Tabi bunun üzerinde birçok düzenleme vs. yapılması gerekiyor.

    MATLAB üzerinde Neural Network Time Series Toolbox adındaki araç üzerinde çalışıyoruz. Zaman serisi excel dosyasında 14 bin satır tek sütun şeklinde bulunuyor. Excel in her hücresinde, bir ağ üzerindeki linkin anlık olarak ölçülmüş internet trafiği değerleri var.

    Bu linkteki 2. adımda bulunan ağ yapılarından Nonlinear AutoRegresive fonksiyonunu kullanıyoruz(NARnet).

    Forumda bu işlere eli değmiş bir hayırsever çıkarsa çok memnun oluruz.




  • quote:

    Orijinalden alıntı: ugurcan709

    Hocam ardışık olarak tahmin edileceğini düşünüyoruz. Yani 14025 i direk tahmin etmesi mantıksız gibi önce 14001 14002 .... . Gibi ardışık olarak tahmin edip en son 14025 tahmin edilir diye düşünüyoruz ama işte close loop adında bir fonksiyon var bunun parametrelerini kendi problemimize uyarlayamıyoruz.

    Ardşık olarak tahmin edeceğini düşünmenizin nedeni nedir hocam? Yapacağınız proje gereği mi böyle?

    14025 değerine çıkmak istiyorsam onu bana sağlayan önceki koşulları (yani değerleri) sağlamam gerekir diye düşünürdüm.

    Sonsuza kadar toplayarak gitmek gibi birşey.
  • quote:

    Orijinalden alıntı: umut_baris

    quote:

    Orijinalden alıntı: ugurcan709

    Hocam ardışık olarak tahmin edileceğini düşünüyoruz. Yani 14025 i direk tahmin etmesi mantıksız gibi önce 14001 14002 .... . Gibi ardışık olarak tahmin edip en son 14025 tahmin edilir diye düşünüyoruz ama işte close loop adında bir fonksiyon var bunun parametrelerini kendi problemimize uyarlayamıyoruz.

    Ardşık olarak tahmin edeceğini düşünmenizin nedeni nedir hocam? Yapacağınız proje gereği mi böyle?

    14025 değerine çıkmak istiyorsam onu bana sağlayan önceki koşulları (yani değerleri) sağlamam gerekir diye düşünürdüm.

    Sonsuza kadar toplayarak gitmek gibi birşey.

    Emin değilim tabi ben de bu konularda çok yeniyim ama şöyle ki fonksiyona y (t) veriyorsunuz size y (t+1) i veriyor. Yani bir sonraki durumu veriyor. Daha başka bir fonksiyon var ama onu kullanamadık uzun boylu tahmin ediyor sanırım ama parametreleri ayarlayamıyoruz henüz.




  • quote:

    Orijinalden alıntı: ugurcan709

    quote:

    Orijinalden alıntı: umut_baris

    quote:

    Orijinalden alıntı: ugurcan709

    Hocam ardışık olarak tahmin edileceğini düşünüyoruz. Yani 14025 i direk tahmin etmesi mantıksız gibi önce 14001 14002 .... . Gibi ardışık olarak tahmin edip en son 14025 tahmin edilir diye düşünüyoruz ama işte close loop adında bir fonksiyon var bunun parametrelerini kendi problemimize uyarlayamıyoruz.

    Ardşık olarak tahmin edeceğini düşünmenizin nedeni nedir hocam? Yapacağınız proje gereği mi böyle?

    14025 değerine çıkmak istiyorsam onu bana sağlayan önceki koşulları (yani değerleri) sağlamam gerekir diye düşünürdüm.

    Sonsuza kadar toplayarak gitmek gibi birşey.

    Emin değilim tabi ben de bu konularda çok yeniyim ama şöyle ki fonksiyona y (t) veriyorsunuz size y (t+1) i veriyor. Yani bir sonraki durumu veriyor. Daha başka bir fonksiyon var ama onu kullanamadık uzun boylu tahmin ediyor sanırım ama parametreleri ayarlayamıyoruz henüz.

    Alıntıları Göster
    Acikcasi yapay sinir aglari ile extrapolation yapmadim. Ancak yapilabilir diye dusunuyorum. Fakat yapay sinir aglari kesinlikle bir interpolation yontemi bunu da unutmamak lazim. Bu konuda biraz bakindim ama detayli arastirilirsa bulunabilir.

    Burada matlab help de biri senle ayni soruyu sormus.

    www.mathworks.com
    forecasting and extrapolation of Time series using neural network algorithm - MATLAB Answers - MATLAB Central
    http://www.mathworks.com/matlabcentral/answers/231148-forecasting-and-extrapolation-of-time-series-using-neural-network-algorithm


    adamin biri de git asagidaki terimleri arat diye cevap vermis. Konuyu acan adam da cevabini onaylamis. Bence yararli bilgiler bulabilirsin sen de aratirsan (ben aratmadim)

    Onun disinda stackoverflow da olmaz mantiksiz denmis. Ancak 2 yontemin birlestirilmesiyle yapilabilir denmis.



    Ve bu makalede de adamin biri yapmis

    http://arxiv.org/pdf/1405.2262.pdf

    Hani bulmussundur bu attiklarimi ama belki bir ihtimal ben yine de yazayim dedim. Derin bir arastirma ile bulunabilirligi var. Bana da "big data" olmaksizin yapay sinir aglari egitimi gerekiyor. Ben de ona bakacagim ilerleyen gunlerde, su an model predictive control ile ugrasiyorum.




  • quote:

    Orijinalden alıntı: Spyxxx

    Acikcasi yapay sinir aglari ile extrapolation yapmadim. Ancak yapilabilir diye dusunuyorum. Fakat yapay sinir aglari kesinlikle bir interpolation yontemi bunu da unutmamak lazim. Bu konuda biraz bakindim ama detayli arastirilirsa bulunabilir.

    Burada matlab help de biri senle ayni soruyu sormus.

    www.mathworks.com
    forecasting and extrapolation of Time series using neural network algorithm - MATLAB Answers - MATLAB Central
    http://www.mathworks.com/matlabcentral/answers/231148-forecasting-and-extrapolation-of-time-series-using-neural-network-algorithm


    adamin biri de git asagidaki terimleri arat diye cevap vermis. Konuyu acan adam da cevabini onaylamis. Bence yararli bilgiler bulabilirsin sen de aratirsan (ben aratmadim)

    Onun disinda stackoverflow da olmaz mantiksiz denmis. Ancak 2 yontemin birlestirilmesiyle yapilabilir denmis.



    Ve bu makalede de adamin biri yapmis

    http://arxiv.org/pdf/1405.2262.pdf

    Hani bulmussundur bu attiklarimi ama belki bir ihtimal ben yine de yazayim dedim. Derin bir arastirma ile bulunabilirligi var. Bana da "big data" olmaksizin yapay sinir aglari egitimi gerekiyor. Ben de ona bakacagim ilerleyen gunlerde, su an model predictive control ile ugrasiyorum.

    Alıntıları Göster
    @Spyxxx dediği gibi extrapolation meselesi.
    Sayın @ugurcan709 un da demediği gibi neyi formüle etmemiz gerektiğini bilmiyoruz...
    Aslında interpolation için yazılan iç formül sınır dışında da çalıştırılabilir. Ama neye ne yazdığımızı bilmemiz gerekmez mi? Örnekler ve yazılmış formüller lütfen... Sadece bencillik değil aynı zamanda foruma katkı..




  • Spyxxx hocam bahsettiğiniz sitedeki çoğu ilgili konuya baktık. Zaten tek bir yardım eden kişi var neredeyse. Greg Heath adında biri profesör sanırım. Ama verdiği cevaplar o kadar genel ki. Konularla ilgili önceden hazırladığı bilgiler var, kim ne sorarsa sorsun hep o sayfalara giden linkleri yönlendiriyor. Açıklamaları çok genel ama çoğu soruya da yanıt veriyor üstü kapalı da olsa. Ancak faydasız olduktan sonra anlamı yok. O sitede benim de bir sorum var yine aynı şekilde pek ihtiyacimiz olan cevabı vermedi malesef.

    Karafetva hocam proje ile ilgili görüntüleri paylaşırım yeterli bilgiye ulaşınca. Yanlış bilgi paylaşmak da istemiyorum şu anki tecrübesizliğimle.

    Interpolasyon gibi Terimleri arastirmam gerek sanırım. Şöyle ki MATLAB ın verdiği kodlarda bunlarla ilgili pek bir bilgi yok yani bizi çözüme ulaştıracak olayın close loop fonksiyonu yada removedelay değeri olduğunu düşünüyoruz. Şu an evde değilim bu aksam gerekli bilgileri paylaşıcam.




  • quote:

    Orijinalden alıntı: ugurcan709

    Spyxxx hocam bahsettiğiniz sitedeki çoğu ilgili konuya baktık. Zaten tek bir yardım eden kişi var neredeyse. Greg Heath adında biri profesör sanırım. Ama verdiği cevaplar o kadar genel ki. Konularla ilgili önceden hazırladığı bilgiler var, kim ne sorarsa sorsun hep o sayfalara giden linkleri yönlendiriyor. Açıklamaları çok genel ama çoğu soruya da yanıt veriyor üstü kapalı da olsa. Ancak faydasız olduktan sonra anlamı yok. O sitede benim de bir sorum var yine aynı şekilde pek ihtiyacimiz olan cevabı vermedi malesef.

    Karafetva hocam proje ile ilgili görüntüleri paylaşırım yeterli bilgiye ulaşınca. Yanlış bilgi paylaşmak da istemiyorum şu anki tecrübesizliğimle.

    Interpolasyon gibi Terimleri arastirmam gerek sanırım. Şöyle ki MATLAB ın verdiği kodlarda bunlarla ilgili pek bir bilgi yok yani bizi çözüme ulaştıracak olayın close loop fonksiyonu yada removedelay değeri olduğunu düşünüyoruz. Şu an evde değilim bu aksam gerekli bilgileri paylaşıcam.
    inter içerisinde manasını extra da dışında manasını taşıyor.

    Mesela bir aralıkla sabitlenmiş formül var ve aralık dışında hata artıyor. inter kısmı uygun aralığı extra da aralık dışına isabet eder.
    İnterpolasyonda doğru orantı ile sonuç hemen bulunur. Ama teknikte doğru orantı neredeyse yoktur onun için interpolasyon kabul ile hesap yapmayı sağlar.

    Tecrübesizlik önemli değil. Dilediğin gibi paylaş. Herkesin eksiği var malum.... Birlikte güçlenelim...




  • quote:

    Orijinalden alıntı: karafetva

    inter içerisinde manasını extra da dışında manasını taşıyor.

    Mesela bir aralıkla sabitlenmiş formül var ve aralık dışında hata artıyor. inter kısmı uygun aralığı extra da aralık dışına isabet eder.
    İnterpolasyonda doğru orantı ile sonuç hemen bulunur. Ama teknikte doğru orantı neredeyse yoktur onun için interpolasyon kabul ile hesap yapmayı sağlar.

    Tecrübesizlik önemli değil. Dilediğin gibi paylaş. Herkesin eksiği var malum.... Birlikte güçlenelim...

    Alıntıları Göster
    Data setin hakkında bilgi verebilme şansın var mı? Yada data setini oluşturmak istediğin model hakkında. Bunlar oluşturacağın YSA yapısını belirleyecektir.




  • quote:

    Orijinalden alıntı: alicavuslu

    Data setin hakkında bilgi verebilme şansın var mı? Yada data setini oluşturmak istediğin model hakkında. Bunlar oluşturacağın YSA yapısını belirleyecektir.

    Alıntıları Göster
    YSA'da 1+2=3, 2+2=4 öğretip 2+3=4.8 cevabını kendinin vermesini bekleriz. Öğretilenin dışına çıkamıyorsa sistem ezber değilmidir ?
  • quote:

    Orijinalden alıntı: Antor

    YSA'da 1+2=3, 2+2=4 öğretip 2+3=4.8 cevabını kendinin vermesini bekleriz. Öğretilenin dışına çıkamıyorsa sistem ezber değilmidir ?

    Alıntıları Göster
    Dediğiniz gibi ezber olmaktadır. Bu nedenle eğitim date setinin çok iyi seçilmesi gerekmektdir.
  • quote:

    Orijinalden alıntı: alicavuslu

    Dediğiniz gibi ezber olmaktadır. Bu nedenle eğitim date setinin çok iyi seçilmesi gerekmektdir.

    Alıntıları Göster
    Öncelikle şunu söylemek istiyorum, yazacaklarımın doğruluğundan emin değilim, sadece birkaç haftalık araştırma sonucunda edindiğim bilgileri vermek istiyorum. Yanlışım varsa bilgilendirin düzelteyim. Amacım, biz türkçe kaynakları yeterince bulamadık, bundan sonra google da aratıp buraya gelenlere az da olsa kendi dilinde anlayacakları bir metin sağlamak.

    Elimdeki "input" adındaki excel dosyasında(Kullanacağımız verisetini Belgeler/MATLAB/ klasörüne atmamız gerekiyor), resimde de göründüğü tipte devam eden 15000 satır değerim var. Proje konumuz oluşturulacak bir Yapay Sinir Ağı'na, bir link üzerinde oluşacak trafik değerlerini önceden ölçülmüş örnek değerlere bakarak tahmin ettirmek. MATLAB ın toolbox ı yardımıyla oluşturacağım YSA yapısına, istediğim bir değeri, örneğin 15035'inci değeri tahmin ettirebilmek istiyorum.

     Yapay Sinir Ağları ile Tahmin İşlemi


    ----------------------------

    Normalde YSA zaman serileri ile çalışırken verisetinde birkaç giriş ve tek çıkış oluyor. Örneğin " Şu şartlarda yağmur yağacak mı ?" problemini YSA ile çözmeye çalışacağımızı düşünürsek. Elimizde bir excel dosyasında 4 sütunlu zaman serisi olsun. İlk sütunda nem oranları, ikinci sütunda rüzgar, üçüncü sütunda da sıcaklık değerleri bulunsun. Her satır için de dördüncü sütunda yağmur yağacak yada yağmayacak sonuçlarına karşılık gelen 1 yada 0 değerleri döndürülsün. Bu problemi eldeki veriseti ile çözmek için 3 giriş bir de çıkış olduğu görülüyor. YSA train edilirken her satırı tek tek inceliyor ve sonuçları öğreniyor, şu durumda yağmur yağmış, şu durumda yağmamış vs. Train edildikten sonra YSA artık sıcaklık, nem ve rüzgara ait ağırlık değerleri oluyor ve siz ona şu nem, sıcaklık ve rüzgar değerlerinde yağmur yağacak mı diye sorarsanız size kendi öğrendiği değerlerin eğitiminden çıkan ağırlıkların hesabının sonucu olarak 1 yada 0 değeri dönüyor.

    Ancak ortada bir farklılık var. Bizim verisetimiz tek sütunlu, yani ardışık, lineer olmayan değerlerden oluşuyor. Bu durumda giriş de hedef de aynı oluyor. Burada bizim YSA'dan istediğimiz sayıların sıralamaları arasında, yani örneğin şu değerden 5 dakika sonra bi düşme yaşanmış ve şöyle bir değer gelmiş, ardından yükselmiş şöyle bir değer gelmiş vs vs. Yani bu serinin içerisinde bir bağ formulü kurmasını bekliyoruz ve en sonunda diyeceğiz ki mesela bize 15500. sıradaki değeri bize söyle bakalım.

    -----------------------------


    Yaptığımız işlemleri anlatayım :

    1- MATLAB açtıktan sonra soldaki Current Folder penceresinde sağ tıklayıp "New Script" e tıklayıp yeni bir script oluşturuyoruz. Daha sonra üst kısımda HOME sekmesine gelip "Import Data" ya tıklayıp açılan pencerede ve inputt.xlsx dosyamızı gösteriyoruz. Import ettikten sonra pencereyi kapattığımızda sağ taraftaki Workspace penceresinde inputt.xlsx excel dosyamızın içindeki verilerin projeye matris halinde dahil edildiğini görüyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


     Yapay Sinir Ağları ile Tahmin İşlemi



    2- MATLAB üzerinde APPS sekmesindeki araçlardan Neural Network Time Series Tool'u seçince karşımıza böyle bir ekran geliyor. Burada hangi ağ yapısını kullanacağımızı seçiyoruz. Biz araştırmalarımızda ikinci seçeneğin yani Nonlinear Autoregresive(NAR) ağının bizim problemimize uygun olduğunu düşündük. İkinci seçeneği seçip devam ediyoruz.
     Yapay Sinir Ağları ile Tahmin İşlemi


    3- İkinci seçeneği seçtikten sonra karşımıza hedefleri seçebileceğimiz ekran geliyor.(Targets: YSA'nın verisetiyle eğitildikten sonra test işlemi yaparken tahmin sonuçlarını karşılaştıracağı değerler)
    Bizim zaman serimiz satırlar halinde olduğu için Cell Column yerine Matrix Row'u seçiyorum ve Next diyorum.

     Yapay Sinir Ağları ile Tahmin İşlemi


    4- Gelen ekranda YSA'ya vereceğimiz verisetinin yüzde kaçının train için, yüzde kaç validation, yüzde kaç test için kullanılacağını ayarlayabiliyoruz. Train ve test işleminden bahsetmiştim. Validation işlemi ise YSA'nın "ezber" çıkmazına girmemesi için kullanılan bir durum olduğunu söyleyeyim. Train edildikten sonra "validation" yani "onaylama" işlemi yapılır ki kurulan ağın verdiği çıktılar, ağın iyi mi eğitilmiş yoksa verisetini ezberlemiş mi olduğunu kontrol etmek için kullanılıyor diye biliyorum. 70-15-15 bırakıp next diyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


    5- Buradaki ekranda da "Hidden neuron" ve "number of delays" değerlerini girebiliyoruz. Hidden neuron sayısı, YSA'nın input ile output arasındaki gizli katman sayısını gösteriyor. Gizli katman sayısı ne kadar çoksa, YSA bi o kadar iyi sonuç verecektir(beyindeki kıvrım sayısı olarak düşünebiliriz), küçük verisetlerinde, basit projelerde bu sayı daha küçük seçiliyor.
    Input delays sayısı ise verdiğimiz zaman serisinin içindeki verilerin hangi sayıda alınacağını gösteriyor. Örneğin 100 değerimiz var ve input delay 2 verirsek, veriler iki iki seçilecektir(bu kısım biraz karışıyor).

     Yapay Sinir Ağları ile Tahmin İşlemi


    6- Burda YSA nın hangi fonksiyon ile eğitileceğini belirtiyoruz. Birden fazla fonksiyon var , Levenberg M, Bayes vs. Biz LM yi seçiyoruz. Train tuşuna tıkladıktan sonra Next butonu aktif hale gelecektir, ağı kurarken en az bir defa train etmek zorundayız haliyle.(Sağ tarafta 14772 değerin yüzdelik karşılıklarını görebiliyoruz)

     Yapay Sinir Ağları ile Tahmin İşlemi


    Ağ kurulduktan sonra gerçekleşen iterasyon sayısını vs gösteren bir grafik ekranı açılıyor, devamında retrain edebileceğimiz bir ekran geliyor. Retrain etmeye gerek yok(birden fazla kez eğitilen ağ, ilk sonuçlarına göre daha iyi değerler üretecektir diye düşünüyorum ancak biz retrain etmeden devam ediyoruz), next diyoruz.

    7- Next diyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


    Yine next diyelim :

     Yapay Sinir Ağları ile Tahmin İşlemi



    8- Advance Script e tıklıyoruz ve MATLAB neural network tool un bizim girdiğimiz seçimlere göre oluşturduğu YSA kodu otomatik olarak açılıyor.

     Yapay Sinir Ağları ile Tahmin İşlemi


    Buradaki Advance Script'e tıklandıktan sonra gelen kodları veriyim:

     
    % Solve an Autoregression Time-Series Problem with a NAR Neural Network
    % Script generated by Neural Time Series app
    % Created 09-Mar-2016 20:04:18
    %
    % This script assumes this variable is defined:
    %
    % X - feedback time series.

    T = tonndata(X,false,false);

    % Choose a Training Function
    % For a list of all training functions type: help nntrain
    % 'trainlm' is usually fastest.
    % 'trainbr' takes longer but may be better for challenging problems.
    % 'trainscg' uses less memory. Suitable in low memory situations.
    trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.

    % Create a Nonlinear Autoregressive Network
    feedbackDelays = 1:2;
    hiddenLayerSize = 10;
    net = narnet(feedbackDelays,hiddenLayerSize,'open',trainFcn);

    % Choose Feedback Pre/Post-Processing Functions
    % Settings for feedback input are automatically applied to feedback output
    % For a list of all processing functions type: help nnprocess
    net.input.processFcns = {'removeconstantrows','mapminmax'};

    % Prepare the Data for Training and Simulation
    % The function PREPARETS prepares timeseries data for a particular network,
    % shifting time by the minimum amount to fill input states and layer
    % states. Using PREPARETS allows you to keep your original time series data
    % unchanged, while easily customizing it for networks with differing
    % numbers of delays, with open loop or closed loop feedback modes.
    [x,xi,ai,t] = preparets(net,{},{},T);

    % Setup Division of Data for Training, Validation, Testing
    % For a list of all data division functions type: help nndivide
    net.divideFcn = 'dividerand'; % Divide data randomly
    net.divideMode = 'time'; % Divide up every sample
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;

    % Choose a Performance Function
    % For a list of all performance functions type: help nnperformance
    net.performFcn = 'mse'; % Mean Squared Error

    % Choose Plot Functions
    % For a list of all plot functions type: help nnplot
    net.plotFcns = {'plotperform','plottrainstate', 'ploterrhist', ...
    'plotregression', 'plotresponse', 'ploterrcorr', 'plotinerrcorr'};

    % Train the Network
    [net,tr] = train(net,x,t,xi,ai);

    % Test the Network
    y = net(x,xi,ai);
    e = gsubtract(t,y);
    performance = perform(net,t,y)

    % Recalculate Training, Validation and Test Performance
    trainTargets = gmultiply(t,tr.trainMask);
    valTargets = gmultiply(t,tr.valMask);
    testTargets = gmultiply(t,tr.testMask);
    trainPerformance = perform(net,trainTargets,y)
    valPerformance = perform(net,valTargets,y)
    testPerformance = perform(net,testTargets,y)

    % View the Network
    view(net)

    % Plots
    % Uncomment these lines to enable various plots.
    %figure, plotperform(tr)
    %figure, plottrainstate(tr)
    %figure, ploterrhist(e)
    %figure, plotregression(t,y)
    %figure, plotresponse(t,y)
    %figure, ploterrcorr(e)
    %figure, plotinerrcorr(x,e)

    % Closed Loop Network
    % Use this network to do multi-step prediction.
    % The function CLOSELOOP replaces the feedback input with a direct
    % connection from the outout layer.
    netc = closeloop(net);
    netc.name = [net.name ' - Closed Loop'];
    view(netc)
    [xc,xic,aic,tc] = preparets(netc,{},{},T);
    yc = netc(xc,xic,aic);
    closedLoopPerformance = perform(net,tc,yc)

    % Multi-step Prediction
    % Sometimes it is useful to simulate a network in open-loop form for as
    % long as there is known data T, and then switch to closed-loop to perform
    % multistep prediction. Here The open-loop network is simulated on the
    % known output series, then the network and its final delay states are
    % converted to closed-loop form to produce predictions for 5 more
    % timesteps.
    [x1,xio,aio,t] = preparets(net,{},{},T);
    [y1,xfo,afo] = net(x1,xio,aio);
    [netc,xic,aic] = closeloop(net,xfo,afo);
    [y2,xfc,afc] = netc(cell(0,5),xic,aic);
    % Further predictions can be made by continuing simulation starting with
    % the final input and layer delay states, xfc and afc.

    % Step-Ahead Prediction Network
    % For some applications it helps to get the prediction a timestep early.
    % The original network returns predicted y(t+1) at the same time it is
    % given y(t+1). For some applications such as decision making, it would
    % help to have predicted y(t+1) once y(t) is available, but before the
    % actual y(t+1) occurs. The network can be made to return its output a
    % timestep early by removing one delay so that its minimal tap delay is now
    % 0 instead of 1. The new network returns the same outputs as the original
    % network, but outputs are shifted left one timestep.
    nets = removedelay(net);
    nets.name = [net.name ' - Predict One Step Ahead'];
    view(nets)
    [xs,xis,ais,ts] = preparets(nets,{},{},T);
    ys = nets(xs,xis,ais);
    stepAheadPerformance = perform(nets,ts,ys)

    % Deployment
    % Change the (false) values to (true) to enable the following code blocks.
    % See the help for each generation function for more information.
    if (false)
    % Generate MATLAB function for neural network for application
    % deployment in MATLAB scripts or with MATLAB Compiler and Builder
    % tools, or simply to examine the calculations your trained neural
    % network performs.
    genFunction(net,'myNeuralNetworkFunction');
    y = myNeuralNetworkFunction(x,xi,ai);
    end
    if (false)
    % Generate a matrix-only MATLAB function for neural network code
    % generation with MATLAB Coder tools.
    genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes');
    x1 = cell2mat(x(1,:));
    xi1 = cell2mat(xi(1,:));
    y = myNeuralNetworkFunction(x1,xi1);
    end
    if (false)
    % Generate a Simulink diagram for simulation or deployment with.
    % Simulink Coder tools.
    gensim(net);
    end




    Buraya kadar sadece ağı kurup hazırlamış olduk. Vaktim olunca devamının ayrıntılarını da ekleyebilirim, konu hazırlamak kolay iş değilmiş. Hatamız varsa söyleyin lütfen düzeltelim, insanları yalan yanlış bilgilendirmek istemem.

    Bizim şu an istediğimiz bu işlere yatkınlığı olan bir yardımseverin çıkması, birkaç sorumuza cevap alabilmek. Şu anki sıkıntımız, 15001. değeri bulabilmemize rağmem daha ileriki değerleri tahmin ettiremiyoruz. Cloose loop mu remove delay değeri ile mi ilgili olduğunu öğrenmek istiyoruz. Saygılar

    Bu mesaja eklenen görseller:

     Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi



    < Bu mesaj bu kişi tarafından değiştirildi ugurcan709 -- 9 Mart 2016; 20:28:39 >




  • quote:

    Orijinalden alıntı: ugurcan709

    Öncelikle şunu söylemek istiyorum, yazacaklarımın doğruluğundan emin değilim, sadece birkaç haftalık araştırma sonucunda edindiğim bilgileri vermek istiyorum. Yanlışım varsa bilgilendirin düzelteyim. Amacım, biz türkçe kaynakları yeterince bulamadık, bundan sonra google da aratıp buraya gelenlere az da olsa kendi dilinde anlayacakları bir metin sağlamak.

    Elimdeki "input" adındaki excel dosyasında(Kullanacağımız verisetini Belgeler/MATLAB/ klasörüne atmamız gerekiyor), resimde de göründüğü tipte devam eden 15000 satır değerim var. Proje konumuz oluşturulacak bir Yapay Sinir Ağı'na, bir link üzerinde oluşacak trafik değerlerini önceden ölçülmüş örnek değerlere bakarak tahmin ettirmek. MATLAB ın toolbox ı yardımıyla oluşturacağım YSA yapısına, istediğim bir değeri, örneğin 15035'inci değeri tahmin ettirebilmek istiyorum.

     Yapay Sinir Ağları ile Tahmin İşlemi


    ----------------------------

    Normalde YSA zaman serileri ile çalışırken verisetinde birkaç giriş ve tek çıkış oluyor. Örneğin " Şu şartlarda yağmur yağacak mı ?" problemini YSA ile çözmeye çalışacağımızı düşünürsek. Elimizde bir excel dosyasında 4 sütunlu zaman serisi olsun. İlk sütunda nem oranları, ikinci sütunda rüzgar, üçüncü sütunda da sıcaklık değerleri bulunsun. Her satır için de dördüncü sütunda yağmur yağacak yada yağmayacak sonuçlarına karşılık gelen 1 yada 0 değerleri döndürülsün. Bu problemi eldeki veriseti ile çözmek için 3 giriş bir de çıkış olduğu görülüyor. YSA train edilirken her satırı tek tek inceliyor ve sonuçları öğreniyor, şu durumda yağmur yağmış, şu durumda yağmamış vs. Train edildikten sonra YSA artık sıcaklık, nem ve rüzgara ait ağırlık değerleri oluyor ve siz ona şu nem, sıcaklık ve rüzgar değerlerinde yağmur yağacak mı diye sorarsanız size kendi öğrendiği değerlerin eğitiminden çıkan ağırlıkların hesabının sonucu olarak 1 yada 0 değeri dönüyor.

    Ancak ortada bir farklılık var. Bizim verisetimiz tek sütunlu, yani ardışık, lineer olmayan değerlerden oluşuyor. Bu durumda giriş de hedef de aynı oluyor. Burada bizim YSA'dan istediğimiz sayıların sıralamaları arasında, yani örneğin şu değerden 5 dakika sonra bi düşme yaşanmış ve şöyle bir değer gelmiş, ardından yükselmiş şöyle bir değer gelmiş vs vs. Yani bu serinin içerisinde bir bağ formulü kurmasını bekliyoruz ve en sonunda diyeceğiz ki mesela bize 15500. sıradaki değeri bize söyle bakalım.

    -----------------------------


    Yaptığımız işlemleri anlatayım :

    1- MATLAB açtıktan sonra soldaki Current Folder penceresinde sağ tıklayıp "New Script" e tıklayıp yeni bir script oluşturuyoruz. Daha sonra üst kısımda HOME sekmesine gelip "Import Data" ya tıklayıp açılan pencerede ve inputt.xlsx dosyamızı gösteriyoruz. Import ettikten sonra pencereyi kapattığımızda sağ taraftaki Workspace penceresinde inputt.xlsx excel dosyamızın içindeki verilerin projeye matris halinde dahil edildiğini görüyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


     Yapay Sinir Ağları ile Tahmin İşlemi



    2- MATLAB üzerinde APPS sekmesindeki araçlardan Neural Network Time Series Tool'u seçince karşımıza böyle bir ekran geliyor. Burada hangi ağ yapısını kullanacağımızı seçiyoruz. Biz araştırmalarımızda ikinci seçeneğin yani Nonlinear Autoregresive(NAR) ağının bizim problemimize uygun olduğunu düşündük. İkinci seçeneği seçip devam ediyoruz.
     Yapay Sinir Ağları ile Tahmin İşlemi


    3- İkinci seçeneği seçtikten sonra karşımıza hedefleri seçebileceğimiz ekran geliyor.(Targets: YSA'nın verisetiyle eğitildikten sonra test işlemi yaparken tahmin sonuçlarını karşılaştıracağı değerler)
    Bizim zaman serimiz satırlar halinde olduğu için Cell Column yerine Matrix Row'u seçiyorum ve Next diyorum.

     Yapay Sinir Ağları ile Tahmin İşlemi


    4- Gelen ekranda YSA'ya vereceğimiz verisetinin yüzde kaçının train için, yüzde kaç validation, yüzde kaç test için kullanılacağını ayarlayabiliyoruz. Train ve test işleminden bahsetmiştim. Validation işlemi ise YSA'nın "ezber" çıkmazına girmemesi için kullanılan bir durum olduğunu söyleyeyim. Train edildikten sonra "validation" yani "onaylama" işlemi yapılır ki kurulan ağın verdiği çıktılar, ağın iyi mi eğitilmiş yoksa verisetini ezberlemiş mi olduğunu kontrol etmek için kullanılıyor diye biliyorum. 70-15-15 bırakıp next diyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


    5- Buradaki ekranda da "Hidden neuron" ve "number of delays" değerlerini girebiliyoruz. Hidden neuron sayısı, YSA'nın input ile output arasındaki gizli katman sayısını gösteriyor. Gizli katman sayısı ne kadar çoksa, YSA bi o kadar iyi sonuç verecektir(beyindeki kıvrım sayısı olarak düşünebiliriz), küçük verisetlerinde, basit projelerde bu sayı daha küçük seçiliyor.
    Input delays sayısı ise verdiğimiz zaman serisinin içindeki verilerin hangi sayıda alınacağını gösteriyor. Örneğin 100 değerimiz var ve input delay 2 verirsek, veriler iki iki seçilecektir(bu kısım biraz karışıyor).

     Yapay Sinir Ağları ile Tahmin İşlemi


    6- Burda YSA nın hangi fonksiyon ile eğitileceğini belirtiyoruz. Birden fazla fonksiyon var , Levenberg M, Bayes vs. Biz LM yi seçiyoruz. Train tuşuna tıkladıktan sonra Next butonu aktif hale gelecektir, ağı kurarken en az bir defa train etmek zorundayız haliyle.(Sağ tarafta 14772 değerin yüzdelik karşılıklarını görebiliyoruz)

     Yapay Sinir Ağları ile Tahmin İşlemi


    Ağ kurulduktan sonra gerçekleşen iterasyon sayısını vs gösteren bir grafik ekranı açılıyor, devamında retrain edebileceğimiz bir ekran geliyor. Retrain etmeye gerek yok(birden fazla kez eğitilen ağ, ilk sonuçlarına göre daha iyi değerler üretecektir diye düşünüyorum ancak biz retrain etmeden devam ediyoruz), next diyoruz.

    7- Next diyoruz.

     Yapay Sinir Ağları ile Tahmin İşlemi


    Yine next diyelim :

     Yapay Sinir Ağları ile Tahmin İşlemi



    8- Advance Script e tıklıyoruz ve MATLAB neural network tool un bizim girdiğimiz seçimlere göre oluşturduğu YSA kodu otomatik olarak açılıyor.

     Yapay Sinir Ağları ile Tahmin İşlemi


    Buradaki Advance Script'e tıklandıktan sonra gelen kodları veriyim:

     
    % Solve an Autoregression Time-Series Problem with a NAR Neural Network
    % Script generated by Neural Time Series app
    % Created 09-Mar-2016 20:04:18
    %
    % This script assumes this variable is defined:
    %
    % X - feedback time series.

    T = tonndata(X,false,false);

    % Choose a Training Function
    % For a list of all training functions type: help nntrain
    % 'trainlm' is usually fastest.
    % 'trainbr' takes longer but may be better for challenging problems.
    % 'trainscg' uses less memory. Suitable in low memory situations.
    trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.

    % Create a Nonlinear Autoregressive Network
    feedbackDelays = 1:2;
    hiddenLayerSize = 10;
    net = narnet(feedbackDelays,hiddenLayerSize,'open',trainFcn);

    % Choose Feedback Pre/Post-Processing Functions
    % Settings for feedback input are automatically applied to feedback output
    % For a list of all processing functions type: help nnprocess
    net.input.processFcns = {'removeconstantrows','mapminmax'};

    % Prepare the Data for Training and Simulation
    % The function PREPARETS prepares timeseries data for a particular network,
    % shifting time by the minimum amount to fill input states and layer
    % states. Using PREPARETS allows you to keep your original time series data
    % unchanged, while easily customizing it for networks with differing
    % numbers of delays, with open loop or closed loop feedback modes.
    [x,xi,ai,t] = preparets(net,{},{},T);

    % Setup Division of Data for Training, Validation, Testing
    % For a list of all data division functions type: help nndivide
    net.divideFcn = 'dividerand'; % Divide data randomly
    net.divideMode = 'time'; % Divide up every sample
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;

    % Choose a Performance Function
    % For a list of all performance functions type: help nnperformance
    net.performFcn = 'mse'; % Mean Squared Error

    % Choose Plot Functions
    % For a list of all plot functions type: help nnplot
    net.plotFcns = {'plotperform','plottrainstate', 'ploterrhist', ...
    'plotregression', 'plotresponse', 'ploterrcorr', 'plotinerrcorr'};

    % Train the Network
    [net,tr] = train(net,x,t,xi,ai);

    % Test the Network
    y = net(x,xi,ai);
    e = gsubtract(t,y);
    performance = perform(net,t,y)

    % Recalculate Training, Validation and Test Performance
    trainTargets = gmultiply(t,tr.trainMask);
    valTargets = gmultiply(t,tr.valMask);
    testTargets = gmultiply(t,tr.testMask);
    trainPerformance = perform(net,trainTargets,y)
    valPerformance = perform(net,valTargets,y)
    testPerformance = perform(net,testTargets,y)

    % View the Network
    view(net)

    % Plots
    % Uncomment these lines to enable various plots.
    %figure, plotperform(tr)
    %figure, plottrainstate(tr)
    %figure, ploterrhist(e)
    %figure, plotregression(t,y)
    %figure, plotresponse(t,y)
    %figure, ploterrcorr(e)
    %figure, plotinerrcorr(x,e)

    % Closed Loop Network
    % Use this network to do multi-step prediction.
    % The function CLOSELOOP replaces the feedback input with a direct
    % connection from the outout layer.
    netc = closeloop(net);
    netc.name = [net.name ' - Closed Loop'];
    view(netc)
    [xc,xic,aic,tc] = preparets(netc,{},{},T);
    yc = netc(xc,xic,aic);
    closedLoopPerformance = perform(net,tc,yc)

    % Multi-step Prediction
    % Sometimes it is useful to simulate a network in open-loop form for as
    % long as there is known data T, and then switch to closed-loop to perform
    % multistep prediction. Here The open-loop network is simulated on the
    % known output series, then the network and its final delay states are
    % converted to closed-loop form to produce predictions for 5 more
    % timesteps.
    [x1,xio,aio,t] = preparets(net,{},{},T);
    [y1,xfo,afo] = net(x1,xio,aio);
    [netc,xic,aic] = closeloop(net,xfo,afo);
    [y2,xfc,afc] = netc(cell(0,5),xic,aic);
    % Further predictions can be made by continuing simulation starting with
    % the final input and layer delay states, xfc and afc.

    % Step-Ahead Prediction Network
    % For some applications it helps to get the prediction a timestep early.
    % The original network returns predicted y(t+1) at the same time it is
    % given y(t+1). For some applications such as decision making, it would
    % help to have predicted y(t+1) once y(t) is available, but before the
    % actual y(t+1) occurs. The network can be made to return its output a
    % timestep early by removing one delay so that its minimal tap delay is now
    % 0 instead of 1. The new network returns the same outputs as the original
    % network, but outputs are shifted left one timestep.
    nets = removedelay(net);
    nets.name = [net.name ' - Predict One Step Ahead'];
    view(nets)
    [xs,xis,ais,ts] = preparets(nets,{},{},T);
    ys = nets(xs,xis,ais);
    stepAheadPerformance = perform(nets,ts,ys)

    % Deployment
    % Change the (false) values to (true) to enable the following code blocks.
    % See the help for each generation function for more information.
    if (false)
    % Generate MATLAB function for neural network for application
    % deployment in MATLAB scripts or with MATLAB Compiler and Builder
    % tools, or simply to examine the calculations your trained neural
    % network performs.
    genFunction(net,'myNeuralNetworkFunction');
    y = myNeuralNetworkFunction(x,xi,ai);
    end
    if (false)
    % Generate a matrix-only MATLAB function for neural network code
    % generation with MATLAB Coder tools.
    genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes');
    x1 = cell2mat(x(1,:));
    xi1 = cell2mat(xi(1,:));
    y = myNeuralNetworkFunction(x1,xi1);
    end
    if (false)
    % Generate a Simulink diagram for simulation or deployment with.
    % Simulink Coder tools.
    gensim(net);
    end




    Buraya kadar sadece ağı kurup hazırlamış olduk. Vaktim olunca devamının ayrıntılarını da ekleyebilirim, konu hazırlamak kolay iş değilmiş. Hatamız varsa söyleyin lütfen düzeltelim, insanları yalan yanlış bilgilendirmek istemem.

    Bizim şu an istediğimiz bu işlere yatkınlığı olan bir yardımseverin çıkması, birkaç sorumuza cevap alabilmek. Şu anki sıkıntımız, 15001. değeri bulabilmemize rağmem daha ileriki değerleri tahmin ettiremiyoruz. Cloose loop mu remove delay değeri ile mi ilgili olduğunu öğrenmek istiyoruz. Saygılar

    Bu mesaja eklenen görseller:

     Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi Yapay Sinir Ağları ile Tahmin İşlemi
    Yapay sinir ağlarında illa girişler ayrı çıkışlar ayrı olacak diye bir şart yok. Dinamik ve kaotik sistemler gibi. Kaotik sistemde bir örnek verecek olursak y(t) = f(y(t-1), y(t,2), ...) şeklinde olacaktır. Aslında senin sisteminde buna benzemekte. Şöyle bi data seti oluşturabilirsin. t anındaki örnek kendinden önceki 2 örnek değerine bağlı. Bu durumda senin excel tablona gore giriş çıkışları oluşturusak:
    y(t-2) y(t-1) y(t)
    3562279127 3710215571 3877469703
    3710215571 3877469703 3876354871
    3877469703 3876354871 ......

    şeklinde olabilir. Ki ağ başarımını artırmak için daha fazla geçmiş veri örneği alman gerekebilir. Birde YSA'yı eğitmende önce normalizasyon yapmalısın. 15000. değeri test edebilmen için bu değerden önceki 2 girişi ağa giriş olarak vermelisin.



    < Bu mesaj bu kişi tarafından değiştirildi alicavuslu -- 9 Mart 2016; 21:17:13 >




  • alicavuslu A kullanıcısına yanıt
    Peki hocam normal şu anki yöntemimizle %70 train %30 test yapıyoruz. Validation kullanmamıza gerek olmadığı söylendi. Şu an çoğu kod çalışıyor, YSA'nın tahmin ettiği %30 luk kısım ile excel'deki gerçek %30 luk kısmı karşılaştırp MAPE(ortalama minimum hata oranı) uyguladığımızda 2.9950 civarında olumlu sonuçlar alıyoruz. Ancak normalizasyon ve yeni değerlerin tahmini için tam olarak ne yapılacağını çözemedim.

    1- Normalizasyondan kastınız sanırım excel'deki tüm değerleri MATLAB içerisinde belli iki değer arasına çekmek(-1 ile 1 yada 0 ile 1 arasına mesela) değil mi ?
    2- Neden iki giriş verdiniz ? Bu giriş sayısı daha yüksek olabilir miydi ? Çünkü sanırım şu anda toolbox içerisinde bahsettiğiniz işlem halihazırda yapılıyor "input delay : 2" verince. Yani bu değeri 2 verince sanırım aynı şekilde ardışık olarak ilk ikisini alıp üçüncüyü test ediyor daha sonra ikinci ve üçüncüyü alıp dördüncüyü test ediyor gibi.




  • quote:

    Orijinalden alıntı: ugurcan709

    Peki hocam normal şu anki yöntemimizle %70 train %30 test yapıyoruz. Validation kullanmamıza gerek olmadığı söylendi. Şu an çoğu kod çalışıyor, YSA'nın tahmin ettiği %30 luk kısım ile excel'deki gerçek %30 luk kısmı karşılaştırp MAPE(ortalama minimum hata oranı) uyguladığımızda 2.9950 civarında olumlu sonuçlar alıyoruz. Ancak normalizasyon ve yeni değerlerin tahmini için tam olarak ne yapılacağını çözemedim.

    1- Normalizasyondan kastınız sanırım excel'deki tüm değerleri MATLAB içerisinde belli iki değer arasına çekmek(-1 ile 1 yada 0 ile 1 arasına mesela) değil mi ?
    2- Neden iki giriş verdiniz ? Bu giriş sayısı daha yüksek olabilir miydi ? Çünkü sanırım şu anda toolbox içerisinde bahsettiğiniz işlem halihazırda yapılıyor "input delay : 2" verince. Yani bu değeri 2 verince sanırım aynı şekilde ardışık olarak ilk ikisini alıp üçüncüyü test ediyor daha sonra ikinci ve üçüncüyü alıp dördüncüyü test ediyor gibi.
    Normalizasyondan kastım dediğin gibi belirli bir sınır aralığına almak. Genelde veri setinin mutlak maksimum değerine bölme işlemi yapılır.
    2 tane geçmiş kısmını örnek olarak verdim. Bu değer dahada arttırılabilir ki bu senin ağ performansını artıracaktır.




  • alicavuslu A kullanıcısına yanıt
    Planımız otokorelasyon fonksiyonunu kullanmak hocam. 0 ile 1 arasında olacak tüm değerler. Örneğin otokorelasyon işleminin sonunda elde edilen verilerin içinden, değeri 0.90 üzerinde olan ilk en yüksek değerli 5 veriyi giriş olarak kullanmayı düşünüyoruz. Ancak şu anda takıldığımız nokta ileriyi tahmin ettirme işlemi. Attığım kodu incelediğinizde En altta iki bölüm var birisi "cloose loop" bölümü diğeri "Step Ahead Prediction" bölümü. Mantıken Step Ahead Prediction kısmının ileriyi tahmin etmesi lazım ancak elimizdeki kodu uyarlayamadık tam olarak.
  • quote:

    Orijinalden alıntı: ugurcan709

    Planımız otokorelasyon fonksiyonunu kullanmak hocam. 0 ile 1 arasında olacak tüm değerler. Örneğin otokorelasyon işleminin sonunda elde edilen verilerin içinden, değeri 0.90 üzerinde olan ilk en yüksek değerli 5 veriyi giriş olarak kullanmayı düşünüyoruz. Ancak şu anda takıldığımız nokta ileriyi tahmin ettirme işlemi. Attığım kodu incelediğinizde En altta iki bölüm var birisi "cloose loop" bölümü diğeri "Step Ahead Prediction" bölümü. Mantıken Step Ahead Prediction kısmının ileriyi tahmin etmesi lazım ancak elimizdeki kodu uyarlayamadık tam olarak.
    Kodları biraz anlamaya çalışıp size dönüş yapmaya çalışacağım.
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.