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

 
Dr.Tüccar :
Forex ticaretini kullanırken önemine güvenmemeye devam edin. İris çok basit bir veridir, mevcut veriler ve sınıflar arasında doğrudan kalıplar vardır . RF, iris sınıflarının belirlenebileceği minimum öngörücü kümesini bulmak yeterlidir - ve işiniz bitti.

ve bu RF doğrudan olmayan bağımlılıkları yakalayabilir mi? Bana öyle geliyor ki, yalnızca öngörücülerin çürümüş olması nedeniyle pazar için çalışmıyor, normal öngörücüler olsaydı, % 95'in altında bir hatayla süsen gibi çalışırdı

 

Süsen ile, her şey basittir - eğer taç yaprağı falan filan ve böyle bir uzunlukta ise, o zaman bu sınıf 1'dir ve eğer falan filan ve böyle bir genişliğe ise, o zaman bu zaten sınıf 2'dir, vb. RF'nin yaptığı, hedef değerlere en uygun tahmin edici değer aralıklarını bulmasıdır.

Bu görev için bir orman bile gerekli değildir,% 90 doğruluk için bir ağaç yeterlidir:

 Rule number: 2 [Species=setosa cover= 33 ( 31 %) prob= 1.00 ]
   Petal.Length< 2.6

 Rule number: 7 [Species=virginica cover= 35 ( 33 %) prob= 0.00 ]
   Petal.Length>= 2.6
   Petal.Length>= 4.85

 Rule number: 6 [Species=versicolor cover= 37 ( 35 %) prob= 0.00 ]
   Petal.Length>= 2.6
   Petal.Length< 4.85

Yani, belirli bir tahmin edici değer aralığı veya bunların kombinasyonu belirli bir sınıfa karşılık geliyorsa ve bu aralıklar kesişmiyorsa, ağaç veya orman her şeye %100 karar verecektir.

Forex bağımlılıkları çok daha karmaşıktır ve ormanın hedef değerleri tanımlamak için düzinelerce tahminciye ihtiyacı vardır. Orman kesinlikle bu tür tahmin aralıklarını ve hedef değerleri tanımlayan kombinasyonlarını bulacaktır, ancak bunlar herhangi bir mantık veya analiz olmaksızın sadece seçilmiş kombinasyonlar olacaktır. Ormanın karar için alacağı şey - gürültü veya gerçekten önemli bir tahmin edici - bir şans meselesidir. Forex ormanı, yalnızca uygun olmayan tahminciler önceden ortadan kaldırılırsa ve eğitim için yalnızca gerekli tahminciler bırakılırsa doğru şekilde çalışacaktır. Sorun şu ki, gerekli tahmin edicilerin hala bir şekilde belirlenmesi veya bulunması gerekiyor ve orman bu konuda yardımcı değil.

ForeCA henüz yapamadım.

Zamanın çoğu, eğitim tablosunun cov() öğesinden sonra özdeğer = 0 olan tahmin edicileri ayıklamak için harcandı (yalnızca özel olarak ilişkili tahmin edicilerin uyduğuna inanıyorum). Bir gün sonra, hata nedeniyle eğitilmeyen ForeCA modelinin kendisini eğitmeye geldi:

unit-variance: Mean relative difference: 3.520041 e- 06
Error in check_whitened(out$score, FALSE ) : Data must be whitened:
         Each variable must have variance 1 .

Paket, tahminciler için çok talepkar, birçok sınırlama var. Son hatanın ne anlama geldiğini bile bilmiyorum, anlamaya devam edeceğim.

Daha sonra eklendi:
Google, tahmin edicileri silmenin isteğe bağlı olduğunu söylüyor. Bunları, korelasyon kurmayı bırakacak şekilde dönüştürebilirsiniz, o zaman kovaryans matrisi ForeCA için gerekli olan tam dereceye sahip olacaktır. Beyazlatma için, paketin kendisinde bazı işlevler var (yarım vuruşla çalışmadı, çözmeniz gerekiyor), ayrıca aşağıdaki linklerdeki teori.
ForeCA paketini doğru bir şekilde kullanmak için önce bunu nasıl yapacağınızı anlamalı ve öğrenmelisiniz:
http://stats.stackexchange.com/questions/23420/is-whitening-always-good
http://courses.media.mit.edu/2010fall/mas622j/whiten.pdf

 
Dr.Tüccar :

1) Forex ormanı, yalnızca uygun olmayan tahminciler önceden ortadan kaldırılırsa ve eğitim için yalnızca gerekli tahminciler bırakılırsa doğru şekilde çalışacaktır. Sorun şu ki, gerekli tahmin edicilerin hala bir şekilde belirlenmesi veya bulunması gerekiyor ve orman bu konuda yardımcı değil.

2) Paket, tahminciler için çok talepkar, birçok kısıtlama var. Son hatanın ne anlama geldiğini bile bilmiyorum, anlamaya devam edeceğim.

1) Bana göründüğü gibi, böyle bir seçimin nasıl yapılacağı oldukça iyi bir fikir önerdim, ancak kimse ilgilenmiyor, ancak kendim uygulayamıyorum

2) Yalnızca veri miktarını azaltın, aksi takdirde kendiniz bilirsiniz)

 

iris hakkında devamında, oradaki veriler forex'ten daha basit ve aynı zamanda daha bilgilendirici...

