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

 
forexman77 :

"Gürültü tahmin edicileri" nasıl tanımlanır? Önem derecesine göre seçip bu şekilde çıkarmaya çalıştım sonuç daha da kötü oldu.

Tavsiyelerle doluydu.

Çok basit bir şema kullanıyorum, doğruluk peşinde değilim ama çok net.

Bir öngörücü - bir vektör alıyorum ve onu iki parçaya bölüyorum: bir kısım bir hedef sınıfa, diğer kısım başka bir hedef sınıfa ait. Sonra her parçanın histogramlarını oluşturuyorum ve onları karşılaştırıyorum: eğer eşleşirlerse, o zaman gürültü, eğer ayrılırlarsa, o zaman bazı tahmin yetenekleri var. Tamamen ayrışırlarsa, %100 tahmin yeteneği (görülmez). Histogram kesişimi, prensipte üstesinden gelinemeyecek bir sınıflandırma hatasıdır.

Grafikleri buraya gönderdim, rsi'yi tahmin edici olarak kullandım. Histogram sapmasının bir ölçüsünü yapabilirsiniz.


Bu bir çıngıraktır - sıfır maliyetle, bazen nezaketen, özellikle tembel olarak yaptığım çok sayıda hedef değişkene karşı isteğe bağlı sayıda tahmin ediciyi test edebilirsiniz.

 
Alexey Vyazmikin :

Göstergenizi nasıl okuyacağınız belli değil.

Bu bir gösterge değil, rastgele bir orman...

OOB, RMS vb. için modelleri değerlendirin. mümkündür, ancak modelin sonucunu anlamak mümkün olmayacaktır.

Sadece rastgele bir ormanın sonucunu fiyat tablosuna empoze ettikten sonra, model davranışının özellikleri ortaya çıkar.

https://github.com/Roffild/RoffildLibrary/blob/master/Include/Roffild/ToIndicator.mqh kullanılarak oluşturulan grafik

 
Dr. tüccar :

Filter_02 2016 arr_Buy

Orada, "1" sınıfının sayısı "0"ı bile aşıyor, bu nedenle öncekine kıyasla daha az yanlış giriş var. Bu ağacı bir EA'da deneyin lütfen? Kâr tablosunda ne olacağını görmek ilginç.


y_pred
y_true 0 1
0
1


Sayılar içeren ilk sütun filtresiz, ikincisi filtreli.

Belki de ağacın mantığını batırdım?


 void FilterTree()
{
int arr_DonProc=DonProcf();
int arr_DonProcVisota=DonProcVisotaf();
int arr_DonProc_M15=DonProc_M15f();
int Level_Support_D1=LevlSupportf( PERIOD_D1 );
int Level_Support_W1=LevlSupportf( PERIOD_W1 );
int arr_Regressor=RegressorP();
bool BlockBuy= false ;

if (arr_DonProc>= 2.5 )
   {
   if (arr_DonProcVisota>= 7.5 )
      {
         BlockBuy= true ;      
      }
   else
      {
       if (arr_DonProc>= 6.5 )
          { 
             if (Level_Support_D1>=- 2.5 )
            {
               if (Level_Support_W1<= 1.5 )BlockBuy= true ;                  
            }          
          }
       else
          {
             if (arr_Regressor>= 2.5 )
               {
                   if (arr_DonProc_M15>= 4.5 )BlockBuy= true ;
               
               }
             else
               {
                   if (Level_Support_D1< 1.5 )
                  {
                     if (Level_Support_W1<- 1.5 )BlockBuy= true ;
                  }
               }
          }         
      }   
   
   }

if (BlockBuy== true )BuyNow= false ;
SellNow= false ;
}
 
Roffield :

Bu bir gösterge değil, rastgele bir orman...

OOB, RMS vb. için modelleri değerlendirin. mümkündür, ancak modelin sonucunu anlamak mümkün olmayacaktır.

Sadece rastgele bir ormanın sonucunu fiyat tablosuna empoze ettikten sonra, model davranışının özellikleri ortaya çıkar.

https://github.com/Roffild/RoffildLibrary/blob/master/Include/Roffild/ToIndicator.mqh kullanılarak oluşturulan grafik

Açık değil, belli ki orada bir ormanınız yok, ama bir gösterge - belki de gerçek şu ki, “ormanın” bir mantığını işledi ve onu çıkardı, ancak bundan bir gösterge olmadı.

Yani verdikleri ifadenin nasıl okunacağını göstermek istediniz?

 
Alexey Vyazmikin :


Sayılar içeren ilk sütun filtresiz, ikincisi filtreli.

Belki de ağacın mantığını batırdım?


bir hata oldu yani

 if (BlockBuy== false )BuyNow= false ;


 
Alexey Vyazmikin :

Açık değil, belli ki orada bir ormanınız yok, ama bir gösterge - belki de gerçek şu ki, “ormanın” bir mantığını işledi ve onu çıkardı, ancak bundan bir gösterge olmadı.

Yani verdikleri ifadenin nasıl okunacağını göstermek istediniz?

CDForest::DFProcess(forest1, netinputs, netoutputs);
indicSymbol.buffer(netoutputs[ 1 ] * 100.0 , 0 );

CDForest::DFProcess(forest2, netinputs, netoutputs);
indicSymbol.buffer(netoutputs[ 1 ] * 100.0 , 1 );
Grafikte gerçek bir orman olduğuna inanmıyorsanız, orman fikri açıkça yanlıştır ...
 
Roffield :
Grafikte gerçek bir orman olduğuna inanmıyorsanız, orman fikri açıkça hatalıdır ...

İnanç meselesi nedir? Grafikte dalgalı çizgiler görüyorum - ve onları nasıl yorumlayacağımı anlamıyorum - hepsi bu.

 

Dr. Tüccar, genel olarak ağacı daha fazla dallandırmanız gerekir, karar vermek için çok az bilgi vardır.

 
Alexey Vyazmikin :

Sayılar içeren ilk sütun filtresiz, ikincisi filtreli.

Açık. Ağaç verimli bir şekilde filtrelemeyi öğrenemedi, bu nedenle sonuç filtreyle gözle görülür şekilde iyileşmedi, sadece daha az işlem vardı. Aslında, bazı iyi ve bazı kötü anlaşmalar rastgele filtrelendi,

Ağacı 2015 yılında sadece Malovhodov için eğittim.
filter_02 ve mnogovhodov_02 2016 için eğitilmişse, test cihazında 2016 ve 2017'yi karşılaştırmak daha iyidir (2017 - genel olarak, yeni verileri arşivde olmayan, görülecek en ilginç şey budur).

 
Alexey Vyazmikin :

Dr. Tüccar, genel olarak ağacı daha fazla dallandırmanız gerekir, karar vermek için çok az bilgi vardır.

Daha fazla dallanma benim için fazladan bir kıyafete yol açtı. Daha iyi doğruluk için, daha karmaşık modellere geçmek gerekir - bir orman veya bir nöron.

Sonuçta, eğitim verilerinde %100'e varan bir doğruluk oranına kadar dallanabilirsiniz, ancak böyle bir ağaç yeni veriler üzerinde yalnızca birleşecekse ne anlamı var ki. Hemen hemen eğitimde olduğu gibi yeni veriler üzerinde sonucu gösterebilecek bir modelin eğitilmesi gerekmektedir.