Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 88
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Yur, insanlar için programın normal bir sürümünü (veya yükseltilmiş) yapın)))
1. Bu tür standart bir dosyayı okumasına izin verin - bir başlık (tırnak işaretleri olan ve olmayan), veriler, ayırıcılar, izin verin hawala zpt, dot.zpt, tablolama. Misal-
"Tarih";"V1";"A77";"V23A";"Hedef"
01/01/2000;4.999995E-03;1.499891E-03;-2.000213E-03;-5.000234E-03;1
2. Model için sadece 10 girdi kullanılmasına izin verin, ancak çok fazla yüklemeye izin verin, o zaman
ayrı bir sekmede veya kryzhiki'de (girişi siz seçersiniz) veya başka bir şey koyarsınız.
3. Normalleştirme olmadan! (veya devre dışı), çünkü veriler dönüşümden sonra başlangıçta 0'a göre ortalanırsa
x-x.min / .... (veya ne varsa) - uçup git)))
4. Rastgeleliği (veya değiştirilebilir) atın, sadece verileri iki parçaya ayırmasına izin verin, sırayla sayın ve 1 için başarılı tahminlerin yüzdesini görüntüleyin (0 için gerekli değildir)
5. Girdilerin önemini kapattı - iyi!
6. Görüntülenen formüle ek olarak, tam formül de görüntülensin!, yani şimdi
çift x2 = 2.0 * (v5 + 1.0) / 2.0 - 1.0;
çifte karar = -0.2632437547312642 -0.2634178652535958 * x2
+ 0.05267978803936412
gerekli -
Hedef adı = -0.2632437547312642 -0.2634178652535958 * insert yapısı x2= (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412
başarmak -
Hedef adı = -0.2632437547312642 -0.2634178652535958 * (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412
Yani, hızlı araştırma için az çok uygun bir başıboş bulursunuz. Daha sonra basit (açgözlü değil) vb.
algoritmalar, bir seçim ile ... Aksi takdirde, başıboş çok az işe yarar. Dosyayı düzenlerken, o zaman bakın ... başka bir şey kullanmak daha kolay ...
7 sürümü nerede?
So-so - sadece yeterli beyin ve zaman yok.
Hedef değişkenle başlamanız ve ardından bunun için öngörücüleri seçmeniz gerekir, üstelik anlama göre ve ardından matematikle iki kez kontrol edin, bunun gibi bir şey. Her durumda, süreç kasvetli ve benim için resmileşmedi.
4. Rastgeleliği (veya değiştirilebilir) atın, sadece verileri iki parçaya ayırmasına izin verin, sırayla sayın ve 1 için başarılı tahminlerin yüzdesini görüntüleyin (0 için gerekli değildir)
Forex için jPrediction'ı kullanmayı denerseniz, muhtemelen eklenecek en önemli şey budur. Verileri rastgele iki parçaya bölen, daha sonra ilk kısımda eğitim alabilen ve ikinci kısımda da iyi performans gösteren birçok model vardır. Ancak bu modellerin çoğu yeni veriler üzerinde etkisiz olacaktır. Forex'te sabit bağımlılık yoktur, rastgele bir test setinde iyi sonuçlar, yeni verilerde iyi sonuçları garanti etmez. Modelin Forex için uygun olduğundan emin olmanın tek yolu ileri alma testidir:
Model, kırmızı ile işaretlenmiş veriler üzerinde iyi bir tahmin yeteneği göstermelidir. Şimdi jPrediction'da böyle bir test manuel olarak yapılmalı, her test durumu için tekrar veri girilmelidir, bu ciddi işler için uygun değildir.
Ve eğitim + test toplamından ziyade yalnızca test verileri için puanı göstermenin daha iyi olduğuna katılıyorum.
jPrediction'ın şu anda verdiği tüm tahminler Forex için yetersiz ve yalnızca yanıltıcı.
Bu arada, R için şapka paketinde ileriye alma şu şekilde yapılır:
http://topepo.github.io/caret/splitting.html (Zaman Serileri bölümü için Veri Bölme)
Model ilk 1000 örnek üzerinde eğitilecek, ardından 1001-1300 örnek üzerinde test edilecektir. Ardından 300 ile kaydırın, 301-1300 ile eğitin, 1301-1600 ile test edin ve eğitim örnekleri bitene kadar bu şekilde devam edin.
Yur, insanlar için programın normal bir sürümünü (veya yükseltilmiş) yapın)))
1. Bu tür standart bir dosyayı okumasına izin verin - bir başlık (tırnak işaretleri olan ve olmayan), veriler, ayırıcılar, izin verin hawala zpt, dot.zpt, tablolama. Misal-
2. Model için sadece 10 girdi kullanılmasına izin verin, ancak çok fazla yüklemeye izin verin, o zaman
ayrı bir sekmede veya kryzhiki'de (girişi siz seçersiniz) veya başka bir şey koyarsınız.
3. Normalleştirme olmadan! (veya devre dışı), çünkü veriler dönüşümden sonra başlangıçta 0'a göre ortalanırsa
x-x.min / .... (veya ne varsa) - uçup git)))
4. Rastgeleliği (veya değiştirilebilir) atın, sadece verileri iki parçaya ayırmasına izin verin, sırayla sayın ve 1 için başarılı tahminlerin yüzdesini görüntüleyin (0 için gerekli değildir)
5. Girdilerin önemini kapattı - iyi!
6. Görüntülenen formüle ek olarak, tam formül de görüntülensin!, yani şimdi
7. Sürüm 7 nerede?
Eğer biri jPrediction'da bir şeyden gerçekten hoşlanmıyorsa, proje GNU GPL lisansı altında Açık Kaynak ile açıktır ve ondan çatal yapmak, orada bir şeyi değiştirmek ve bitirmek sadece yasak değil, hatta bir dereceye kadar memnuniyetle karşılanır.
Forex için jPrediction'ı kullanmayı denerseniz, muhtemelen eklenecek en önemli şey budur. Verileri rastgele iki parçaya bölen, daha sonra ilk kısımda eğitim alabilen ve ikinci kısımda da iyi performans gösteren birçok model vardır. Ancak bu modellerin çoğu yeni veriler üzerinde verimsiz olacaktır. Forex'te sabit bağımlılık yoktur, rastgele bir test setinde iyi sonuçlar, yeni verilerde iyi sonuçları garanti etmez. Modelin Forex için uygun olduğundan emin olmanın tek yolu ileri alma testidir:
Model, kırmızı ile işaretlenmiş veriler üzerinde iyi bir tahmin yeteneği göstermelidir. Şimdi jPrediction'da böyle bir test manuel olarak yapılmalı, her test durumu için tekrar veri girilmelidir, bu ciddi işler için uygun değildir.
Ve eğitim + test toplamından ziyade yalnızca test verileri için puanı göstermenin daha iyi olduğuna katılıyorum.
jPrediction'ın şu anda verdiği tüm tahminler Forex için yetersiz ve yalnızca yanıltıcı.
Bu arada, R için şapka paketinde ileriye alma şu şekilde yapılır:
http://topepo.github.io/caret/splitting.html (Zaman Serileri bölümü için Veri Bölme)
Model ilk 1000 örnek üzerinde eğitilecek, ardından 1001-1300 örnek üzerinde test edilecektir. Ardından 300 ile kaydırın, 301-1300 ile eğitin, 1301-1600 ile test edin ve eğitim örnekleri bitene kadar bu şekilde devam edin.
jPrediction'ın şu anda verdiği tüm tahminler Forex için yetersiz ve yalnızca yanıltıcı.
Bunlar asılsız iddialardır, yani. sıradan insanlarda saçmalık denilen şey. Walk Forward'ın etkinliğini kanıtlamak için, lütfen jPrediction'da elde edilen modeller ile Walk Forward'dan sonra elde edilen modellerin karşılaştırmalı çalışmalarının sonuçlarını, "bitler" için iki kez kontrol edilebilecek şekilde sunun. Bu tür sonuçlar sözlerinizi doğrularsa, şu anda jPrediction'da uygulanan test algoritmasını Walk Forward ile değiştirmek mantıklı olacaktır.
Görünüşte "bariz" fikirlerin, uygulandıktan ve deneyimle doğrulandıktan sonra "sahte" olduğu gerçeğiyle defalarca karşılaştım. Fikirlerin yalnızca çok küçük bir kısmı verimlilik sağlar ve çoğu zaman yalnızca bir "dosya" ile ek düzenlemeden sonra. Çünkü fikirler ayrıntıları kaçırır. Ve şeytan da bu ayrıntılardadır.
Linus Torvald (Linux çekirdeğinin yaratıcısı) tekrar etmekten asla yorulmaz: "Er ya da geç, teori pratikle buluşur. Ve pratik her zaman gerçeğin kriteridir. Daima!".
Walk Forward ile ilgili ek bir sorun, optimizasyon periyodlarının her birinde çok sayıda model elde etmemizdir. Bu modellerden hangisi çalışır durumda bırakılmalı ve hangi kriterlere göre seçilmelidir?
Bunlar asılsız iddialardır, yani. sıradan insanlarda saçmalık denilen şey. Walk Forward'ın etkinliğini kanıtlamak için, lütfen jPrediction'da elde edilen modeller ile Walk Forward'dan sonra elde edilen modellerin karşılaştırmalı çalışmalarının sonuçlarını, "bitler" için iki kez kontrol edilebilecek şekilde sunun. Bu tür sonuçlar sözlerinizi doğrularsa, şu anda jPrediction'da uygulanan test algoritmasını Walk Forward ile değiştirmek mantıklı olacaktır.
Görünüşte "bariz" fikirlerin, uygulandıktan ve deneyimle doğrulandıktan sonra "sahte" olduğu gerçeğiyle defalarca karşılaştım. Fikirlerin yalnızca çok küçük bir kısmı verimlilik sağlar ve çoğu zaman yalnızca bir "dosya" ile ek düzenlemeden sonra. Çünkü fikirler ayrıntıları kaçırır. Ve şeytan da bu ayrıntılardadır.
Linus Torvald (Linux çekirdeğinin yaratıcısı) tekrar etmekten asla yorulmaz: "Er ya da geç, teori pratikle buluşur. Ve pratik her zaman gerçeğin kriteridir. Daima!".
Walk Forward ile ilgili ek bir sorun, optimizasyon periyodlarının her birinde çok sayıda model elde etmemizdir. Bu modellerden hangisi çalışır durumda bırakılmalı ve hangi kriterlere göre seçilmelidir?
Kavga etmemelisin. Çok karmaşık bir çalışma nesnesi üzerinde çalışıyoruz. Burada birçok varsayım var. Ve bu varsayımlar, fazla uydurmaya ve örneklem dışı drenaja yol açar.
İki basit kural: Piyasayı kandırın, kendinizi kandırmayın.
Walk Forward kesinlikle iyi bir yöntemdir. Ancak orada ana parametreler eğitimin derinliği ve testin uzunluğudur. Aynı zamanda (!!!), eğer bu parametreler forvetteki sonucun en iyi olacağı şekilde sıralanırsa, Walk Forward'ı yeniden eğiteceğiz! bu yüzden böyle iyi bir yöntemin bile örnek dışı verilere ihtiyacı vardır. Yani, tek bir büyük parça üzerinde tekrar tekrar Walk Forward optimizasyonu yapıyoruz. Kesişmeyen başka bir parçada, "antrenman" üzerinde en iyi Walk Forward parametrelerini deniyoruz ve bir kez daha tam bir kurt ileri koşuyoruz, ancak bir kez yapıyoruz. Sonuç iyiyse, gömülü model bağımlılıkları yakalar. Sonuç kötüyse, Walk Forward'ı pek de iyi olmayan bir model üzerinde yeniden eğittik.
Aynı sorun, ertelenmiş bir numune üzerinde tek bir testte de mevcuttur. Şu anda üzerinde çalışıyorum: sonuçlarımı fazla uydurmaktan kurtarıyorum. Çapraz doğrulama sonuçları, nihai test için gecikmeli örnekleme ile ilişkili olmalıdır. Aynı zamanda, çapraz doğrulama için en iyi modelin seçimi, numuneden yaklaşık olarak en iyi sonuçları verecektir. Aksi takdirde - korelasyon yoksa veya negatifse - Forex için değiştirilmesi gereken yetersiz bir modelimiz var.
Bunlar asılsız iddialardır, yani. sıradan insanlarda saçmalık denilen şey. Walk Forward'ın etkinliğini kanıtlamak için, lütfen jPrediction'da elde edilen modeller ile Walk Forward'dan sonra elde edilen modellerin karşılaştırmalı çalışmalarının sonuçlarını, "bitler" için iki kez kontrol edilebilecek şekilde sunun. Bu tür sonuçlar sözlerinizi doğrularsa, şu anda jPrediction'da uygulanan test algoritmasını Walk Forward ile değiştirmek mantıklı olacaktır.
Görünüşte "bariz" fikirlerin, uygulandıktan ve deneyimle doğrulandıktan sonra "sahte" olduğu gerçeğiyle defalarca karşılaştım. Fikirlerin yalnızca çok küçük bir kısmı verimlilik sağlar ve çoğu zaman yalnızca bir "dosya" ile ek düzenlemeden sonra. Çünkü fikirler ayrıntıları kaçırır. Ve şeytan da bu ayrıntılardadır.
Linus Torvald (Linux çekirdeğinin yaratıcısı) tekrar etmekten asla yorulmaz: "Er ya da geç, teori pratikle buluşur. Ve pratik her zaman gerçeğin kriteridir. Daima!".
Walk Forward ile ilgili ek bir sorun, optimizasyon periyodlarının her birinde çok sayıda model elde etmemizdir. Bu modellerden hangisi çalışır durumda bırakılmalı ve hangi kriterlere göre seçilmelidir?
Kavga etmemelisin.
Kabul ediyorum. Ancak bunun için konuyla ilgili asılsız suçlamaların sayısını en aza indirmeniz gerekiyor. En iyi seçenek, karşılaştırmalı çalışmaların sonuçlarını yeniden kontrol imkanı ile sunmaktır.
Çok karmaşık bir çalışma nesnesi üzerinde çalışıyoruz.
Biri çalışıyor, biri kanıtsız arıyor (parmakla göstermeyeceğiz)
Kavga etmemelisin.
Kabul ediyorum.
Burada birçok varsayım var. Ve bu varsayımlar, fazla uydurmaya ve örneklem dışı drenaja yol açar.
Ekmeğin üzerine ekmek bulaştıramazsınız, cebinize koyamazsınız. Bu nedenle, her şeyin ampirik olarak doğrulanması ve bir tırmığa basmamak için doğrulanmamış varsayımlara izin vermemesi gerekir - aşırı eğitim ve numuneden boşaltma.
Walk Forward kesinlikle iyi bir yöntemdir. Ancak orada ana parametreler eğitimin derinliği ve testin uzunluğudur. Aynı zamanda (!!!), eğer bu parametreler forvetteki sonucun en iyi olacağı şekilde sıralanırsa, Walk Forward'ı yeniden eğiteceğiz! bu yüzden böyle iyi bir yöntemin bile örnek dışı verilere ihtiyacı vardır. Yani, tek bir büyük parça üzerinde tekrar tekrar Walk Forward optimizasyonu yapıyoruz. Kesişmeyen başka bir parçada, "antrenman" üzerinde en iyi Walk Forward parametrelerini denedik ve bir kez daha çalıştırdık. Sonuç iyiyse, gömülü model bağımlılıkları yakalar. Sonuç kötüyse, Walk Forward'ı pek de iyi olmayan bir model üzerinde yeniden eğittik.
Aynı sorun, ertelenmiş bir numune üzerinde tek bir testte de mevcuttur. Şu anda üzerinde çalışıyorum: sonuçlarımı fazla uydurmaktan kurtarıyorum. Çapraz doğrulama sonuçları, son test için gecikmeli örnekleme ile ilişkili olmalıdır. Aynı zamanda, çapraz doğrulama için en iyi modelin seçimi, numuneden yaklaşık olarak en iyi sonuçları verecektir. Aksi takdirde - korelasyon yoksa veya negatifse - Forex için değiştirilmesi gereken yetersiz bir modelimiz var.
Sonuç olarak, tüm yöntemlerin avantajları ve dezavantajları vardır. Varsayımlar avantajları abartır ve dezavantajları hesaba katmaz.
Daha da büyük bir nokta, hiçbir yöntemin en iyi kalite kriterine göre modelleri seçmenize izin vermemesi ve tüm yöntemlerin reddetme ilkesine göre seçilmesidir - sadece açıkça uygun olmayanları filtrelerler. ML'deki hiçbir yöntem, reddedildikten sonra kalanların potansiyel uygunluğunu hesaplayamaz.
Özellikle sabit olmayan ortamlarda. Genelleme kabiliyeti açısından en uygun görünen modelleri seçmek mümkün olabilir, ancak yarın Merkez Bankası'nın bir lideri bir toplantıda bir şeyler osuracak ve tüm modeller boşa gidecek.
Sonuç olarak, tüm yöntemlerin avantajları ve dezavantajları vardır. Varsayımlar avantajları abartır ve dezavantajları hesaba katmaz.
Daha da büyük bir nokta, hiçbir yöntemin en iyi kalite kriterine göre modelleri seçmenize izin vermemesi ve tüm yöntemlerin reddetme ilkesine göre seçilmesidir - sadece açıkça uygun olmayanları filtrelerler. ML'deki hiçbir yöntem, reddedildikten sonra kalanların potansiyel geçerliliğini hesaplayamaz.
Özellikle sabit olmayan ortamlarda. Genelleme kabiliyeti açısından en uygun görünen modelleri seçmek mümkün olabilir, ancak yarın Merkez Bankası'nın bir lideri bir toplantıda bir şeyler osuracak ve tüm modeller boşa gidecek.