"Üçüncü Nesil Nöral Ağlar: Derin Ağlar" makalesi için tartışma - sayfa 12

 
kimkarus:

Vladimir Perervenko

Makaleye R Studio ile çalışma hakkında ek bilgi ekleyin

  • Her şeyin doğru çalışmasını sağlamak için hosts dosyasında "localhost "a başka referans olmadığından emin olmanız gerekir.

İyi günler.

Hosts dosyası hakkında bir şey anlamadım. Daha fazla ayrıntı verebilir misiniz?

İyi şanslar

 
kimkarus:

Vladimir Perervenko

Makaleye R Studio ile çalışma hakkında ek bilgi ekleyin

  • Her şeyi doğru şekilde çalıştırmak için hosts dosyasında "localhost" için başka referans olmadığından emin olmanız gerekir.
  • Tüm paketleri yüklediğinizden ve komutla çalıştırdığınızdan emin olun (R çalışma alanında):

install.packages("R.matlab")
install.packages("deepnet")
install.packages("caret")
install.packages("h2o")
install.packages("TTR")
install.packages("rminer")
install.packages("foreach")
install.packages("doParallel")
install.packages("svSocket")
install.packages("lattice")
install.packages("ggplot2")
install.packages("statmod")
install.packages("kknn")
install.packages("iterators")
install.packages("paralel")

library("R.matlab")
library("deepnet")
library("caret")
library("h2o")
library("TTR")
library("rminer")
library("foreach")
library("doParallel")
library("svSocket")
library("lattice")
library("ggplot2")
library("statmod")
library("kknn")
library("iterators")
library("paralel")

Yüklü paketleri kontrol etmek için başka bir kayıt biçimi kullanıyorum:

packets <- Hmisc::Cs(R.matlab, deepnet, caret, h2o, TTR, rminer, foreach, doParallel, 
                        svSocket, lattice, ggplot2, statmod, kknn, iterators, parallel)
for(i in 1:length(packets)) {
  if (! (packets[i] %in% rownames(installed.packages()))) { 
    install.packages(packets[i]) }
}

Kütüphaneleri, onları kullanan fonksiyonların açıklamasında yüklemelisiniz. Yine de Uzman Danışmanı başlatırken bu şekilde yapabilirsiniz.

Öyleyse neden Uzman Danışmanı test cihazında çalıştırmanız gerekiyor?

İyi şanslar

 

Uzun süredir R komut dosyalarında hata ayıklarken, gelen verilerde NA varsa yakalanması zor bir hata tespit ettim. Basitçe sinyali tetiklemeyecektir. "e_SAE_init.r" dosyasında, new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x)'ten önce Test(dt,x) fonksiyonuna bir NA temizleme terimi eklenmesi önerilir;

Bu bir "koltuk değneği" gibi görünüyor, ancak henüz daha iyi bir şey düşünmedim.

Bu olmadan, gizli bir hata oluşacaktır:

Hata if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE gereken yerde eksik değer

 
kimkarus:

Uzun süredir R komut dosyalarında hata ayıklarken, gelen verilerde NA varsa yakalanması zor bir hata tespit ettim. Basitçe sinyali tetiklemeyecektir. "e_SAE_init.r" dosyasında, new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x)'ten önce Test(dt,x) fonksiyonuna bir NA temizleme terimi eklenmesi önerilir;

Bu bir "koltuk değneği" gibi görünüyor, ancak henüz daha iyi bir şey düşünmedim.

Bu olmadan, gizli bir hata oluşacaktır:

Hata if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE gereken yerde eksik değer

kimkarus:

Uzun süredir R betiklerinde hata ayıklarken, gelen verilerde NA varsa yakalanması zor bir hata buldum. Basitçe sinyali tetiklemeyecektir. "e_SAE_init.r" dosyasında, new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x)'ten önce Test(dt,x) fonksiyonuna bir NA temizleme terimi eklenmesi önerilir;

Bu bir "koltuk değneği" gibi görünüyor, ancak henüz daha iyi bir şey düşünmedim.

Bu olmadan, gizli bir hata oluşacaktır:

Hata if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE gereken yerde eksik değer

Bu ifade yanlıştır.

Test(dt, x) fonksiyonunda x, In() fonksiyonu tarafından hesaplanan giriş verisidir. Şimdi "i_SAE_fun.r" koduna bakalım

In <- function(p = 16){
        require(TTR)
        adx <- ADX(price, n = p)
        ar <- aroon(price[ ,c('High', 'Low')], n = p)[ ,'oscillator']
        cci <- CCI(price[ ,2:4], n = p)
        chv <- chaikinVolatility(price[ ,2:4], n = p)
        cmo <- CMO(price[ ,'Med'], n = p)
        macd <- MACD(price[ ,'Med'], 12, 26, 9)[ ,'macd']
        osma <- macd - MACD(price[ ,'Med'],12, 26, 9)[ ,'signal']
        rsi <- RSI(price[ ,'Med'], n = p)
        stoh <- stoch(price[ ,2:4], 14, 3, 3)
        smi <- SMI(price[ ,2:4],n = p, nFast = 2, nSlow = 25, nSig = 9)
        vol <- volatility(price[ ,1:4], n = p, calc="yang.zhang", N=96)
        In <- cbind(adx, ar, cci, chv, cmo, macd, osma, rsi, stoh, smi, vol)
        return(In)
}

Bu bir dizi göstergedir. Bunları 2000 bar uzunluğunda fiyat[] geçmişi üzerinde hesaplayalım.

> x <- In()Gerekli paket yükleniyor: TTR Bakalım hangi verileri aldık
> summary(x)
      DIp             DIn                DX          
 Min.   :20.24   Min.   :  9.546   Min.   : 0.04605  
 1st Qu.:43.61   1st Qu.: 31.022   1st Qu.:10.28793  
 Median :50.46   Median : 39.297   Median :19.31075  
 Mean   :49.01   Mean   : 41.833   Mean   :21.82957  
 3rd Qu.:55.78   3rd Qu.: 49.441   3rd Qu.:31.18539  
 Max.   :74.50   Max.   :116.050   Max.   :71.84495  
 NA's   :16      NA's   :16        NA's   :16        
      ADX               ar                cci           
 Min.   : 7.038   Min.   :-100.000   Min.   :-364.2786  
 1st Qu.:15.559   1st Qu.: -56.250   1st Qu.: -86.9604  
 Median :20.450   Median : -12.500   Median :  -6.4301  
 Mean   :21.878   Mean   :  -1.147   Mean   :  -0.3145  
 3rd Qu.:27.330   3rd Qu.:  56.250   3rd Qu.:  86.1551  
 Max.   :47.191   Max.   : 100.000   Max.   : 331.4449  
 NA's   :31       NA's   :16         NA's   :15         
      chv                cmo                macd          
 Min.   :-0.63538   Min.   :-88.8628   Min.   :-0.219469  
 1st Qu.:-0.28769   1st Qu.:-29.6125   1st Qu.:-0.030508  
 Median :-0.01415   Median : -0.8713   Median : 0.001847  
 Mean   : 0.12162   Mean   : -1.6646   Mean   : 0.009282  
 3rd Qu.: 0.35276   3rd Qu.: 27.7824   3rd Qu.: 0.037112  
 Max.   : 7.37405   Max.   : 86.9767   Max.   : 0.703234  
 NA's   :31         NA's   :16         NA's   :25         
      osma               rsi             fastK       
 Min.   :-0.10903   Min.   : 8.614   Min.   :0.0000  
 1st Qu.:-0.01063   1st Qu.:41.108   1st Qu.:0.2246  
 Median :-0.00016   Median :50.547   Median :0.4553  
 Mean   :-0.00006   Mean   :49.953   Mean   :0.4793  
 3rd Qu.: 0.01021   3rd Qu.:58.706   3rd Qu.:0.7425  
 Max.   : 0.28849   Max.   :84.854   Max.   :1.0000  
 NA's   :33         NA's   :16       NA's   :13      
     fastD             slowD              SMI         
 Min.   :0.01645   Min.   :0.03279   Min.   :-77.616  
 1st Qu.:0.23056   1st Qu.:0.23618   1st Qu.:-27.662  
 Median :0.45989   Median :0.46420   Median : -2.998  
 Mean   :0.47916   Mean   :0.47922   Mean   : -3.468  
 3rd Qu.:0.72776   3rd Qu.:0.71850   3rd Qu.: 21.330  
 Max.   :0.98610   Max.   :0.96254   Max.   : 73.964  
 NA's   :15        NA's   :17        NA's   :25       
     signal             vol          
 Min.   :-74.526   Min.   :0.001235  
 1st Qu.:-24.781   1st Qu.:0.003168  
 Median : -2.446   Median :0.004686  
 Mean   : -3.358   Mean   :0.005457  
 3rd Qu.: 19.029   3rd Qu.:0.006484  
 Max.   : 71.664   Max.   :0.047742  
 NA's   :33        NA's   :16        
Tüm değişkenler NA'ya sahiptir. Ancak tüm göstergeler için normal olduğu gibi başlangıçta yer alırlar! Bu nedenle, komut dosyasına yazdığımızda

 new.data <- predict(prepr, tail(x, 500));