fiyatlarla benzer bir şey yapmanız gerekiyor, bu gönderiyi zaten gönderdim ama kimse yanıt vermedi, tekrar deneyeceğim, VR'de dinamik zaman atlama - dinamik zaman atlama (DTW) diye bir şey var, burada kullanabilirsiniz fiyat grafiğini daha okunabilir hale getirin ve sonuç olarak algoritma için daha tanınabilir hale getirin

data_driven_time_warp <- function (y) {
  cbind(
    x = cumsum(c( 0 , abs(diff(y)))),
    y = y
  )
}

y <- cumsum(rnorm( 200 ))+ 1000

i <- seq( 1 ,length(y),by= 10 )
op <- par(mfrow=c( 2 , 1 ), mar=c(. 1 ,. 1 ,. 1 ,. 1 ))
plot(y, type= "l" , axes = FALSE )
abline(v=i, col= "grey" )
lines(y, lwd= 3 )
box()
d <- data_driven_time_warp(y)
plot(d, type= "l" , axes= FALSE )
abline(v=d[i, 1 ], col= "grey" )
lines(d, lwd= 3 )
box()
par(op)

ve her şey harika görünüyor, ancak üzücü olan, böyle bir dönüşümün sonucunda iki x ve y koordinatı, zaman (sentetik) ve değer elde etmemizdir.

d
                x        y
  [ 1 ,]   0.000000 1001.393
  [ 2 ,]   1.081118 1002.474
  [ 3 ,]   2.799970 1004.193
  [ 4 ,]   3.706653 1005.100
  [ 5 ,]   3.867351 1005.260
  [ 6 ,]   4.654784 1004.473
  [ 7 ,]   5.000202 1004.127
  [ 8 ,]   6.665623 1005.793
  [ 9 ,]   7.415255 1005.043
 [ 10 ,]   7.956572 1005.584
 [ 11 ,]   8.403185 1005.138
 [ 12 ,]   9.352230 1004.189
 [ 13 ,]   9.913620 1004.750
 [ 14 ,]   10.249985 1004.414

Şimdi soru, özelliklerini kaybetmemesi için bu dönüşümün normal bir vektöre nasıl döndürüleceğidir.

dönüşüm böyle görünüyor - üstte normal, altta dtw

D.T.W.

 
mytarmailS :

1) Bana göründüğü gibi, böyle bir seçimin nasıl yapılacağı oldukça iyi bir fikir önerdim ama kimse ilgilenmiyor, ancak kendim uygulayamıyorum

2) Yalnızca veri miktarını azaltın, aksi takdirde kendiniz bilirsiniz)

Ne öneriyorsun? Kaçtığım ortaya çıktı mı? Fikrini tekrar edebilir misin?
 
San Sanych Fomenko :
Ne öneriyorsun? Kaçtığım ortaya çıktı mı? Fikrini tekrar edebilir misin?
bak kümelenmeyi nereye yazmışım orda çok detaylı anlattım işin özünü
 
mytarmailS :

soru , özelliklerini kaybetmemesi için bu dönüşümün normal bir vektöre nasıl döndürüleceğidir.

Peki bu konuda fikri olan??
 

ForeCA ile başka bir örnek yaptım, arşivde test için küçük bir tablo ve onunla çalışmak için kod var.
Bu sefer her şeyi doğru yaptı.
Model için eğitim verileriyle kendi tablonuzu alabilirsiniz, asıl şey, faktörlerin olmadan bir matris olması gerektiğidir (lm ile eğitim, yalnızca regresyon mümkündür). Satır sayısı, tahmin edicilerin sayısından önemli ölçüde fazla olmalıdır, aksi takdirde ForeCA'da hatalar olacaktır.
Hedef değerlerim 0 ve 1, diğerleri ile doğruluk yanlış belirlenecek, eğer varsa, regresyon sonucunun sınıflara yuvarlandığı yerde sizin durumunuz için RegressionToClasses01 (regr) içindeki kodu düzeltin.
trainData - eğitim verileri
trainDataFT - ön test verileri

Sonuç:
Orijinal verilerde lm: Eğitim verilerinde %75 ve yeni verilerde %57 doğruluk.
foreCA'nın 14 bileşeninin tamamında lm: eğitim verilerinde %75 ve yenilerinde %61. Biraz daha iyi ama bu durumda +4% sadece +1 doğru sonuç, tablo oldukça küçük :)

Yani, tahminciler önceden seçilmişse, ForeCA'dan sonra daha kötü olmamalı, hatta belki yüzde birkaç doğruluk eklenmelidir.

Doğruluğun ForeCA bileşenlerinin sayısına bağlı olduğu başka bir grafik eklendi. Görünüşe göre, bileşen ne kadar büyük olursa, sonuç o kadar güvenilir olur. İzin verilen maksimum bileşen sayısı = tahmin edici sayısı.


Dosyalar:
 

Deneyin ikinci kısmı -

Daha önce seçtiğim 14 tahmincim vardı, bunlara rastgele değerlerle 14 tane daha ekledim. İzin verilen maksimum ForeCA bileşeni sayısı artık 28'dir.

Her iki durumda (foreCA ile ve olmadan) eğitim verileriyle ilgili 28 bileşenin tümü ile tahmin doğruluğu %76, her iki durumda da yeni verilerde doğruluk %57'dir.

Bana göre foreCA tahmincilerdeki çöplerle baş edemedi, beklenen mucizeyi görmedim.

 
mytarmailS :
Böylece??
Bir Renko tablosuna benziyor. Renko bir şekilde çubuklardaki mt5 terminalinde çizilir, burada benzer bir algoritmaya ihtiyaç vardır.
Neden: