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

 
mytarmailS :

kişisel bir konuşmada

senin seçeneğin

normal versiyon

değerlerin tamamen farklı olduğunu görebileceğiniz gibi, kendiniz kontrol edebilirsiniz


bende var modelde

çünkü sadece bir sütun, ama gerçekten önemli değil

===================UPD

Kahretsin, umap_tranform'u her çalıştırdığınızda farklıdırlar, aynı olmamalı

dikkat etmedi. Bu uzun zaman önceydi...

 
mytarmailS :

kişisel bir konuşmada

senin seçeneğin

normal versiyon

değerlerin tamamen farklı olduğunu görebileceğiniz gibi, kendiniz kontrol edebilirsiniz


bende var modelde

çünkü sadece bir sütun, ama gerçekten önemli değil

===================UPD

Kahretsin, umap_tranform'u her çalıştırdığınızda farklıdırlar, aynı olmamalı

Genellikle, tekrarlanabilirlik için Seed'i (yerleşik RNG) bir değere ayarlayın. Değilse, rastgele alınır. Belki bu pakette Tohum da vardır - kontrol edin.
 
elibrarius :
Genellikle, tekrarlanabilirlik için Seed'i (yerleşik RNG) bir değere ayarlayın. Değilse, rastgele alınır. Belki bu pakette de Tohum vardır - kontrol edin.

Evet, sanırım var, ama sonuç şu ki, RNG olmadan bile her zaman aynı olmalı, "umap" analog paketinde aynı sonuç her zaman aynı

 
Alexey Vyazmikin :

özellikle senin için, tek bir umutla r-ku öğreneceksin)

install.packages( "TTR" , "uwot" )

clos <- d$X.CLOSE.

get .ind <- function(x,n= 5 ){
  
  all_to.all_colums <- function(x,names){
    cb <- combn(ncol(x), 2 )
    res <- matrix(ncol = 0 ,nrow = nrow(x))
     for (i in 1 :ncol(cb)){
      j1 <- cb[ 1 ,i]
      j2 <- cb[ 2 ,i]
      
      res <- cbind(res,   x[,j1] - x[,j2]  )
      colnames(res) <- paste0(names, 1 :ncol(res))
    }
     return (res)}
  
  library(TTR)
  aroon  <- aroon(x,n)
  BBands <- BBands(x,n)            ;   BBands <- all_to.all_colums( BBands, names = "BBands" )
  CCI    <- CCI(x,n)
  CMO    <- CMO(x,n)
  DEMA   <- diff(c( 0 ,DEMA(x,n)))
  Donchian <- DonchianChannel(x,n) ;   Donchian <- all_to.all_colums( Donchian, names = "Donchian" )
  MACD   <- MACD(x,n)
  moment <- momentum(x,n)
  PBands <- PBands(x,n)            ;   PBands <- all_to.all_colums( PBands, names = "PBands" )
  RSI    <- RSI(x,n)
  SAR    <- diff(c( 0 ,SAR(cbind(x,x,n))))   
  SMA    <- diff(c( 0 ,SMA(x,n)))
  stoch  <- stoch(x,n)
  TDI    <- TDI(x,n)
  VHF    <- VHF(x,n)
  WPR    <- WPR(x,n)
  
  ind <- cbind.data.frame(aroon,BBands,CCI,CMO,DEMA,Donchian,
                          MACD,moment,PBands,
                          RSI,SAR,SMA,stoch,TDI,VHF,WPR)
   return (ind)
}
get .target <- function(x, change){
  zz <- TTR::ZigZag(x,change = change,percent = F)
  zz <- c(diff(zz), 0 ) ; zz[zz>= 0 ] <- 1 ; zz[zz< 0 ] <- - 1
   return (zz)
}

X <- get .ind(clos)
Y <- as .factor( get .target(clos,change = 0.001 ))


library(uwot)

train.idx <- 100 : 8000
test.idx <- 8001 : 10000

UM <- umap(X = X[train.idx,],
           y = Y[train.idx], 
            approx_pow = TRUE, 
            n_components = 3 , 
            ret_model = TRUE,
            n_threads = 4 L, 
            scale = T)

predict.train <- umap_transform(X = X[train.idx,], 
                                model = UM, n_threads = 4 L, 
                                verbose = TRUE)

predict.test <- umap_transform(X = X[test.idx,], 
                                model = UM, n_threads = 4 L, 
                                verbose = TRUE)



library(car)

scatter3d(x = predict.train[, 1 ], 
          y = predict.train[, 2 ], 
          z = predict.train[, 3 ],
          groups = Y[train.idx],
          grid = F, 
          surface = F,
          ellipsoid = F,
          bg.col = "black" ,surface.col = c( 2 , 3 ))

iki fonksiyon var

 get .ind

ve

 get .target

ilki göstergelerden bir tarih seti oluşturur, ikincisi zikzaktan bir hedef oluşturur

tek yapmanız gereken 10k kapanış fiyatı olan verileri yüklemek ve clos değişkenine yazmak

ve umap'ınızı hedeften alın


https://github.com/jlmelville/uwot
 
mytarmailS :

özellikle senin için, tek bir umutla r-ku öğreneceksin)

iki fonksiyon var

ve

ilki göstergelerden bir tarih seti oluşturur, ikincisi zikzaktan bir hedef oluşturur

tek yapmanız gereken 10k kapanış fiyatı olan verileri yüklemek ve clos değişkenine yazmak

ve umap'ınızı hedeften alın


https://github.com/jlmelville/uwot

Çok hoş, teşekkürler!

Daha fazla yorum iyi olurdu :)

Buradaki soru, dosyadaki tahmin edicileri alınan hedefle nasıl senkronize edeceğimizdir?

 
Alexey Vyazmikin :

Çok hoş, teşekkürler!

Daha fazla yorum iyi olurdu :)

Buradaki soru, dosyadaki tahmin edicileri alınan hedefle nasıl senkronize edeceğimizdir?

iyi, hedef fiyata göre oluşturulduğundan, zaten senkronize edilmiştir ve aynı sahne için tahminciler oluşturulmuşsa, o zaman aynı zamanda anlamına gelir)

ya ben soruyu anlamadım


Değişkenleri yorum yapmadan net olması için isimlendirmeye çalıştım.

 

Bir çaylaktan soru.


A, B, C olmak üzere üç değişken vardır. Bazı koşullar bunlardan elle oluşturulur. Örneğin.

(A > B) && (A - B < C) && (A + 3 * C > 2 * B)


Bu durumu otomatik olarak yeniden oluşturmak istiyorum. Onu bulmak gerekli değil çünkü. Onu zaten tanıyorum. Ancak, örneğin, belirli bir kombinasyonu bu duruma yüksek olasılıkla girebilen bir düzine ağırlık katsayısına sahip olmanız gerekir (bir polinom mu yoksa NS mi - bilmiyorum, çünkü sıfır) A, B, C'yi değiştirerek, yürütme orijinal koşulunu elde ederiz.


Bu tür orijinal koşulların ağırlıklar aracılığıyla yeniden üretilebilmesi için istenen işlevin ne tür ve kaç girdi ağırlığına sahip olduğuyla ilgileniyorum?

 

Öyleyse, ağaçların kümeler halinde eğitilmesinin nasıl ortaya çıktığını anlatıyor ve gösteriyorum.

Sınıf tanıma için böyle bir model ortaya çıktı

Tarihte, Doğruluk oldukça doğrudur 0.9196756 - yani. küme mantığı oldukça tekrarlanabilir.

Daha sonra modele göre her küme için eğitilir.

küme 1

Küme 2

küme 3

küme 4

Tüm kümeler yaklaşık olarak 0,53 Doğruluk değerine sahiptir.

Ve bu, kümelere ayrılmadan modelin nasıl göründüğüdür.

Doğruluk 0.5293815 - kümeler ile yaklaşık olarak aynı.

Kümeler için modelleri ve bir ağaç modelini tüm örnekle karşılaştırırsak, küme ağaçlarının teorik olarak iyi olan 1 ve -1 hedefleri ile genelleştirilmiş örnek bilgisine sahip daha fazla yaprağı olduğunu görebiliriz.

Bakalım testler ne gösteriyor - önce eğitim dönemine bakalım

Kümelemesiz model:

Kümeleme modeli:

Doğruluğun kümesiz model için daha iyi olduğunu görüyoruz, ancak kümeler üzerinde model için daha fazla işlem var, bu da daha iyi finansal performans elde etmeyi mümkün kılıyor.

Şimdi eğitim dışındaki örneğe bakalım.

Ve işte kümelerimiz:

Ve kümesiz model:

Burada durum tersine dönmüş gibi görünüyor - piyasa Nisan ayından bu yana sarsılmaya başladığında birçok işlemin zararlı bir etkisi oldu.

Küme modellerinden yapraklara ayrı ayrı, küme yoksa histogramda azalan sırayla bakmaya karar verdim:


Genel olarak, sadece 6 kârsız liste var (sıfır hedefi kaldırdım - bu giriş yasağı), istenen kümeye girmediğimiz ortaya çıktı?

 
mytarmailS :

iyi, hedef fiyata göre oluşturulduğundan, zaten senkronize edilmiştir ve aynı sahne için tahminciler oluşturulmuşsa, o zaman aynı zamanda anlamına gelir)

ya ben soruyu anlamadım


Değişkenleri yorum yapmadan net olması için isimlendirmeye çalıştım.

Tahminciler ve kapanış fiyatı ile kendi tarih setinizi nasıl alıp kapanış fiyatı ile bir sütunla yüklersiniz ve R'de gösterge oluşturma seçeneğini kullanmazsınız?

Anladığım kadarıyla, hedef ZZ köşeleri olduğundan, örneğin tahmin edicilere sahip bir kısmı filtrelenmelidir, bu nedenle, tahmin edicileri sağlamak için tabloyu tahmin edicilerle de filtrelemeniz gerekir, ya da ne?

 
fxsaber :

Bir çaylaktan soru.


A, B, C olmak üzere üç değişken vardır. Bazı koşullar bunlardan elle oluşturulur. Örneğin.


Bu durumu otomatik olarak yeniden oluşturmak istiyorum. Bulmanıza gerek yok çünkü. Onu zaten tanıyorum. Ancak, örneğin, belirli bir kombinasyonu bu duruma yüksek olasılıkla girebilen bir düzine ağırlık katsayısına sahip olmanız gerekir (bir polinom mu yoksa NS mi - bilmiyorum, çünkü sıfır) A, B, C'yi değiştirerek, yürütme orijinal koşulunu elde ederiz.


Bu tür orijinal koşulların ağırlıklar aracılığıyla yeniden üretilebilmesi için istenen işlevin ne tür ve kaç girdi ağırlığına sahip olduğuyla ilgileniyorum?

bir seçenek olarak

(A > B) && (A - B < C) && (A + 3 * C > 2 * B)

Millet Meclisi girişinde - A, B, C değerleri n kere (1000 diyelim), çıkışında bu değerler için formülünüzün cevapları 0 şeklinde; 1. Denemek. Modelin durumu ne kadar iyi yeniden ürettiğini gösteren sınıflandırma hatasına bakın.

tam olarak hangi görüşü ve yorumunu görmeniz gerekiyorsa, o zaman ağaçların arasından

Seçenek 2 (birincisi iyi çalışmadıysa) - A, B, AB, C, A + 3 * C, 2B - değişkenler, bir ağaca sürmek için her şey ilk seçenektekiyle aynıdır. Ve yukarıdaki resimlerde Alexei gibi yapısını görebilirsiniz.