Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 88

 
Sihirbaz_ :
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?
Hayır ... Her şeyi beğendim, oldukça sağlam bir program çıktı. Yani Yura 100 puan
 
San Sanych Fomenko :

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.

Doğrudan dilden alınır. Biz öyle biliyoruz. Bütün gece düşünmekten uyuyamadım. Bakın, IDEAL çıktısı için tahmin edicilere dayalı modeller oluşturuyoruz. Nadir durumlarda aynı anda %50-60 genelleme. İDEAL çıktı için girdi bulmak imkansız değilse de kolay değildir. Peki ya ÇIKTI İDEAL DEĞİLSE. Ya içinde %100 genellemeye yol açacak hatalar yaparsak ??? Böylece girdi verilerinin neler yapabileceğini öğreniyoruz ve bu İDEAL OLMAYAN çıktı kazanırsa (hatalarla bile), gelecekte yaşama hakkına sahiptir. İlk başta, modelin kendisi ve çıktı değişkeni için çift optimizasyonun gerekli olduğunu düşündüm. ANCAK, sonra aklıma geldi. Neden bu rendeler, çünkü model genellemenin %60'ını öğrenmişse, o zaman formülleri göstergeye koyarak ve eğitim ve test örneklerinde sinyaller alarak sistemin %100 çalıştığı bir sonuç elde edeceğiz. yani, eğitim ve test örnekleri üzerinde sinyaller alırsak ve bu sinyallere göre çıkış değişkenini değiştirirsek, aynı %100 eğitimi alırız. Bu nedenle sonuç. % 50-60 genelleme ile birkaç model aldıktan sonra, eğitim ve test alanında puan alan (kazanılan) modeli seçiyoruz. Bu, genel olarak, ana sinyalleri (yeterli kar getirenler) kazandığını ve birleştiği sinyallerin çok kârsız olmadığını (gülümsemenizi paylaşın ve size bir kereden fazla geri dönecektir), asıl mesele şudur: Kazandığımız dönemin sonunda. Yani böyle bir şey......
 
Sihirbaz_ :
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)

library(caret)
caretObj <- train(x = trainData[, 1 :(ncol(trainData)- 1 )],
                  y = trainData[,ncol(trainData)],
                  trControl = trainControl(method = "timeslice" , initialWindow= 1000 , horizon= 300 , fixedWindow= TRUE ),
                  verbose = TRUE )

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.

 
Sihirbaz_ :
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?
  1. Sonuç olarak, Excel'de bir sayının tamsayı kısmını kesirli kısımdan ayırmak için bir virgül kullanılır. Daha fazla ayırıcı yapıştırırsanız, seçimleri farklı ayrıcalıklarda düzenleyenlerin, jPrediction'da bir tef ile ek danslar olmadan çiftliklerini kıpırdatamayacakları oldukça açıktır. Onlar. şu anda her şey elektronik tablolarla az çok uyumlu hale getirildi. Şu anda ayrıştırıcı yalnızca CSV dosyaları için uygulanmaktadır ve elektronik tablolar için uyarlanmıştır. Ancak jPrediction, OOP'de yerleşiktir ve arayüz diğer formatlara genişletilebilir.
  2. İkinci nokta, jPrediction'da ek ayarların olmadığı ve asla olmayacağıdır. jPrediction'da kullanıcının görevi, hazır bir seçim yapmak ve F8 tuşuna basarak bir model veya "Çöp içeri, Çöp dışarı" mesajını makul bir sürede almaktır. Her türlü yaygarayı kim sever, örneğin: algoritmaları öğrenmek, programları değiştirmek, ağ mimarileri tasarlamak ve bir görev için yüksek kaliteli veri seçme açısından araştırma yapmamak gibi, sonra diğer ML paketlerini alsınlar. Artık bu tür birçok paket var ve hayatınızın geri kalanında onları kurcalayabilirsiniz. Makine öğreniminin ana özü, modelin genelleme yeteneğinin, algoritmalara ve ayarlarına değil, yalnızca örnekteki verilerin kalitesine bağlı olmasıdır. Bu nedenle, seçimde tüm sorunlar aranmalı ve jPrediction'da bir şeyi ayarlamaya çalışmamalıdır.
  3. 2. noktaya bakın.
  4. 2. maddeye bakın
  5. -
  6. Bir formül göstermez, ancak modeli diğer uygulamalara taşımak için kod görüntüler. Şu anda Java uygulamalarına taşıma kodu uygulandı. Daha sonra model kodunun MQL'ye taşınması planlanmaktadır. Bu tür kodlar mümkün olduğunca kısa olmalı ve uzun bir ayak örtüsü olmamalıdır. Bu nedenle, gereksiz olan her şey ondan çıkarıldı ve sıklıkla tekrarlanan her şey ayrı ayrı çıkarıldı.
  7. Proje sitesi jprediction.com'dadır ve ayrıca en son sürümleri indirmek için bir "İndir" menü öğesi vardır.

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.

 
Dr.Tüccar :

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.

Süper bilgi. Teşekkür ederim!
 
Dr.Tüccar :

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?

 
Yuri Reshetov :

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.

 
Yuri Reshetov :

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?

Size tüm saygımla Reshetov, bisiklet yazarları, "genelleme yeteneği" gibi terminolojileri de dahil olmak üzere güneş altındaki yerlerini kanıtlamalıdır. Dr.Trader'ın pozisyonunun uygunluğu, tam olarak, onun tarafından ifade edilen fikirlerin milyonlarca kullanıcısı tarafından hem teori hem de pratik doğrulamanın gerekli tüm kanıtlarının, genellikle yıllar önce ondan önce yapılmış olması gerçeğinde yatmaktadır. Sadece belirli kullanım örnekleri veriyor. Ve tartışılan gönderinin doğruluğu hem sezgisel düzeyde hem de teorik düzeyde açıktır.
 
Alexey Burnakov :

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.

Alexey Burnakov :

Çok karmaşık bir çalışma nesnesi üzerinde çalışıyoruz.

Biri çalışıyor, biri kanıtsız arıyor (parmakla göstermeyeceğiz)

Alexey Burnakov :

Kavga etmemelisin.

Kabul ediyorum.

Alexey Burnakov :

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.


Alexey Burnakov :

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.

 
Yuri Reshetov :


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.

Ve orada. Sadece deneysel olarak. Model seçiminin (eğitim + test üzerine) en iyi olup olmadığını bu modeli örneklem dışında uygulayarak anlayabilirsiniz. Bu farklı modeller için yapılabilir. Örneklemde iyi bir modelin seçilmesinin örneklem dışında iyi bir sonuç vermesi, modelin seçilen probleme uyduğu anlamına gelir.
Neden: