Nöral ağlar - sayfa 14

 
Evet antrenman vs tahmin. Eğitim, test ve çapraz doğrulama için kullanılan ilk 6-7 yıllık verilerle yeni bir ağ kurdum. Daha sonra, kalan 3 yıllık verileri, canlı bir testi taklit etme fikri olan, öğrenme olmadan bir test olarak besledim. Eğitim regresyon çizgisi 0,99995'lik bir eğime sahipti ve onu 0,9995'e düşen yaklaşık 3 yıl daha önce görülmemiş verilerle beslediğimde. Bunu nasıl yorumlayacağımdan emin değilim. Bir saatten az bir sürede bir araya getirdiğim bir şey için biraz fazla doğru görünüyor.

Bunu size bir örnek kullanarak açıklayacağım.

100 ile 250 arasında değerlere sahip olabilen bir değişkeni tahmin etmek istediğinizi varsayalım /gibi GBPJPY/. H1 veya H4/ gibi eğitim verilerine kıyasla çok küçük zaman adımlarını tahmin etmek istiyorsunuz. Bazı adımlar için istenen değer, diyelim ki, 174.850 ve NN çıktısı 176.350'dir. Hata çok küçük / yaklaşık %0,8/ ama Forex açısından hata büyük - 150 pip.

Normal veya logaritmik getiri oranını tahmin etmek çok daha kolaydır. Bir hata yapsanız bile, çıktı muhtemelen yine de faydalı olacaktır / %20'lik bir fiyat artışı öngörüyorsanız ve gerçekten %10'dur, hata %50 olsa bile sonuç hala çok iyi/.

Elbette ilk popülasyonu rastgele oluşturursanız, hiçbir programın sorunu çözmediği bir popülasyon oluşturma şansınız yok mu?

Bu imkansız.

NN çok kötü bir tahminde bulunsa bile yine de bir çözümdür.

Ortalama masaüstünün üstesinden gelebileceğini söylemekten daha fazlası

Bir masaüstü bilgisayar kullanabilirsiniz. Bugün bilgisayarlar başladığım bilgisayarlardan çok daha iyi

 

mrwobbles,

Nazik olur ve NN sonuçlarınız için girdileriniz ve çıktılarınız hakkında bizi bilgilendirir misiniz? Bunu NeuroShell üzerinden çalıştırmak ve aynı sıkılıkta R korelasyon seviyesi oluşturup oluşturamayacağımı görmek istiyorum. Şimdiden teşekkürler.

 
Kazam:
Bunu size bir örnek kullanarak açıklayacağım.

100 ile 250 arasında değerlere sahip olabilen bir değişkeni tahmin etmek istediğinizi varsayalım /gibi GBPJPY/. H1 veya H4/ gibi eğitim verilerine kıyasla çok küçük zaman adımlarını tahmin etmek istiyorsunuz. Bazı adımlar için istenen değer, diyelim ki 174.850 ve NN çıktısı 176.350'dir. Hata çok küçük / yaklaşık %0,8/ ama Forex açısından hata büyük - 150 pip.

Normal veya logaritmik getiri oranını tahmin etmek çok daha kolaydır. Bir hata yapsanız bile, çıktı muhtemelen yine de faydalı olacaktır / %20'lik bir fiyat artışı öngörüyorsanız ve gerçekten %10'dur, hata %50 olsa bile sonuç hala çok iyi/.

Evet ama bundan çok daha küçük olan hatalardan bahsediyorum. Eğittiğim ağın piplerindeki ortalama hata 10-20 civarında ve bu kabul edilebilir bir seviyeye yaklaşıyor. Yine de bazı anormal sonuçlar var, kabul edilemez olan 100 pipsten birkaçı.

Bu imkansız.

NN çok kötü bir tahminde bulunsa bile yine de bir çözümdür.

