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

 
Aleksey Vyazmikin #:

Ve biraz önce yayınlanan geçmiş kod-komut dosyası çalışmayı durdurdu - eskiden çalışıyordu - güncellemelerden önce.

library(patchwork)

Kuruldu mu?

 
Aleksey Vyazmikin #:

Genel olarak güncellendiğinde, hata bile yazmaz, ancak sonuç aynıdır - neredeyse tamamı.

çalıştırdım, aynı resmi aldım))


Hatayı fark ettim, orada hedefte geleceğe bir göz attım... evet... kontrolümüzü kaybediyoruz.

Bu satır değiştirilmeli

dp <- с(diff(close),0)   

tarafından

dp <- tail(c(diff(close),0),nrow(X))


Kodu biraz daha okunabilir şekilde yeniden yazdım.

close <- cumsum(rnorm(10000,sd = 0.00001))+100
par(mar=c(2,2,2,2))  ; plot(close,t="l")


D <- make_data(close)
tr <- 1:500
R <- make_rules(y = D$Y[tr] , x = D$X[tr,])
# head(R)
buy_rules <- R$condition[ R$pred==1 ]



plot(x = 1:2000,y = rep(NA,2000), ylim = c(-0.001,0.001)) 
for(i in 1:length(buy_rules)){
  cum_profit <- cumsum( D$diff_price[  eval(str2expression(buy_rules[i]))  ] )
  lines(cum_profit,col=8,lwd=1)}
for(i in 1:length(buy_rules)){
  cum_profit <- cumsum( D$diff_price[  eval(str2expression(buy_rules[i]))  ] )
      
      if(length(cum_profit)>30){
      ccor <- cor(cum_profit, 1:length(cum_profit))
      if(ccor>=0.95)  lines(cum_profit,col=i,lwd=2)
      }
}
abline(h = 0,col=2,lty=2)
gc(T,T)

yardımcı fonksiyonlar

make_rules <- function(y, x){
  library(inTrees)  # ?inTrees::getRuleMetric()
  library(RRF)
  rf <- RRF(x = x,y = y,ntree=100)
  rule <- getRuleMetric(unique(extractRules(RF2List(rf),x)),x,y)
  rule <- data.frame(rule,stringsAsFactors = F)
  for(i in c(1,2,3,5)) rule[,i] <- as.numeric(rule[,i])
  return(rule)}
make_data <- function(close){
  sw <- embed(x = close,dimension = 10)[,10:1] #  make slide window data
  X <- t(apply(sw,1,scale)) #  normalase data
  
  dp <- tail(c(diff(close),0),nrow(X)) #  diff prices
  Y <- as.factor( ifelse(dp>=0,1,-1) ) #  target for classification
  res <- list(Y=Y,X=X,diff_price=dp)
  return(res)
}


 
Maxim Dmitrievsky #:

Eğer başka bir değerlendirme kriteri yoksa, o zaman parametrelerin kararlılığı yoluyla

TS'nin çıkış değerleri zaman içinde sinyaller olarak da temsil edilebilir ve entropileri ölçülerek rastgelelikle karşılaştırılabilir. Eğer TS belirli bir periyodiklikle tekrarlanan bazı düzenlilikleri yakalarsa, bu durum yansıtılacaktır.

Özel FF üreticileri için faydalı olabilir.

En iyi ölçü zaman ve gerçek hayattaki testlerdir. Herhangi bir TC çalışmayı durduracaktır.

Yeni veriler üzerinde neden çalışmadığını zaten anladım ve hatta ne yapacağımı kabaca anladım.

 
Aleksey Nikolayev #:

ONNX'ten ONNX'e ilişkin soru, basitçe karşılaştığım iki ifadenin yan yana gelmesinden ortaya çıktı: 1) model edinimi bir boru hattı olarak temsil edilebilir, 2) boru hattı ONNX formatına dönüştürülebilir.

Bunun pratikte pek mümkün olmadığı açıktır. Aslında, bir bütün olarak bu teknolojinin temel sınırlamalarını fark etmek için böyle bir olasılığın uygulanmasını tam olarak neyin engellediğini anlamak istiyorum.

Bir dosyaya yazmanın imkansızlığı gibi sınırlamalar başka bir şeydir ve veri türleri için destek eksikliği (örneğin dataframe'ler) gibi sınırlamalar başka bir şeydir.

Her iki ifade de doğrudur. Ön işleme dahil bir model elde etmek mümkündür. Ne yazık ki tüm çerçevelerde değil ve sadece en basit olanlarda. TF/Keras ön işleme yapan ilk NN katmanlarını uygular. scikit-learn en zengin boru hattı+model seçeneğine sahiptir. scl2onnx'e bakın.

Ciddi katkıda bulunanların ONNX'in ön işlemeden başlayarak tüm boru hattını içermesi gerektiğini fark ettiklerini görmek güzel. Üretimdeki yeni veriler, eğitimde olduğu gibi aynı ön işleme adımlarından geçmelidir. Aksi takdirde ONNX modelinin sonuçları tahmin edilemez olacaktır.

Bu yön hızla gelişiyor ve bu sorunun yakında çözüleceğini düşünüyorum. Şimdilik denemeler yapmalısınız.

İyi şanslar

 
Bu konuyla ilgili olmayan yorumlar "Kabul edilemez iletişim şekli" bölümüne taşınmıştır.
 
mytarmailS #:

çalıştırdım, aynı resmi aldım ))


