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

 
elibrarius :
Umarım manuel olarak derlenmemiştir? Peki ya döngülerde? Manuel olarak - bir saatten fazla sürer ...


Bir döngüde, evet

N_INPUTS <- 10

outputfile <- "rnn_10.mq5"

cat(" double RNN(\n",paste(" double p", 1 :N_INPUTS, sep="", collapse = ",\n"),"){\n", sep="", file = outputfile)
cat("   double probability = \n", file = outputfile, append = TRUE )
i <- 0
while (i < 2 ^N_INPUTS){
  binary <- tail(rev(as.integer(intToBits(i))), N_INPUTS)
  cat("      ", file = outputfile, append = TRUE )
   for (j in 1 :N_INPUTS){
    cat("(", file = outputfile, append = TRUE )
     if (binary[j] == 0 ){
      cat(" 1.0 - ", file = outputfile, append = TRUE )
    }
    cat("p",j,") * ", sep="", file = outputfile, append = TRUE )
  }
  cat("x", i, sep="", file = outputfile, append = TRUE )
   if (i!=( 2 ^N_INPUTS- 1 )){
    cat(" +", file = outputfile, append = TRUE )
  } else {
    cat(";", file = outputfile, append = TRUE )
  }
  cat("\n", file = outputfile, append = TRUE)
  i <- i+ 1
}
cat("\n    probability=probability/ 100.0 ;\n", file = outputfile, append = TRUE )
cat("\n     return (probability);\n", file = outputfile, append = TRUE )
cat("}", file = outputfile, append = TRUE )
 
Konudan biraz uzaklaşmış ve aynı şekilde, Java'yı GPU'da çalıştırmak mümkün mü ????
 
Michael Marchukajtes :
Konudan biraz uzaklaşmış ve aynı şekilde, Java'yı GPU'da çalıştırmak mümkün mü ????

GPU'da mql5'teki her şeyi yeniden yazabilen daha geniş bir soru sorardım :)
 
Maksim Dmitrievski :

GPU'da mql5'teki her şeyi yeniden yazabilen daha geniş bir soru sorardım :)

Sadece yazışma sürecinde bir şeyi kaçırabilir veya hatalar yapabilirsiniz, aksi takdirde en azından GPU'da çalıştırabilirsiniz ve orada zaten bir tür yardımcı işlemci ekleyebilirsiniz. Peki ya da işlemcilerin gücünü İnternet şebekesinde birleştirin. Genel olarak, görev önemsiz değildir. Çekirdek sayısını 20-30'a kadar artırın ve bir model oluşturun .... sadece bu ....
 
Michael Marchukajtes :

Sadece yazışma sürecinde bir şeyi kaçırabilir veya hatalar yapabilirsiniz, aksi takdirde en azından GPU'da çalıştırabilirsiniz ve orada zaten bir tür yardımcı işlemci ekleyebilirsiniz. Peki ya da işlemcilerin gücünü İnternet şebekesinde birleştirin. Genel olarak, görev önemsiz değildir. Çekirdek sayısını 20-30'a kadar artırın ve bir model oluşturun .... sadece bu ....


Sorun şu ki, MT için er ya da geç böyle bir kütüphaneyi hala isteyeceksiniz, çünkü otomatik yeniden eğitim, daha az handjob, daha az baş ağrısı gibi daha fazla fırsat açılacak. Veya en azından bir dll olarak

Ve bunun için Java'da, bir saatliğine çok çekirdekli bir sunucu kiralayabilir ve ihtiyacınız olan her şeyi yapabilirsiniz, çünkü. iş parçacıklarına tahsisler zaten orada uygulandı .. buna değer mi, fazladan çalışma

Şahsen ben yeniden yazmaya başlamasam bile bu işe para atardım (mql5 versiyonu için)

 
Maksim Dmitrievski :


Sorun şu ki, MT için er ya da geç böyle bir kütüphaneyi hala isteyeceksiniz, çünkü otomatik yeniden eğitim, daha az handjob, daha az baş ağrısı gibi daha fazla fırsat açılacak. Veya en azından bir dll olarak

Ve bunun için Java'da, bir saatliğine çok çekirdekli bir sunucu kiralayabilir ve ihtiyacınız olan her şeyi yapabilirsiniz, çünkü. iş parçacıklarına tahsisler zaten orada uygulandı .. buna değer mi, fazladan çalışma


Bir şekilde bu dava için kiralama seçeneğini düşündüm, ama bir şekilde ellerim gerçekten ulaşmadı, ama göreceğiz ....
 
Maksim Dmitrievski :

Reshetov:

VS İki sınıf karar ormanı ve lojistik regresyon:

Pekala, burada Reshetov'un zaferi sadece kuru

Bir çeşit Reshetov'un hayran kulübü düz ... bu saçma, Tanrı tarafından)) Ayrıca bir satın alma için 1000 özellik ve bir puan için bir köy alırsınız ...

Gerçekten temiz su uyumu. Böyle bir ayrıklaştırma adımı için, 3 ay boyunca değil, en az 5 yıl boyunca eğitim örneklerine ihtiyaç duyulur, günde bir milyon puan biriktiğinde ultra-HPT için bile 3 ay yeterli değildir. Ve tekerleği yeniden icat etmeye gerek yok, doğru özelliklere sahip banal XGB, yarı optimum bir sonuç veriyor.

 
Alyoşa :

