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

 
Anton Zverev'in fotoğrafı.
Karmaşık ticaret teorileri oluşturmaya çalıştıkları bu tür konuları (sadece bu forumda değil) her zaman okurum.
Genetik algoritmalar , sinir ağları, yalnızca yazarın kendisi için net olan kafa karıştırıcı formüller vb.

Ve her zaman bu tür sistemlerin piyasada çalışmadığını görüyorum. İzleme ya sıfıra ya da eksiye gider.
Ama diğer yandan, bir sonraki konuda, birisi iki hareketli ortalamada danışman olarak kazanıyor. Ve iyi kazanıyor.

Soru şu ki, her şey mantıklı mı?
Çünkü benim tecrübeme göre sistem ne kadar basit ve anlaşılırsa o kadar karlı.

Eski moda bir aracı kurumda katip olma ihtimalin var mı?

Lütfen beni "nasıl yapılır" konusunda aydınlatın, sanırım "gizli yönteminiz" araba takas etmek (rastgele) ve kaybettiğinizde ikiye katlamak, değil mi?)))

Beyler komisyonda yaşamak zorunda kalacak, sadece komisyonda ...

 
Dr.Tüccar :

Komitenin oluşturulması ve test edilmesi:

Orijinal sınıfların faktör türünde olması ve matristeki sonucun faktörlere karşılık gelen sıra sayılarına dönüştürülmesi sorunu vardır. Bu nedenle, sonunda karşılaştırma as.numberic() üzerinden yapılır.

Faktörlerle her şeyin yolunda gitmesi için data.frame olarak tahminMatrisi oluşturmanız gerekiyor, ancak bundan sonra rbind işlevim uyarılar verdi, başka bir şeyi değiştirmeniz gerekiyor, orada neyin yanlış olduğunu anlamadım.

Kod hakkında birkaç düşünce:

1. Kesinlikle gerekli olmadıkça for () yapısını kullanmayın. Yüksek yürütme hızına ek olarak, mevcut çekirdekler arasındaki hesaplamaları paralelleştirmenize olanak tanıyan foreach() için harika bir alternatif vardır.

2. Bir modeller topluluğu anlamlıdır ve yalnızca modellerin önemli farklılıkları varsa sonuç verir. İki seçenek: bir veri seti - farklı modeller (RF, DT, SVM); bir model - farklı veri kümeleri. Son seçeneğe bir örnek aşağıdadır.

#----------------------------------------------------------------------
require(ranger)
require( foreach )
require(magrittr)
data( "iris" )
totalModels = 50
res <- list()
Acc <- c()
res <- foreach (i = seq_len(totalModels),
               .packages = c( "ranger" , "magrittr" )) % do % {
          id <- rminer::holdout(y = iris$Species, ratio = 2 / 3 )
          x.test <- iris[id$ts, -ncol(iris)]
          y.test <- iris[id$ts, ncol(iris)]
          model <- ranger(Species~., data = iris[id$tr, ], 
                          write.forest = TRUE)
          pred <- predict(model, x.test)$predictions
          acc <- sum(pred == y.test) / length(y.test)
          list(Acc = acc, mod = model) 
        }
for (i in 1 :totalModels) {Acc[i] <- res[[i]]$Acc}
Acc
 [ 1 ] 0.9803922 0.9607843 0.9803922 0.9607843
 [ 5 ] 0.9607843 0.9215686 1.0000000 0.9411765
 [ 9 ] 0.9019608 0.9607843 0.9803922 0.9607843
[ 13 ] 0.9803922 0.9215686 0.9607843 0.9215686
[ 17 ] 0.9803922 0.8823529 0.9411765 0.9803922
[ 21 ] 0.9607843 0.9215686 0.9607843 0.9411765
[ 25 ] 0.9411765 0.9607843 0.9411765 0.9607843
[ 29 ] 0.8823529 0.9019608 1.0000000 0.9411765
[ 33 ] 0.9215686 0.9803922 1.0000000 0.9607843
[ 37 ] 0.9411765 0.9803922 0.9607843 0.9215686
[ 41 ] 0.9411765 0.9607843 0.9411765 1.0000000
[ 45 ] 0.9607843 0.9411765 0.9215686 0.9411765
[ 49 ] 0.9803922 0.9607843

Performansı en iyi olan modelleri seçiyor ve onlarla çalışmaya devam ediyoruz.

İyi şanlar

 
Vladimir Perervenko :

Kod hakkında birkaç düşünce:

1. Kesinlikle gerekli olmadıkça for () yapısını kullanmayın. Yüksek yürütme hızına ek olarak, mevcut çekirdekler arasındaki hesaplamaları paralelleştirmenize olanak tanıyan foreach () için harika bir alternatif vardır.

2. Bir modeller topluluğu anlamlıdır ve yalnızca modellerin önemli farklılıkları varsa sonuç verir. İki seçenek: bir veri seti - farklı modeller (RF, DT, SVM); bir model - farklı veri kümeleri. Son seçeneğe bir örnek aşağıdadır.

Performansı en iyi olan modelleri seçiyor ve onlarla çalışmaya devam ediyoruz.

İyi şanlar

Seni daha sık görmek isterim. Kaybolma.
 
Vladimir Perervenko :


Performansı en iyi olan modelleri seçiyor ve onlarla çalışmaya devam ediyoruz.


Sorun burada yatıyor.

Ve hangi verilerin en iyi göstergeleri hesaplanır?

Bunu sormamın nedeni, vkonts'un eğitim ve test verilerini kullanarak (birçok modelden) bir modelin nasıl seçileceğini bulmak için çok uğraşmasıdır. Ve işte burada çok doğrudan var: en iyi göstergeleri alıyoruz ve onlarla çalışıyoruz.

 
Alexey Burnakov :

Sorun burada yatıyor.

Ve hangi verilerin en iyi göstergeleri hesaplanır?

Bunu sormamın nedeni, vkonts'un eğitim ve test verilerini kullanarak (birçok modelden) bir modelin nasıl seçileceğini bulmak için çok uğraşmasıdır. Ve işte burada çok doğrudan var: en iyi göstergeleri alıyoruz ve onlarla çalışıyoruz.

Orijinal set, katmanlaştırılmış eğitim/test olarak bölünmüştür. Trende sırasıyla test için eğitim alıyoruz, test ediyoruz. Koddan anlaşılmıyor mu?

İyi şanlar

 
San Sanych Fomenko :
Seni daha sık görmek isterim. Kaybolma.
Ne yazık ki, zaman zaman siteye göz atmak için yalnızca yeterli zaman vardır. Çok iş.
 
Vladimir Perervenko :

Orijinal set, katmanlaştırılmış eğitim/test olarak bölünmüştür. Trende sırasıyla test için eğitim alıyoruz, test ediyoruz. Koddan anlaşılmıyor mu?

İyi şanlar

rminer::holdout'u deneyeceğim, örnek için teşekkürler. Genel olarak, deneyimden yola çıkarak, modeli ve parametrelerini test örneğinde en iyi sonucu alacak şekilde seçerseniz, model sonunda test örneğinde gerçekten iyi bir sonuç gösterecektir. Ancak aynı zamanda, sonuç genellikle yeni verilerde çok düşüktür. Özellikle forex verilerinden bahsediyorum, diğer alanlarda bu tamamen normal bir yaklaşım. Forex için rminer::holdout'un herhangi bir şeyi büyük ölçüde değiştireceğini ummuyorum.
 
Dr.Tüccar :
rminer::holdout'u deneyeceğim, örnek için teşekkürler. Genel olarak, deneyimden yola çıkarak, modeli ve parametrelerini test setinde en iyi sonucu alacak şekilde seçerseniz, model sonunda test setinde gerçekten iyi bir sonuç gösterecektir. Ancak aynı zamanda, sonuç genellikle yeni verilerde çok düşüktür. Özellikle forex verilerinden bahsediyorum, diğer alanlarda bu tamamen normal bir yaklaşım. Forex için rminer::holdout'un herhangi bir şeyi büyük ölçüde değiştireceğini ummuyorum.
Ben bundan bahsediyorum. Ve anlamadı.