Tanımlanmamış verileri kesiyoruz. Koşul : nrow(x) > 500 + max(NA). Yani en azından bizim durumumuzda 533. Güvende olmak için nrow(x) = 600-700 koyun.

X'te nasıl belirsiz bir NA elde ettiğinizi anlamıyorum.

İyi şanslar

 

Merhaba Vladimir,

İşte Brezilya'dan!!!

R kullanarak Sinir Ağı hakkındaki talimatlarınızı okudum ama aptalca bir sorum var (üzgünüm, bu konuda acemiyim!)

Yazdığınız eğitimde ( https://www.mql5.com/tr/articles/1103#ch_3),"Bölüm 3.3.1 - Kaynak Veri" kısmında pr.OHLC adında çok iyi anladığım bir fonksiyon tanımladınız.

Bu, aşağıdaki sonuçlar için gerekli parametrelerin hangileri olduğunu benim için net olmayan bazı sonuçlar gösteriyorsunuz

> head(price)
        Open    High     Low   Close      Med     CO
[1,] 1.33848 1.33851 1.33824 1.33844 1.338375 -4e-05
[2,] 1.33843 1.33868 1.33842 1.33851 1.338550  8e-05
[3,] 1.33849 1.33862 1.33846 1.33859 1.338540  1e-04
[4,] 1.33858 1.33861 1.33856 1.33859 1.338585  1e-05
[5,] 1.33862 1.33868 1.33855 1.33855 1.338615 -7e-05 

Lütfen bana bu konuda yardımcı olur musunuz?

En iyisi,

Fábio

Third Generation Neural Networks: Deep Networks
Third Generation Neural Networks: Deep Networks
  • 2015.02.05
  • Vladimir Perervenko
  • www.mql5.com
This article is dedicated to a new and perspective direction in machine learning - deep learning or, to be precise, deep neural networks. This is a brief review of second generation neural networks, the architecture of their connections and main types, methods and rules of learning and their main disadvantages followed by the history of the third generation neural network development, their main types, peculiarities and training methods. Conducted are practical experiments on building and training a deep neural network initiated by the weights of a stacked autoencoder with real data. All the stages from selecting input data to metric derivation are discussed in detail. The last part of the article contains a software implementation of a deep neural network in an Expert Advisor with a built-in indicator based on MQL4/R.
 
fabiocarvalho:

Merhaba Vladimir,

İşte Brezilya'dan!!!

R kullanarak Sinir Ağı hakkındaki talimatlarınızı okudum ama aptalca bir sorum var (üzgünüm, bu konuda acemiyim!)

Yazdığınız eğitimde ( https://www.mql5.com/tr/articles/1103#ch_3),"Bölüm 3.3.1 - Kaynak Veri" kısmında pr.OHLC adında çok iyi anladığım bir fonksiyon tanımladınız.

Bu, aşağıdaki sonuçlar için gerekli parametrelerin hangileri olduğunu benim için net olmayan bazı sonuçlar gösteriyorsunuz

Lütfen bana bu konuda yardımcı olur musunuz?

En iyisi,

Fábio

Merhaba Fabio,

Açık olmayan ne?

pr.OHLC <- function (o, h, l, c) 
{
  #Unite quote vectors into a matrix having previously expanded them
  #Indexing of time series of vectors in R starts with 1. 
  #Direction of indexing is from old to new ones.   
  price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))
  Med <- (price[, 2] + price[, 3])/2 #We calculate average price (HIgh + Low)/2
  CO <- price[, 4] - price[, 1] # We calculate body candles (Close - Open)
  #add Med and CO to the matrix
  price <- cbind(price, Med, CO)#We are putting it all in a matrix
}
 

Merhaba Vladimir,

MT5 için dosyalara sahip olma imkanı var mı?

Saygılarımla

Fabio lima

 
fabioflimaster:

Merhaba Vladimir,

MT5 için dosyalara sahip olma imkanı var mı?

Saygılarımla

Fabio lima

Merhaba Fabio,

Özür dilerim.

MKL5 üzerine yazmıyorum.

Saygılarımla

Vladimir


 

Bir sorum var. Fiyat vektörünün sırası konusunda net değilim.

Burada bir tersine çevirme yaparsınız: price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))

O,H,L,C'nin orijinal sıralaması nedir?

 
jake89:

Bir sorum var. Fiyat vektörünün sırası konusunda net değilim.

Burada bir tersine çevirme yaparsınız: price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))

O,H,L,C'nin orijinal sırası nedir?

Merhaba,

MT4 numaralandırma çubukları en sondan en eskiye doğru. R tam tersine, eskiden yeniye, yeni çubuk en son.