Bir çeşit Reshetov'un hayran kulübü düz ... bu saçma, Tanrı tarafından)) Ayrıca bir satın alma için 1000 özellik ve bir puan için bir köy alırsınız ...

Gerçekten temiz su uyumu. Böyle bir ayrıklaştırma adımı için, 3 ay boyunca değil, en az 5 yıl boyunca eğitim örneklerine ihtiyaç duyulur, günde bir milyon puan biriktiğinde ultra-HPT için bile 3 ay yeterli değildir. Ve tekerleği yeniden icat etmeye gerek yok, doğru özelliklere sahip banal XGB, yarı optimum bir sonuç veriyor.


Hayır, hayran değiliz, sadece optimumu arıyoruz) HFT için 3 ay fazlasıyla yeterli. Banal XGB nedir? sadece saf baylar bilir :)

Uygun olsa bile diğer modeller ben bükmediğim için yapamıyor.

 
Dr. tüccar :

Tahmin edicilerin önemini aşağıdaki gibi tanımlamak daha iyidir.

 library (vtreat)

sourceTable <- read.table( "BuySell.csv" , sep= ";" , header = TRUE , stringsAsFactors = FALSE )

#Эта строка кода относится только к конкретно этому файлу.
этом csv первая колонка и первая строка специально заполнены для конкретной модели, и тут не нужны. Удалить.
#для обычных csv файлов такую команду выполнять не нужно.
sourceTable <- sourceTable[- 1 ,- 1 ]

#число колонок
sourceTable_ncol <- ncol(sourceTable)

#Оценка для классификации, только для двух классов.
#Outcometarget должен быть равен значению одного из классов.
#На выбор или эта функция designTreatmentsC, или designTreatmentsN, или designTreatmentsZ (ниже, закоменчены)
#Взаимная корреляция предкиторов учитывается только в designTreatmentsC, и у повторяющихся или похожих предикторов оценка будет понижаться
set.seed( 0 )
treats <- designTreatmentsC(dframe = sourceTable,
                            varlist = colnames(sourceTable)[-sourceTable_ncol],
                            outcomename = colnames(sourceTable)[sourceTable_ncol],
                            outcometarget = 1 ,
                            verbose = FALSE
)

# #оценка для регрессии или если больше двух классов
# sourceTable[,sourceTable_ncol] <- as.numeric(sourceTable[,sourceTable_ncol])
# set.seed( 0 )
# treats <- designTreatmentsN(dframe = sourceTable,
#                             varlist = colnames(sourceTable)[-sourceTable_ncol],
#                             outcomename = colnames(sourceTable)[sourceTable_ncol],
#                             verbose = FALSE
# )

# #Оценка предикторов без учёта цели.
# set.seed( 0 )
# treats <- designTreatmentsZ(dframe = sourceTable,
#                             varlist = colnames(sourceTable)[-sourceTable_ncol],
#                             verbose = FALSE
# )
# 




#табличка только с названием колонки и её оценкой важности
resultTable <- treats$scoreFrame[,c( "varName" , "sig" )]

#сортировка
resultTable <- resultTable[order(resultTable$sig),]

#согласно общему правилу, оценка предиктора (sig) должна быть меньше 1 /<общее число предикторов>
#чем оценка меньше, тем лучше
resultTable$testPassed <- resultTable$sig < 1 /(sourceTable_ncol- 1 )

#для создания модели и прогноза лучше использовать только те предкторы у которых testPassed == TRUE
resultTable

Anladığım kadarıyla kendi aralarında korelasyonu yüksek olan tahminciler eleniyor.
Bunu biraz farklı yapıyorum - tam korelasyon matrisini hesaplıyorum ve ardından 1.den başlayarak korelasyonu kontrol ediyorum, eğer 0.9'dan (ayarlanabilir parametre) yüksekse, sonra filtreliyorum. Yöntem MO makalelerinde açıklanmıştır.

Görünüşe göre birçok tahmin ediciyi ortadan kaldırmışsınız ... görünüşe göre işleviniz 0,5 düzeyinde bir yerde filtreliyor.


 
Maksim Dmitrievski :


Hayır, hayran değiliz, sadece optimumu arıyoruz) HFT için 3 ay fazlasıyla yeterli. Banal XGB nedir? sadece saf baylar bilir :)

Uygun olsa bile diğer modeller ben bükmediğim için yapamıyor.

XGB - https://en.wikipedia.org/wiki/Xgboost - makine öğrenimi termonükleer silah. En popüler olarak "Banal".

Hft için 3 ay tam bir simülasyon döngüsü için yeterli değil çünkü modelin farklı pazarlarda, mod değişikliklerinde, flash çatılarda ve farklı kuğularda test edilmesi gerektiğinden, sentetik stres testi bunu gerçek pazar olarak yapamaz. Nihai model çoğunlukla önceki haftanın verilerinden fazlasını kullanmayacak, ancak yapılandırmak için her yerde bozulmadığından emin olmak için 1-3 yıllık numuneler üzerinde çalıştırılması gerekecek. 3 aylık veride öğrenebilirsiniz ve eğer veri bilimcileri işini bilirse, o zaman sıradan bir buggy biçme makinesi alırsınız, ancak bir gün, belki 3 ay sonra, belki yarım yıl sonra, "bilinmeyen bir şey" için her şey aniden bozulabilir. Model, piyasanın böyle bir meta-durumu ile çarpışmadığından ve alakasız hale geldiğinden, daha kesin olarak bilinen sebep.