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

 
San Sanych Fomenko :

2. Videoya bakın:

Üzgünüm, ama kötü eğitimli bir yüksek lisans öğrencisinin olağan zaumu ...

Dedikleri gibi, aldığım için satıyorum. Bana bir soru soruldu, detaylı cevabının olduğu bir video verdim. Öğretim görevlisi orada akıllı davranmıyor, ancak istatistiksel öğrenme teorisine tükürüyor.

bkz. Vapnik VN İstatistiksel Öğrenme Teorisi . NY: John Wiley, 1998

San Sanych Fomenko :

1. Numuneden en az bir bilgilendirici tahminci çıkarılırsa, genelleme yeteneğinde gözle görülür bir bozulma


İnan bana, ne yazık ki bu hiçbir şeyi kanıtlamaz. Ayrıca, eğer tahmin ediciler seti kötüyse (çok fazla gürültü), o zaman bu etki o kadar güçlü olur, o kadar fazla gürültü olur. Bu çok basit bir şekilde açıklanır: daha fazla gürültü, algoritmanın "uygun" bir değer seçmesi daha kolay olur.

Dedikleri gibi, tat ve renk ...

San Sanych Fomenko :

dosyanız hakkında.

1. Verileriniz üzerinde 6 sınıflandırma modeli oluşturmak mümkün değildi: hata %50'nin üzerinde. İsterseniz sonuçları buraya yazabilirim.

Bilgi için teşekkürler. Sonuçlar çok açık - onların tamamen yokluğu.

San Sanych Fomenko :

2. Bu sonucun nedeni, çok zayıf bir tahminci grubunuz olmasıdır - gürültü, ör. hedef değişkenle ilgili olmayan tahminciler. 6, 7 ve 8 tahmincilerinin bir miktar tahmin gücü vardır, ancak çok azdır. Bu tür tahmin edicilerle çalışmıyorum. Gerisi sadece gürültü.

Peki, öyleyse. Gürültü olmadan, herhangi bir aptal doğru bir şekilde sınıflandırma yapabilir. Gürültü var ve makul bir miktarda. Yararlı bilgiler de mevcuttur. Örneğin, eski libVMR 3.01'in sonuçları şunlardır:

/**
* Numune dışı modelleme kalitesi:
*
* Doğru Pozitifler: 245
* TrueNegatives: 113
* YanlışPozitifler: 191
* YanlışNegatifler: 73
* İstatistikli örneklerdeki toplam desen sayısı: 622
* Numune dışı toplam hata: 264
* Genelleme yeteneğinin duyarlılığı: 56.19266055045872%
* Genelleme yeteneğinin özgüllüğü: %60.752688172043015
* Genelleme yeteneği: 16.94534872250173%
* Reshetov'un Göstergesi: 0.1075044213677977

*/

Onlar. genelleme yeteneği hakkında neredeyse% 17 oranında bilgi aldı

Yenisi çok daha iyi performansa sahip.

 
Alexey Burnakov :
Bileşen sayısını seçmek için çapraz doğrulamayı kullanın. En iyi çapraz doğrulama değeri daha sonra doğrulama kümesine karşı test edilir.

Yine, pek iyi sonuçlanmadı. 20 bileşen alırdım, çünkü min(trainwinrate. validate1winrate, validate2winrate) diğer sayılara kıyasla en büyük bileşendir. Ve ön testte ~% 55'lik bir sonuç alırdım, olduğundan bile daha kötü. Garip bir model çıktı - kazanç yüzdesi %50'den biraz fazla (Forex için uygun değil), çapraz doğrulama çalışmıyor, tahmincilerin önemi çıkarılamıyor. Çıktısını alıp duvara asmanız yeterli :)


 
Yuri Reshetov :

* TruePositives: 245

* TrueNegatives: 113
* YanlışPozitifler: 191
* YanlışNegatifler: 73

Yani test.csv'deki kazanç yüzdesi %57,6, değil mi? Tahmin edicileri ayıklamak ve nöronu eğitmek için yöntemimi deneyeceğim, yarın sonuçlar hakkında yazacağım.
 
Dr.Tüccar :

Yine, pek iyi olmadı. 20 bileşen alırdım, çünkü min(trainwinrate. validate1winrate, validate2winrate) diğer sayılara kıyasla en büyük bileşendir. Ve ön testte ~% 55'lik bir sonuç alırdım, olduğundan bile daha kötü. Garip bir model çıktı - kazanç yüzdesi %50'den biraz fazla (Forex için uygun değil), çapraz doğrulama çalışmıyor, tahmincilerin önemi çıkarılamıyor. Çıktısını alıp duvara asmanız yeterli :)


Çok az veri varsa, çapraz doğrulama zayıf bir sonuç verebilir. Makine öğrenimi hala on binlerce gözlemdir. Çapraz doğrulama kötüyse, model bir bütün olarak böyledir.
 

Bunlar benim büyük deneyimin sonuçları. Windows'taki bir hata nedeniyle kod kesintiye uğradı ve tüm karakterleri yeniden eğitmedim. Ama şimdilik, bu benim için yeterli. eurusd üzerinde iyi sonuçlar.

Parametreleri belirtmeden sadece bulunan maksimum değerleri gösterdim. Zaten iyi bir sonuç var. GBM ayarının incelikleri yardımcı olur.

 

512 dakika önce eurusd tahmin ederek, işlem başına 1,5 pip kazanabilirsiniz, değil mi? Ve yayılma da hesaba katılıyor mu? Bu süre zarfında maksimum düşüşü bilmek de önemlidir, bu süre zarfındaki düşüşün tamamı iki yüz ise, danışmanı 10 pip için bile takas etmek mantıklı değildir. Alım satımı değerlendirmek için Sharp oranını kullanmak iyi olur, ancak bunu R'de görmedim, başlangıç için kendinizi kurtarma faktörüyle sınırlayabilirsiniz: (toplam kar) / (tüm zaman için maksimum öz sermaye düşüşü) .

Örneğin, diyelim ki bir sinyal var 1. Yıl için, tüccar %1000 kazandı, ancak maksimum düşüşü %50 idi. Ve aynı zamanda, yazarın yılda sadece %600 kazandığı, ancak maks. düşüş %25 idi. Tüccar 1 (kâr açısından) daha iyi görünebilir, ancak aslında öyle değil, sadece iki kat daha fazla risk alıyor. İlkinin kurtarma faktörü 1000/50 = 20, ikincisi 600/25 = 24'tür. Yani ikinci sinyale abone olmak daha iyidir ve eğer riski ikiye katlamak istiyorsanız %50 risk almak istiyorsanız depozito.

Deneyinizde riskleri değerlendirmek de önemlidir. Küçük bir aralıkta alım satım yapmak çok daha karlı olabilir, çünkü model zaman içinde fiyat artışlarına tepki verebilir ve onlardan kazanç sağlayabilir ve bir stop loss yakalama riskiyle büyük bir düşüş yaşamayabilir.

 
Alexey Burnakov :

Arkadaşlar vaktiniz varsa yazının altına soru sorabilir misiniz? https://habrahabr.ru/company/aligntechnology/blog/303750/

Ve sonra Habr hiç susmuyor!

Habr sessiz değildir - Habr okur.
Bir sürü kayın.
 
Dr.Tüccar :

512 dakika önce eurusd tahmin ederek, işlem başına 1,5 pip kazanabilirsiniz, değil mi? Ve yayılma da hesaba katılıyor mu? Bu süre zarfında maksimum düşüşü bilmek de önemlidir, bu süre zarfındaki düşüşün tamamı iki yüz ise, danışmanı 10 pip için bile takas etmek mantıklı değildir. Alım satımı değerlendirmek için Sharp oranını kullanmak iyi olur, ancak bunu R'de görmedim, başlangıç için kendinizi kurtarma faktörüyle sınırlayabilirsiniz: (toplam kar) / (tüm zaman için maksimum öz sermaye düşüşü) .

Örneğin, diyelim ki bir sinyal var 1. Yıl için, tüccar %1000 kazandı, ancak maksimum düşüşü %50 idi. Ve aynı zamanda, yazarın yılda sadece %600 kazandığı, ancak maks. düşüş %25 oldu. Tüccar 1 (kâr açısından) daha iyi görünebilir, ancak aslında öyle değil, sadece iki kat daha fazla risk alıyor. İlkinin kurtarma faktörü 1000/50 = 20, ikincisi 600/25 = 24'tür. Yani ikinci sinyale abone olmak daha iyidir ve eğer riski ikiye katlamak istiyorsanız %50 risk almak istiyorsanız depozito.

Deneyinizde riskleri değerlendirmek de önemlidir. Küçük bir aralıkta alım satım yapmak çok daha karlı olabilir, çünkü model zaman içinde fiyat artışlarına tepki verebilir ve onlardan kazanç sağlayabilir ve bir stop loss yakalama riskiyle büyük bir düşüş yaşamayabilir.

Evet, 1'lik bir spread ile 1.5 punt.

Diğer tüm göstergeleri birlikte değerlendireceğiz: Baykuşu MT4'e eğitimli model üzerinde yerleştireceğim.

Ne yazık ki, R'de Sharpe ve benzerlerini hesaplayamıyorum, çünkü 49 rastgele örneğim var, üst üste bindirildiğinde işlem sırası geri yüklenmez.

Sonuçlar özellikle eurusd için 13.000 işlem için verilmiştir.
 
Dr.Tüccar :
Yani test.csv'deki kazanç yüzdesi %57,6, değil mi? Tahmin edicileri ayıklamak ve nöronu eğitmek için yöntemimi deneyeceğim, yarın sonuçlar hakkında yazacağım.

Kazanan değil, fiyatın gelecekteki yönünün doğru tahminlerinin sayısı. Test setindeki sınıflandırıcı iki değerden birini üretir: Pozitif - gelecekteki bir fiyat artışı bekleniyor, Negatif - gelecekteki bir fiyat düşüşü bekleniyor. Bazı test durumlarını doğru tahmin ederse, ona True verilir. Bir hata yaptıysa, o zaman Yanlış.

Genelleme yeteneğinin duyarlılığı: 56.19266055045872% - gelecekteki fiyat artışı doğru bir şekilde tahmin edildi: %100 * TP / (TP + FP) = %100 * 245 / (245 + 191) = %100 * 245 / 436 = 56.192660550458715

Genelleme yeteneğinin özgüllüğü: %60.752688172043015 - gelecekteki fiyat düşüşü doğru bir şekilde tahmin ediliyor: %100 * TN / (TN + FN) = %100 * 113 / (113 + 73) = %100 * 113/186 = 60.75268817204302

 
Yuri Reshetov :

Kazanan değil, fiyatın gelecekteki yönünün doğru tahminlerinin sayısı. Test setindeki sınıflandırıcı iki değerden birini üretir: Pozitif - gelecekteki bir fiyat artışı bekleniyor, Negatif - gelecekteki bir fiyat düşüşü bekleniyor. Bazı test durumlarını doğru tahmin ederse, ona True verilir. Bir hata yaptıysa, o zaman Yanlış.

Genelleme yeteneğinin duyarlılığı: 56.19266055045872% - gelecekteki fiyat artışı doğru bir şekilde tahmin edildi: %100 * TP / (TP + FP) = %100 * 245 / (245 + 191) = %100 * 245 / 436 = 56.192660550458715

Genelleme yeteneğinin özgüllüğü: %60.752688172043015 - gelecekteki fiyat düşüşü doğru bir şekilde tahmin ediliyor: %100 * TN / (TN + FN) = %100 * 113 / (113 + 73) = %100 * 113/186 = 60.75268817204302

Yuri, verileriniz üzerindeki ilk test:

yöntem kayıp_fonksiyon cv_folds bag_frac model_params AUC_cv doğruluk_tren doğruluk_validate
GBM Bernoulli 4 0,4 0.015_|_7_|_70_|_600 0.429659 0.590361 0.50501
GBM Bernoulli 4 0,6 0.02_|_5_|_110_|_600 0.485727 0.586345 0.51503

Eğitim için iki farklı parametre değeri seti. Çapraz doğrulamada AUC'nin kaidenin altında olması dikkat çekicidir.

Genel olarak, testte %51.5'lik bir doğruluk elde ettiğimiz en iyisidir.

%60'a nasıl ulaştığını bile bilmiyorum.