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

 
Ve tahmindeki sonuçlar nelerdir? sormaya cesaret et.
 
mytarmailS :
Ve tahmindeki sonuçlar nelerdir? sormaya cesaret et.
Bana sorarsanız, muhtemelen kesin olarak cevap veremem, tahmin edilen birçok şey var ve her şey farklı. Ama ortalama olarak %60-65 civarında bir yerde
 

İşte eğitim modelleri için hazırlanmış bir plaka.

Fiyatlar sütun deltalarına dönüştürülür; değişiklik yapılmadan veya NA ile kaldırılan sütunlar.

Her sütun için her satıra 3 gecikme yükledim (geçerli satır eksi önceki; önceki eksi önceki önceki; önceki eksi önceki önceki eksi)

Hedef, bir sonraki satırdaki değerin yükselmesi/düşüşüdür (bir sonraki satır eksi mevcut satır, +-1'e yuvarlanır veya değişiklik yoksa 0; toplamda 3 sınıf). Tüm hedeflerin önüne "target_" eklenir

*Belirli bir hedefi tahmin etmek için başka hedefler kullanamazsınız, aksi takdirde geleceğe bir bakış olacaktır. Ön eki "target_" olan tüm sütunlar, tahmin edici veya girdi olarak kullanılamaz.

Dosyalar:
 

Sorun.

Csv dosyasını eğitim verileri ve ön test için 10:1 oranında satırlar halinde iki parçaya böldüm. Modeli target_SiH7.bid için eğitti (yukarıdaki tablodan), eğitimde %62 ve yeni verilerde %74 sınıflandırma doğruluğu aldı. Memnun oldum, ancak iki kez kontrol edildiğinde, 0 sınıfının diğerlerine göre çok dengesiz olduğu ve sadece miktar olarak %60 ve %74 olduğu ortaya çıktı. Yani model 0'ı iyi tespit etmeyi öğrenmiş ve -1 ve 1 sınıflarında puan almıştır.

Başka bir değerlendirmeye ihtiyaç var. Dengesiz iki sınıf için bu ölçüm harika - https://en.wikipedia.org/wiki/Cohen's_kappa , ancak bizim durumumuzda iki değil üç dengesiz sınıf var, 3 için bir Kappa analogu var mı?

 
toksik :
Bana sorarsanız, muhtemelen kesin olarak cevap veremem, tahmin edilen birçok şey var ve her şey farklı. Ama ortalama olarak %60-65 civarında bir yerde

İlginç, detaylandırabilir misin?

Sadece şu anda tamamen farklı bir tahmin alanıyla uğraşıyorum ve bu piyasa tarihinde sizinle deneyler yapamadığım için dağınık olmayı göze alamam, ancak okumak ve gözlemlemek benim için çok ilginç lütfen devamını yazın...

Dr.Tüccar :

0 sınıfının diğerlerine göre çok dengesiz olduğu ve sadece sayı olarak %60 ve %74 olduğu ortaya çıktı. Yani model 0'ı iyi tespit etmeyi öğrenmiş ve -1 ve 1 sınıflarında puan almıştır.

Rastgele ormanı tersine çevirmek için eğittiğimde de aynı sorunu yaşadım, elbette tersine çevirme olmayanlardan çok daha az geri dönüş vardı. Ne kadar çok ağaç yaparsa, MO dönüş sınıflarında o kadar fazla puan aldı ve dönüşsüz sınıfa daha fazla konsantre oldu.

Caret'in sınıfları dengelemek için birkaç yöntemi vardır, ancak bunların hepsi banal türlerdir - ya eşitlenmesi daha az olan sınıfı çoğaltırız, böylece tüm sınıflardaki gözlemlerin toplamı aynı olur ya da tam tersi, gereksiz gözlemleri sınıftan kaldırırız daha fazla gözlemin olduğu

Yöntemlerin hiçbiri, bir şekilde dengelemeden daha karlı olduğunu göstermedi (ancak bu sadece benim durumumda)

 
mytarmailS :

İlginç, detaylandırabilir misin?

Sadece şu anda tamamen farklı bir tahmin alanıyla uğraşıyorum ve bu piyasa tarihinde sizinle deneyler yapamadığım için dağınık olmayı göze alamam, ancak okumak ve gözlemlemek benim için çok ilginç lütfen devamını yazın...

Rastgele ormanı tersine çevirmek için eğittiğimde de aynı sorunu yaşadım, elbette tersine çevirme olmayanlardan çok daha az geri dönüş vardı. Ne kadar çok ağaç yaparsa, MO dönüş sınıflarında o kadar fazla puan aldı ve dönüşsüz sınıfa daha fazla konsantre oldu.

Caret'in sınıfları dengelemek için birkaç yöntemi vardır, ancak bunların hepsi banal türlerdir - ya eşitlenmesi daha az olan sınıfı çoğaltırız, böylece tüm sınıflardaki gözlemlerin toplamı aynı olur ya da tam tersi, gereksiz gözlemleri sınıftan kaldırırız daha fazla gözlemin olduğu

Yöntemlerin hiçbiri, bir şekilde dengelemeden daha karlı olduğunu göstermedi (ancak bu sadece benim durumumda)

Caret'te, tren işlevindeki uygunluk işlevini bazı parametreler aracılığıyla değiştirebilirsiniz. Sınıflandırma için doğruluk veya kappa: ve r ^ 2 ve başka bir şey gibi kendi iki seçeneğinizden bazılarının gerilemesi için kullanabilirsiniz. Oradan kappa'yı yeni öğrendim, modeli normal olarak çok dengesiz sınıflarda, herhangi bir ek işlem yapmadan eğitmeme yardımcı oldu.
 
Eğer tersine çevirmeleri tartışıyorsak, o zaman sınıfları anlamlı bir şekilde dengelemek gerekir: bir çubuk değil, tersine çevirmeden önce birkaç çubuk ve tersine çevirmeden sonra birkaç çubuk bir tersine çevirme olarak sayılır. Hepsi aynıysa, sınıflar dengeli değil, ancak o kadar ölümcül değil ve caret ile dengelemek mümkün olacak
 
toksik :

Her şey tartışılır. Si , RI , BR vb. gibi fort vadeli işlemleri önerdim. genel olarak en likit. Sonuç olarak, bir sinyal (-1,0,1) (kısa, nakit, uzun) öneriyorum, sinyal olasılıktan açık ve MM tarafından bozulmuyor istekler gibi. Probotka sonrası, işaretler ve hedefler ustanın işi veya düzenidir.

Biraz düşündükten sonra, en azından bir bardak daha eklemeniz gerektiği sonucuna vardım{ fiyat : vol ,…||…, fiyat : vol }, olduğu gibi, her tahmin edilen araç için saniyede bir, o zaman delta gerekli değildir ve teklif, soru da, bu IMHO gereklidir, eğer saniyede bir bant ile ayrı hacimler ve bir OI ofseti varsa , az çok bilgilendirici, o zaman bir bardak için bir delta çok yeterli değil, en azından farklı “plakalar”, dağıtım vb. görmeniz gerekir. ve her şey başlangıç için yeterli görünüyor. Bir bardak ekleyin ve birkaç gün boyunca bir eğitim veri seti yayınlayın, oynayacağız. :)

 

Sonunda Scott'ın Pi metriğine karar verdi https://en.wikipedia.org/wiki/Scott's_Pi

İşte bu tahminle elde ettiğim sonuçlar, modeli satırların ilk %91'i üzerinde eğitti ve ardından kalan son veriler üzerinde bir ön test yaptı (oran backtest : fronttest = 10:1)
tablodaki "class_0_rate" sütunları - bu değerin çok yüksek olduğu durumlarda Excel'de bu sonuçları filtreleyebilmeniz için 0 sınıfının -1 ve 1 sınıflarına oranı.

Son iki sütun, eğitim ve test için Scott'ın Pi metriğidir, değer -1 ile 1 arasında olacaktır; burada 0=sonuç rastgele ve model işe yaramaz ve 1=her şey yolunda. Negatif sonuç - çok iyi değil, ters korelasyon, tahmin sonucunu tersine çevirmeyi deneyebilirsiniz. Ters korelasyon, tahmin edilenin tam tersinde ticaret yaparken bazen iki sınıfla oldukça iyi çalışır. Ancak üç sınıfla, "zıt"ı bulmak bir şekilde zordur, her sınıf iki zıt sınıfa karşılık gelir, bu durumda olumsuz bir değerlendirme de kötüdür.

Krch, backtest ve fronttest üzerinde alış (veya talep) tahminlerinin benzer ve daha yüksek değerlendirme değerlerine sahip olduğu para birimini seçmelidir, örneğin xagusd. 0'dan 1'e kadar bir ölçekte 0.18'lik bir puan düşük olsa da. Ve gerçek ticarette bir tık ileriyi tahmin etmek de kötü. Genel olarak, sonuç, ancak geçerli değil :)

Scott'ın Pi'si için R kodu

ScottsPi <- function(act, pred){
   if (length(act) != length(pred)){
    stop( "different length" )
  }
  
  n_observ <- length(act)
  
  all_levels <- unique(c(act,pred))
  n_levels <- length(all_levels)
  
  marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
  colnames(marginal_matrix) <- all_levels
  rownames(marginal_matrix) <- all_levels
  
   for (i in 1 :n_levels){
     for (j in 1 :n_levels){
      marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
    }
  }
  diagSum <- 0
   for (i in 1 :n_levels){
    diagSum <- diagSum + marginal_matrix[i,i]
  }
  diagSum <- diagSum / n_observ
  
  marginalSum <- 0
   for (i in 1 :n_levels){
    marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/ 2 )^ 2
  }
  p <- marginalSum
   return ((diagSum - p)/( 1 -p))
}
 
Dr.Tüccar :

Sonunda Scott'ın Pi metriğine karar verdi https://en.wikipedia.org/wiki/Scott's_Pi

İşte bu tahminle elde ettiğim sonuçlar, modeli satırların ilk %91'i üzerinde eğitti ve ardından kalan son veriler üzerinde bir ön test yaptı (oran backtest : fronttest = 10:1)
tablodaki "class_0_rate" sütunları - bu değerin çok yüksek olduğu durumlarda Excel'de bu sonuçları filtreleyebilmeniz için 0 sınıfının -1 ve 1 sınıflarına oranı.

Son iki sütun, eğitim ve test için Scott'ın Pi metriğidir, değer -1 ile 1 arasında olacaktır; 0=sonuç rastgele ve model işe yaramaz ve 1=her şey yolunda. Negatif sonuç - çok iyi değil, ters korelasyon, tahmin sonucunu tersine çevirmeyi deneyebilirsiniz. Ters korelasyon, tahmin edilenin tam tersinde ticaret yaparken bazen iki sınıfla oldukça iyi çalışır. Ancak üç sınıfla, "zıt"ı bulmak bir şekilde zordur, her sınıf iki zıt sınıfa karşılık gelir, bu durumda olumsuz bir değerlendirme de kötüdür.

Krch, backtest ve fronttest üzerinde alış (veya talep) tahminlerinin benzer ve daha yüksek değerlendirme değerlerine sahip olduğu para birimini seçmelidir, örneğin xagusd. 0'dan 1'e kadar bir ölçekte 0.18'lik bir puan düşük olsa da. Ve gerçek ticarette bir tık ileriyi tahmin etmek de kötü. Genel olarak, sonuç geçerlidir, ancak geçerli değildir :)

Scott'ın Pi'si için R kodu

ScottsPi <- function(act, pred){
   if (length(act) != length(pred)){
    stop( "different length" )
  }
  
  n_observ <- length(act)
  
  all_levels <- unique(c(act,pred))
  n_levels <- length(all_levels)
  
  marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
  colnames(marginal_matrix) <- all_levels
  rownames(marginal_matrix) <- all_levels
  
   for (i in 1 :n_levels){
     for (j in 1 :n_levels){
      marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
    }
  }
  diagSum <- 0
   for (i in 1 :n_levels){
    diagSum <- diagSum + marginal_matrix[i,i]
  }
  diagSum <- diagSum / n_observ
  
  marginalSum <- 0
   for (i in 1 :n_levels){
    marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/ 2 )^ 2
  }
  p <- marginalSum
   return ((diagSum - p)/( 1 -p))
}
Veriler tamamen reddedildi, yoldaş atmak için normal bir veri kümesini astı, ancak bir yerde kayboldu. Pekala, eğer ayrıntılar olmadan, o zaman elbette, bir tik işareti gerçekten bepont, en azından bir dakika ileriye ihtiyacınız var, dakikanın iletiminde zaten saf MM, her iki tarafta tobish sınırlayıcılar, yayılma ile orantılı bir mesafede , "kuantum köpüğü" var, yayılmadan çok daha küçük olduğu için yön hakkında konuşmak mantıklı değil