Evet, sanırım bunlara çözüm diyebilirsiniz ama rastgele bir popülasyonla başlamak daha uzun bir yakınsama süresine yol açmaz mı? Bu durumda, önceden eğitilmiş ağlardan oluşan bir popülasyonla başlamak, ağın yakınsamasını kesinlikle hızlandıracak ve umarım daha doğru sonuçlara yol açacaktır.

 
Evet ama bundan çok daha küçük olan hatalardan bahsediyorum. Eğittiğim ağın piplerindeki ortalama hata 10-20 civarında ve bu kabul edilebilir bir seviyeye yaklaşıyor. Yine de bazı anormal sonuçlar var, kabul edilemez olan 100 pipsten birkaçı.

Ama hala eğitim verilerine bakıyorsunuz. Hızlı bir örnek yaptım - aşağıdaki resme bakın. Hata ölçüleri küçüktür, korelasyon katsayısı çok yüksektir, ancak sonraki 10 adımı tahmin etmeye çalıştığınızda ne olduğuna bakın.

Evet, sanırım bunlara çözüm diyebilirsiniz ama rastgele bir popülasyonla başlamak daha uzun bir yakınsama süresine yol açmaz mı? Bu durumda, önceden eğitilmiş ağlardan oluşan bir popülasyonla başlamak, ağın yakınsamasını kesinlikle hızlandıracak ve umarım daha doğru sonuçlara yol açacaktır.

Rastgelelik anahtardır

Birçok rastgele ağ ile, sonunda mümkün olan en iyi çözümü bulma şansınız daha yüksektir. İkinci resme bakın. NN'lerin ön seçimini yaparsanız, yerel optimumda takılıp kalabilirsiniz, ancak rastgele NN'ler kullanırsanız, global optimumu bulma şansınız daha yüksektir.

Elbette yerel optimumda takılıp kalma sorununun üstesinden gelmenin yolları var.

Dosyalar:
 

Bu düşünce aklımdan geçmişti. Demek istediğim, önceden eğitilmiş NN'lerin popülasyonu çok küçükse veya yeterli genetik varyansa sahip değilse, o zaman bazı çözümler düşünülmeyebilir. Dediğiniz gibi, her zaman farklı yerel minimumlarda takılı kalan 12 NN'yi seçme şansı vardır ve bu iyi olmaz. Veya daha da kötüsü, hepsi aynı yerel minimumda sıkışmış 12 NN. Her 10 nesilde bir, genetik stoğu artırmak için bazı rastgele gen mutasyonlarını her zaman kodlayabilmenize rağmen. Tamamen rastgele bir yapıyla başlamanız, çoğu olasılığın dikkate alınmasını sağlayacaktır.

Ah anlıyorum, tamam, ağın eğitiminden sonra nasıl kullanılacağını yeni öğrendim, sim işlevi görünüşe göre... oh yardım dosyalarının neşesi Cehaletimi bağışlamalısınız, NN'lerle çalışma konusunda oldukça yeniyim. Bu kadar kolay çözebilseydim hayal kırıklığına uğrardım. Yaz tatilinde yaptığım şey bu olmalı iyi ki ve çalışıyor

Düzenleme: Ağı ilk 7 yıllık veriler üzerinde eğittim ve ardından son birkaç yıllık girdilerdeki performansını simüle ettim. Pipteki ortalama hata 40'tı ama grafiğin grafiğine bakarsanız ilk 1500 güzel noktayı alıyor, sonra kaybediyor ve fiyatı yanlış almaya başlıyor ama yön çoğunlukla doğru. Sonra yaklaşık 10000'e ulaşır ve tekrar alır (tam büyük çarpışma için zamanında). Şuna bir bak ve ne düşündüğünü söyle. Koyu mavi, çıktı açık mavi hedeftir. Btw, ağa analiz için üst üste yerleştirilmiş hedefler sağlamadım.

Dosyalar:
gbpjpy60-4.jpg  40 kb
gbpjpy60-8.jpg  55 kb
 