Forex'te iyi bir test, iyi bir örnek dışı performans anlamına gelmez. Burası insanların savaştığı yer. Ve işte böyle - en iyi sonuçları (ve uyum ustasını) alıyoruz. nazikçe)
 
Dr.Tüccar :
o zaman model sonunda test örneğinde gerçekten iyi bir sonuç gösterecektir. Ancak aynı zamanda, sonuç genellikle yeni verilerde çok düşüktür. Özellikle forex verilerinden bahsediyorum,
Alexey Burnakov :
Forex'te iyi bir test, iyi bir örnek dışı performans anlamına gelmez. Burası insanların savaştığı yer.

Piyasa kendi istatistiklerine aykırıdır , bu pratikle onayladığım bir teori, modelin neden yeni veriler üzerinde çalışmadığından ve herkesin neden kaybettiği ile biten tüm sorulara cevap veren bildiğim tek teori bu. piyasada para...

kabul etmek senin için neden bu kadar zor?

Eski bilgi ve alışkanlıkların bagajı gerçekten yeni bilgi algısını bu kadar çok mu bastırıyor?

Modeller arasındaki performans farkı %0,5 ile %5 arasındaysa neden modele bu kadar odaklanalım?

hiçbir model burada yardımcı olmaz çünkü öz verinin kendisindedir

1

Bu fotoğrafı defalarca paylaştım ama yine de...

Bir göz at! bu, cum(buy.signal) - cum(sell.signal) ağlarından alım ve satım için kümülatif tahminlerdeki farktır, ideal olarak, modelimiz iyiyse, o zaman mavi grafik fiyatla ilişkili olmalıdır, bu da şu anlama gelir: ağ verileri iyi anlıyor ve yeterince tepki veriyorlar, aslında ne görüyoruz??????????

Modelin verileri anlamadığı söylenemez, çünkü korelasyon ters olmasına rağmen yapı aynıdır, ancak yönle ilgili sorun vardır, piyasa tahminlere, ağın eğitildiği istatistiklere aykırıdır. geçmişte...

Şimdi söyle bana hangi model bunu halledebilir? Burada hangi çapraz doğrulama yardımcı olacak? Örnek dışı (yeni veriler) için testin ardından herhangi bir model eğitimi, örnek dışı için iyi çalışan bir modele uymaktan başka bir şey olmayacak ve başka bir şey değil .. Ve modelleri eğitirken, kendiniz sürekli olarak kesinlikle yeni verilerde, model her zaman boşalır , anlıyor musun? Katılıyorum!! Bunun neden olduğunu sana cevaplıyorum

 

Ve bu, eğitimin kendisinin gerçekleştiği verileri içeren bir grafik mi, yoksa sadece yeni veriler üzerinde bir test mi? Hem eğitim hem de test için aynı anda her iki zaman periyodu için bir grafik çizerseniz, verilerin ilk (eğitim) kısmında mavi ve gri grafiklerin tam bir çakışması olacaktır ve başlangıcı ile yeni veriler, ters korelasyona keskin bir geçiş olacak mı?

Her şey bu kadar basit olsaydı, herhangi bir modeli eğitmek ve tahminlerini tersine çevirmek yeterli olurdu. Bu maalesef işe yaramıyor.
Yeni veriler üzerinde %0 doğruluk sağlayan bir modeli eğitmek, %100 doğruluk elde etmek kadar zordur. Varsayılan olarak, örneğin, bir yazı tura atarken, doğruluk %50 olacaktır ve herhangi bir yönde yüzde birkaç onluk gitmek aynı karmaşıklıkta bir görevdir. Sorun, modellerin tam tersi sonuç vermesi değil, bazı çubuklarda sonucun doğru, bazılarında yanlış olacağı ve tüm bunların rastgele ve yalnızca doğru sonuçları filtreleme yeteneği olmadan olmasıdır.

Ve neden S tahminini B tahmininden çıkarıyorsunuz? Belki de tam tersini yapmalısın, SB? O zaman korelasyon aniden doğru hale gelecektir.