Hatamı fark ettim, hedefte geleceğe bir göz attım... evet... dokunuşumu kaybediyorum.

Bu hat değiştirilmelidir

için


daha okunabilir olması için kodu biraz yeniden yazdım

yardımcı fonksiyonlar


Değiştirilmiş kodu deniyorum

close <- cumsum(rnorm(10000,sd = 0.00001))+100
par(mar=c(2,2,2,2))  ; plot(close,t="l")


D <- make_data(close)
tr <- 1:500
R <- make_rules(y = D$Y[tr] , x = D$X[tr,])
#  head(R)
buy_rules <- R$condition[ R$pred==1 ]



plot(x = 1:2000,y = rep(NA,2000), ylim = c(-0.001,0.001)) 
for(i in 1:length(buy_rules)){
  cum_profit <- cumsum( D$diff_price[  eval(str2expression(buy_rules[i]))  ] )
  lines(cum_profit,col=8,lwd=1)}
for(i in 1:length(buy_rules)){
  cum_profit <- cumsum( D$diff_price[  eval(str2expression(buy_rules[i]))  ] )
  
  if(length(cum_profit)>30){
    ccor <- cor(cum_profit, 1:length(cum_profit))
    if(ccor>=0.95)  lines(cum_profit,col=i,lwd=2)
  }
}
abline(h = 0,col=2,lty=2)
gc(T,T)

make_rules <- function(y, x){
  library(inTrees)  # ?inTrees::getRuleMetric()
  library(RRF)
  rf <- RRF(x = x,y = y,ntree=100)
  rule <- getRuleMetric(unique(extractRules(RF2List(rf),x)),x,y)
  rule <- data.frame(rule,stringsAsFactors = F)
  for(i in c(1,2,3,5)) rule[,i] <- as.numeric(rule[,i])
  return(rule)}
make_data <- function(close){
  sw <- embed(x = close,dimension = 10)[,10:1] #  make slide window data
  X <- t(apply(sw,1,scale)) #  normalase data
  
  dp <- tail(c(diff(close),0),nrow(X)) #  diff prices
  Y <- as.factor( ifelse(dp>=0,1,-1) ) #  target for classification
  res <- list(Y=Y,X=X,diff_price=dp)
  return(res)
}

Bir hata alıyorum

> D <- make_data(close)
Error in make_data(close) : could not find function "make_data"
> source('~/.active-rstudio-document', echo=TRUE)

> close <- cumsum(rnorm(10000,sd = 0.00001))+100

> par(mar=c(2,2,2,2))  ; plot(close,t="l")

> D <- make_data(close)
Error in make_data(close) : could not find function "make_data"
> source('~/.active-rstudio-document', echo=TRUE)

> close <- cumsum(rnorm(10000,sd = 0.00001))+100

> par(mar=c(2,2,2,2))  ; plot(close,t="l")

> D <- make_data(close)
Error in make_data(close) : could not find function "make_data"
> 
 
Aleksey Vyazmikin #:

Değiştirilmiş kodu deniyorum

Bir hata alıyorum

Çünkü fonksiyonlar önce bildirilmeli ve sonra kullanılmalıdır...

Trollük mü yapıyorsun?
 
mytarmailS #:
Çünkü fonksiyonlar önce bildirilmeli ve sonra kullanılmalıdır...

Trol falan mı oynuyorsun?

Nereden bilebilirdim ki...

O zaman hata bu

> D <- make_data(close)
Error in h(simpleError(msg, call)) : 
  ошибка при оценке аргумента '.data' при выборе метода для функции 'embed': argument ".data" is missing, with no default
 
RL hakkında ilginç bir makale. https://habr.com/ru/articles/349800/
Ayrıca cometarium'da BU başlığın yaratıcısı ile başka bir üye arasında ilginç bir konuşma.
 
mytarmailS #:
RL hakkında ilginç bir makale. h ttps:// habr.com/ru/articles/349800/
Ayrıca cometarium'da BU başlığın yaratıcısı ile başka bir üye arasında ilginç bir konuşma.

Ticaret görevleri için RL kavramı gereksiz değil mi? Çevrenin aracı üzerindeki etkisine sahibiz, ancak aracının çevre üzerinde bir etkisi var mı? Bu ikinci etkiyi yapay olarak ortaya koymak muhtemelen mümkündür, ancak bu mantıklı mıdır?

Makaledeki iki (veya üç) fikir bizim için hiç de gereksiz değil - kayıp fonksiyonunun tam olarak ihtiyacımız olanı yansıtması ve düzgün (ve monotonik) olması gerekiyor. Bizim durumumuzda, kar olmalı ve modelin parametrelerine düzgün ve monoton bir şekilde bağlı olmalıdır.

Kârın bir benzerinin düzgünlüğü muhtemelen bir şekilde elde edilebilir (örneğin, çekirdek düzgünleştirme gibi bir şeyle). Ancak monotonluk konusunda çok şüpheliyim.