Resimlere bakarak bir şey söyleyemem çünkü bir "gölge efekti" olabilir ve resimler bunu söylemek için çok küçük.

Ama size NN'nin iyi olup olmadığını nasıl kontrol edeceğinizi söyleyebilirim. Dışa aktarma /Matlab'da bir dışa aktarma ve içe aktarma sihirbazı vardır/ test çıktısını bir XLS veya CSV dosyasına /Excel dosyasına/. Ardından, gerçek değerleri NN çıktısının yanına koyun ve bir sonraki sütuna, NN'nin fiyat hareketinin doğru yönünü tahmin edip etmediğini kontrol eden bir formül koyun.

Kaç tane "1" aldığınızı sayarak ağın doğruluğunu bileceksiniz.

Her adım için kar ve zararı hesaplayan bir formül yazabilirsiniz. Aşağıdaki resme bakın / Excel'in Lehçe sürümünü kullanıyorum, bu yüzden formülleri doğru anlamış mıyım bilmiyorum /. Şimdilik yayılmayı atlayın.

Dosyalar:
 

Merhaba Kazam,

Bu NN paketini Metatrader'a uygulamak mümkün mü?

Dosyalar:
example.zip  106 kb
 

Tamam olabilir gibi görünüyor, formülü Open Office elektronik tablosunda çalıştırdım ve ticaret yönünde %73 doğruluk döndürdü. Doğruluğu artıracağını düşündüğüm ağa vermek için hala birkaç girdi daha var. İşte hesap tablosu, xls formatında kaydettim, okuyabilmelisiniz.

Dosyalar:
gj60.rar  831 kb
 

Numunede, numune dışında

mrwobbles:
Tamam olabilir gibi görünüyor, formülü Open Office elektronik tablosunda çalıştırdım ve ticaret yönünde %73 doğruluk döndürdü. Doğruluğu artıracağını düşündüğüm ağa vermek için hala birkaç girdi daha var. İşte hesap tablosu, xls formatında kaydettim, okuyabilmelisiniz.

İyi... Numunede mi, Numune Dışında mı?

Hesabınızda büyük fark yaratacaktır, Örneklemde %73 hesap katilidir, örneklemde %73 belki...

Yalnızca örneklem dışı sonuçlara inanmaya çalışın ve ne kadar az girdiniz olursa, o kadar az fazla uydurma elde edersiniz... bu nedenle, yeni girdiler eklerseniz, eski olanlardan bazılarını silmeyi düşünün .. veya örneklem dışını genişletin. inançlarınızı oluşturacağınız veri seti

Genel bir kural olarak: Daha az girdi, daha az bağlantı, daha fazla örnek nokta... daha iyi genelleme.

Saygılarımızla

simba

 

ikiyüzlü

Bu bir DLL, bu yüzden buraya bir göz atın:

http://www.metatrader.info/node/150[/CODE]

There's an example of how to use DLL functions in Metatrader.

mrwobbles

It's either the training data or you got something wrong - the results are to good .

If one could get an accuracy of 73% with a simple back propagation network no one would give a shit about more complicated stuff

SIMBA

You're right. Choosing the proper input is a the most important thing in the process of creating a NN /there's a rule "trash goes in, trash comes out" /.

But you can always use data mining tools to analyze many different variables and choose those that affect the one you want to predict.

There's a nice book about data minig /and about genetic algorithms, Bayesian classification etc./ - "Data Mining Methods and Models." by Daniel T. Larose. It also shows how to use WEKA /a free, open source software for machine learning/.

My preferred way is to use GA - for the propose of time series prediction I usually allow them to choose from 15-40 previous steps.

PS

I've mentioned using Bayesian probability for the classification tasks but it can also be used for time series prediction

[CODE]http://www.cis.hut.fi/juha/papers/ESTSPfinal.pdf
Neden: