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

 
Andrey Dik :
Hangi zaman diliminde?

Anladığım kadarıyla, makaledeki kodunuz bulunan noktalar üzerinde ticaret simülasyonu yapmak için zaten uygun ve onu kullanabilirsiniz. ) Bu harika.

Diyelim ki, birkaç günlük makine çalışması için (veya bir hafta). Öngörülebilir bir dönem diyelim.

 
Alexey Burnakov :

Anladığım kadarıyla, makaledeki kodunuz bulunan noktalar üzerinde ticaret simülasyonu yapmak için zaten uygun ve onu kullanabilirsiniz. ) Bu harika.

Diyelim ki, makinenin birkaç günlük çalışması için.

Algoritmanın kendisi çalışıyor ve (gerçekten hata bulamıyorsanız) iyileştirmeler gerektirmiyor, ancak ideal zz'ye sahip kod bölümü, prensipte, küçük bir iyileştirme ile ticaretin taklidi olarak kullanılabilir.

Birkaç gün için? - hayır, çok daha hızlı, saatler hatta dakikalar içinde iyi bir sonuç alabileceğinizi düşünüyorum. Makalede, arama yaklaşık birkaç saniye sürdü, ancak 100 çubuk vardı. Senin durumunda elbette daha uzun olacak. Deneysel olarak, belirli bir süre içinde belirli bir doğrulukta bir sonuç elde etmek için dönem sayısını seçebilirsiniz.

 
Andrey Dik :

Algoritmanın kendisi çalışıyor ve (gerçekten hata bulamıyorsanız) iyileştirmeler gerektirmiyor, ancak ideal zz'ye sahip kod bölümü, prensipte, küçük bir iyileştirme ile ticaretin taklidi olarak kullanılabilir.

Birkaç gün için? - hayır, çok daha hızlı, saatler hatta dakikalar içinde iyi bir sonuç alabileceğinizi düşünüyorum. Makalede, arama yaklaşık birkaç saniye sürdü, ancak 100 çubuk vardı. Senin durumunda elbette daha uzun olacak. Deneysel olarak, belirli bir süre içinde belirli bir doğrulukta bir sonuç elde etmek için dönem sayısını seçebilirsiniz.

Böyle. Teşekkür ederim. Yapmaya çalışacağım. Tarih boyunca dakika çubukları için girişler oluşturmak istiyorum. Ve deneyinde değiştirin.

Yaptığın harika iş. Ve ideal girdilerin 33'ün mantığıyla mutlaka örtüşmediği gerçeği önemsiz ve önemli bir sonuçtur.

 
Alexey Burnakov :

Böyle. Teşekkür ederim. Yapmaya çalışacağım. Tarih boyunca dakika çubukları için girişler oluşturmak istiyorum. Ve deneyinde değiştirin.

Yaptığın harika iş. Ve ideal girdilerin 33'ün mantığıyla mutlaka örtüşmediği gerçeği önemsiz ve önemli bir sonuçtur.

Ve teşekkür ederim. Birkaç kişi cesur olanlara dikkat etti, nedense ...

Eklemek istiyorum. Makale, enstrümanın ortalama spreadini dikkate alarak IIZ'nin optimizasyonu ile ilgilidir, ancak bir süre sonra artık optimizasyonun spread olmadan yapılması gerektiği fikrine ve test ticareti yapılmasına meyilliyim veya birileri eminim. koşular zaten bir yayılma ile hesaplanmalıdır.

 
Andrey Dik :

Ve teşekkür ederim. Birkaç kişi, nedense kalın harflerle vurgulananlara dikkat etti ...

Eklemek istiyorum. Makale, enstrümanın ortalama spreadini dikkate alarak IIZ'nin optimizasyonu ile ilgilidir, ancak bir süre sonra artık optimizasyonun spread olmadan yapılması gerektiği fikrine ve test ticareti yapılmasına meyilliyim veya birileri eminim. koşular zaten bir yayılma ile hesaplanmalıdır.

"Her çubukta" optimize etmek için, yayılma elbette dikkate alınmalıdır. Aksi takdirde, her çubukta bir sonraki açılış fiyatı yönünde aptalca bir anlaşma olacaktır. Yayılma, sorunu doğrusal olmayan hale getirir ve işlemlerin optimal konfigürasyonunu belirler.
 
Alexey Burnakov :

LSTM'ler daha sonra tartışılacaktır.

Şimdiye kadar meslektaşım ve ben testte R^2 0.2'ye geldik. Tamamen bağlı bir katmanda birkaç evrişimsel filtre ve birkaç nöron. Teoride, tekrarlamaya gerek yoktur. Özelliklerin doğru şekilde ayrılmasına ihtiyacınız var.

Şimdiye kadar, görevim için sonuçlar aşağıdaki gibidir (test setindeki tüm R^2 tahminleri):

ARIMA: 0.14

MLP (tamamen bağlı NN): 0.12-0.15

GBM: 0.1

Evrişimsel Ağ (basit, iyi geliştirilmemiş): en az 0,2

Böylece, modellenen bağımlılığın gerçekten o kadar basit olmadığı ve popüler yöntemlerin başa çıkmadığı ortaya çıktı. Evrişimsel ağı iyileştireceğiz.

Yine de, birinin sorunu çözmeye çalışacak zamanı varsa (bir tür tekrarlayan ağ), lütfen sonucu paylaşın.

 
Alexey Burnakov :

Şimdiye kadar, görevim için sonuçlar aşağıdaki gibidir (test setindeki tüm R^2 tahminleri):

ARIMA: 0.14

MLP (tamamen bağlı NN): 0.12-0.15

GBM: 0.1

Evrişimsel Ağ (basit, iyi geliştirilmemiş): en az 0,2

Böylece, modellenen bağımlılığın gerçekten o kadar basit olmadığı ve popüler yöntemlerin başa çıkmadığı ortaya çıktı. Evrişimsel ağı iyileştireceğiz.

Yine de, birinin sorunu çözmeye çalışacak zamanı varsa (bir tür tekrarlayan ağ), lütfen sonucu paylaşın.

Hala onun sorunu üzerinde çalışıyor. Ayrıca üstte tamamen bağlı katmanlara sahip bir evrişimsel sinir ağı kullandım.

Testte elde edilen en iyi R^2 sonucu 0.23'tür.

Tavan gibi görünüyor. Ağın karmaşıklığını artırmak artık hiçbir şey vermiyor. Ancak ağın çıktısı mükemmel değil. Bu, modele karşı tepkinin bir dağılım grafiğidir. Dar eğimli bir bulut bekleniyor. Aslında, karmaşık yanıt fonksiyonunun ağ tarafından tam olarak modellenmediği görülebilir (atlamalar tanınmaz). Ağ tarafından yayılan işlev, benim koyduğumdan çok daha düzgün.


Belki NN'ye ilk elden aşina olan kişiler, böyle karmaşık bir fonksiyonun nasıl modelleneceğine dair düşüncelere sahip olacaktır (örnek):

Katman sayısını arttırmak, nöronlar?

Aslında, girdi değişkenleri hazırlamadan tüm popüler yöntemler birleştirildi. Evrişim, gerekli özellikleri (entegrasyon, farklılaşma, doğrusal olmayan yumuşatma) gerçekten potansiyel olarak bulabilir ve sinir ağı zaten normal olarak bunlar üzerinde eğitilmiştir. Bu, konvolüsyonun gücüdür.

Bu arada, Bay Perervenko sinir ağları hakkındaki makalesinde bu tür ağlar hakkında hiçbir şey söylemedi. Eh, tüm makalede sadece bir söz buldum. Ve uygulanabilirlik konusunu zaman serilerine açmak (düşünceli bir şekilde) mümkün olacaktır.

Alexey

 

En önemlisi, daha fazla girdi veriyorsunuz.

Ve öğrenme örnekleri.

 
Vadim Şişkin :

En önemlisi, daha fazla girdi veriyorsunuz.

Ve öğrenme örnekleri.

Yeter.
 

Gizli katmanda ne kadar çok nöron varsa, fonksiyon bir nöron tarafından o kadar karmaşık tanımlanabilir, daha fazla gizli katmana ve nöronlara ihtiyacınız vardır.

Ama o zaman sorun, nöronun hedefi tanımlamak için ardışık toplamalar ve çarpmalar (ve örneğin, aktivasyon fonksiyonu için sigmoidler) kullanması olacaktır, yani bu açıkça sizin orijinal fonksiyonunuz değil, bir tür yaklaşıklık olacaktır. Ve bu yaklaşımın eğitim verilerindeki bazı özellikleri hatırlayacağı ve bu nedenle yeni veriler üzerinde doğru şekilde çalışmadığı ortaya çıkabilir. Bu nedenle, bazen eğitimi durdurmanız, test setindeki hatanın azalıp azalmadığına bakmanız ve her şey yolundaysa eğitime devam etmeniz gerekir. Bir noktada, test verilerindeki hata büyümeye başlayacak, ardından eğitimin tamamen durdurulması gerekiyor.

Ayrıca nöronun çıkışı, aktivasyon fonksiyonu ile sınırlıdır. Popüler olanlar için sigmoid (0; 1), relu [0; inf). Hedef değerlerin farklı bir aralığa ölçeklenmesi gerekir, (-7; 7) aralığındaki çıktılarınız birçok paket için basitçe elde edilemez.