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

 
fxsaber #:

Kendi görevlerim için yaptım ve çalışma kodunu paylaştım. İhtiyacı olan herkes bir göz atacaktır.

Son kodu nerede görebilirim?

 

Hiç "aykırı değerler" ile çalışmayı deneyen oldu mu? Ve bir hata olarak aykırı değerlerden değil, nadir olaylardan bahsediyorum.

Komik ama bazı örnek dizilerinde tahmin edicilerin %50'sinden fazlasında aykırı değerlerin kaydedildiği ortaya çıktı....

Bu aykırı değerler modellere giriyor mu - ortaya çıktığı gibi oldukça kolay.

Öyle görünüyor ki bu durum sadece NS için kritik değil....

 
fxsaber #:

Ben karşılaştırma yapmıyorum, herkesin kendi durumu için ölçebileceği bir kod sunuyorum.

100'lük dize uzunluğu desenin uzunluğudur. Muhtemelen bundan daha fazlasına ihtiyacınız yoktur.

15000 örnek, korelasyon matrisinin ikinci dereceden boyutu nedeniyle bellekle sınırlıdır. Ne kadar çok örnek, o kadar iyi. Bu yüzden bir milyon tane olabileceği ev yapımı bir program yazdım.

Nesnel karşılaştırma yapmak için ne isteğim ne de zamanım var. Kendi görevlerim için yaptım ve çalışma kodunu paylaştım. İhtiyacı olan herkes görecektir.

Hızlanma varyantları - çıktı matrisi uchar'da saklanmalıdır. Kural olarak, yüzdeleri% 1'lik artışlarla değiştiririz ve bir şeye bakarız. uchar - sadece +- 128'e kadar. Kendi tasarımınızı uchar ve alglib için de değiştirebilirsiniz, kod mevcuttur. Toplam matrisler aynı bellekle 8 kat daha büyük olabilir.

 
Aleksey Vyazmikin #:

Hiç "aykırı değerler" ile çalışmayı deneyen oldu mu? Ve bir hata olarak aykırı değerlerden değil, daha ziyade nadir olaylardan bahsediyorum.

Komik ama örneklemin bazı dizilerinde aykırı değerin tahmincilerin %50'sinden fazlasında sabit olduğu ortaya çıktı....

Bu aykırı değerlerin modellere dahil edilip edilmemesi, ortaya çıktığı üzere oldukça isteklidir.

Öyle görünüyor ki.... bu durum sadece NS için kritik değil.

Beyaz/siyah kuğular... fxsaber blogunda bunlar hakkında yazdı. Birçok varyant arasında bu tür varyantlara sahip oldum: her iki yılda bir yaklaşık bir hafta boyunca ticaret. Genel olarak, uzman oturur ve hareketi bekler. Ancak bu, test cihazında ideal bir performanstır. Gerçek hayatta, kaymalar (hareket sırasında çok büyüktürler) her şeyi mahvedebilir.

 
Forester #:

Beyaz/siyah kuğular..... fxsaber blogunda bunlar hakkında yazdı. Birçok varyant arasında şunları yaşadım: her birkaç yılda bir yaklaşık bir hafta boyunca ticaret. Genel olarak, uzman oturur ve hareketi bekler. Ancak bu, test cihazında ideal bir performanstır. Gerçek hayatta, kaymalar (hareket sırasında çok büyüktürler) her şeyi mahvedebilir.

Çok sayıda aykırı değerin bulunduğu çizgileri örneklemden çıkarmaya çalıştım.

Ve eğitim kökten değişti.

Daha önce testte ortalama olarak artıda ve sınavda - neredeyse hepsi ekside - iyi sonuçlar varsa, bu 100 modelin dışında, o zaman aykırı değerlerin temizlenmesi sonucu değiştirdi - testteki sonuçlar çok kötüleşti (ortalama kar sıfıra yakın) ve sınavda tam tersine - birçok model artı oldu.

Henüz bunun bir düzenlilik olduğunu söylemeye hazır değilim, başka örnekler üzerinde kontrol etmeye çalışacağım.

Ayrıca, aykırı değerin en iyi nasıl belirleneceği sorusu benim için hala açık. Şimdi, sıralamalar bu sınırı aşmadığı sürece her bir taraf için %2,5'e kadar alıyorum.

 
Genel olarak, eğitimden sonra modellerin yeni verilerde aniden bazı kalıplar bulmaya başladığı birkaç yıllık bir döngü olduğu düşünülüyor.
 
Aleksey Vyazmikin #:

Örneklemden çok sayıda aykırı değerin bulunduğu satırları kaldırmayı denedim.

Ve eğitim kökten değişti.

Daha önce testte ortalama artıda ve sınavda - neredeyse hepsi ekside - iyi sonuçlar varsa, bu 100 modelden elde edilir, daha sonra aykırı değerlerin temizlenmesi sonucu değiştirdi - testteki sonuçlar çok daha kötü hale geldi (ortalama kar sıfıra yakın) ve sınavda tam tersine - birçok model artı oldu.

Henüz bunun bir düzenlilik olduğunu söylemeye hazır değilim, diğer örnekleri kontrol etmeye çalışacağım.

Ayrıca, aykırı değerin en iyi nasıl belirleneceği sorusu benim için hala açık. Şimdi, sıralamalar bu sınırı aşmadığı sürece her bir taraf için %2,5'e kadar alıyorum.

Sadece %2,5'i (veya diğerlerini) alırsanız, aykırı değerlerin sayısı dağılıma bağlıdır ve bu doğru değildir.

Daha iyisi, 100 grafikli bir kantil almak ve %1'den öncesini ve %99'dan sonrasını kaldırmak değil, %1 ve %99 değerleriyle değiştirmektir. Hiçbir şeyi silemezsiniz.

 
fxsaber #:
NumPy, ALglib'den farklı bir algoritmaya sahip gibi görünüyor, çünkü performans açısından büyük farklılıklar gösteriyor. Ancak, tüm bu büyük Python topluluğunda, bu konuyu incelemek için yeterli miktarda zaman ayıran çok güçlü bir algoritmacı olduğu açıktır.

Kaynak kodu açık, bir göz atabilirsiniz. Korelasyonu hesaplayan fonksiyon, sağ tarafta [source] var, üzerine tıkladıktan sonra koda yönlendirileceksiniz. Biz 2885-2907 satırları ile ilgileniyoruz. 2889. satırda kovaryans kullanılır, cov'a tıkladıktan sonra, koddaki tüm cov ifadeleri sağda görünecektir, def cov... ile satıra tıkladıktan sonra kovaryans fonksiyonuna atlayacaktır ve bu böyle devam edecektir. MQL C benzeri bir dildir, tüm C benzeri diller ~% 90 benzerdir, C #, Java, Python, JavaScript'i çok fazla sorun yaşamadan anlayabilirsiniz.

 
СанСаныч Фоменко #:

Sadece %2,5'i (veya diğerlerini) alırsanız, silinenlerin sayısı dağılıma bağlıdır ve bu doğru değildir.

En iyisi 100 grafikli bir nicelik almak ve %1'den öncesini ve %99'dan sonrasını silmek değil, %1 ve %99 değerleriyle değiştirmektir. Hiçbir şeyi silemezsiniz.

Verilerin bir yüzdesini alıyorum, aralığın bir yüzdesini değil. Yani çok fazla veri varsa (yoğunsa), aralık ölçeğinde durdurma hızlı olacaktır.

Ortalama ve varyanstan atlamanın çok az etkili olduğu görülmüştür.

Sadece diğer değerlerle değiştirme sorusunu araştırdım (ancak bunu sadece nicelleştirme için yaptım), olasılığı dikkate alarak kalan alt kümeden rastgele değerlerle değiştirme seçeneğini beğendim.

 
Aleksey Vyazmikin #:

Verilerin bir yüzdesini alıyorum, aralığın bir yüzdesini değil. Yani çok fazla veri varsa (yoğunsa), aralık ölçeğinde durdurma hızlı olacaktır.

Ortalama ve varyanstan atlamanın çok az etkili olduğu görülmüştür.

Sadece diğer değerlerle değiştirme sorusunu araştırdım (ancak bunu sadece nicelleştirme için yaptım), olasılığı dikkate alarak kalan alt kümeden rastgele değerlerle değiştirme seçeneğini beğendim.

Kantiller olasılıklardır. Dolayısıyla, %1'den az/%99'dan fazla aralığına veya diğer değerlere düşme olasılığı olan verileri kaldırır/değiştiririz. Miktarları kesemezsiniz - çarpık ve kuyruklu dağılımlarımız var.

Değiştirme değerinin en iyi MOE tarafından bu miktarın bir tahmini olarak alındığını yazıyorlar. Ama bu bana biraz abartılı geliyor.

Neden: