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

 
Dr.Tüccar :

Siz kendiniz biliyorsunuz ve bunun çoğunu yaptınız, ancak aynı şekilde konuştuğumuz bazı varsayımları hariç tutmak için daha eksiksiz yazacağım, ancak bunu farklı şekilde yapacağız.


Tüm bu tavsiyeler bu forumdan ve deneyimden.

Teşekkür ederim.

Nokta nokta cevap vereceğim.

Modelin parametrelerini tahmin etmek için dikkatlice honlanmış bir uygunluk fonksiyonuna sahip olmak gereklidir. İşlev, belirli model parametrelerini ve seçilen tahmin edicileri yüksek puanla değerlendiriyorsa, yeni veriler üzerinde testte iyi sonuçlar olmalıdır.
(herhangi bir değerlendirme için ne kadar yüksek olursa o kadar iyi olduğunu aklımda tutacağım)

Böyle bir fonksiyon var. R^2'ye ihtiyacım yok (her ne kadar ilk amacım piyasanın regresyon açısından aptalca tahmin edilebilir olduğunu doğrulamak olsa da). MO'yu ve bir spread ile pip toplamını tahmin etmenin tezgah üstü işlevini kullanıyorum. Bu işlev CV döngüsü içinde çalışır ve modeli eğitmek için en iyi parametreleri seçer.

Döngüdeki uygunluk işlevi en az 50 kez tekrarlanmalıdır:
1) verileri %50/%50 olmak üzere 2 parçaya bölün. Hem örnek hem de sıralı seçimler kullanılarak rastgele seçimler olmalıdır (eğitim için bir parça ortada bir yerdedir ve doğrulama için - kaynak verilerin başında ve sonunda onu çevreleyen şey). Eğitimin tablonun ilk yarısında olduğu ve doğrulamanın sonuncusu olduğu ve bunun tam tersi olan uç seçenekler dahil. Hem sıralı hem de rastgele seçilmiş örneklere sahip olmanın eğitim için önemli olduğunu düşünüyorum. Resim, rastgele ve sırayla bölmenin birkaç örneğini daha açık bir şekilde göstermektedir, yeşil çizgiler eğitim içindir, sarı çizgiler doğrulama içindir.

Bu tamamen net değil. Ne demek istediğini anlamıyorum.

Yine 99 eğitim setim var (her biri 10 yıl). Her küme, örnekler açısından benzersizdir, ancak hepsi aynı "önceki" zaman dilimindendir.

Her sette, 2 ila 10 kat arasında CV çalıştırıyorum (ayrıca üzerlerinde dolaşıyorum).

Ama kesinlikle tüm kıvrımları zamana göre ayırdım. Bence bu tartışmasız doğru bir yöntem.

Ve böylece, 99 * CV parametresi kombinasyonu sayısı (yüzlerce) = doğrulama kıvrımlarında en iyi kalite metriğini gösteren yüzlerce eğitimli model.

Ardından, "sonra" zaman diliminden (5 yıl olan) alınan aynı sayıda ertelenmiş numune vardır. Onlar da benzersizdir. İç içe CV yapıyorum: Alınan her modeli CV'de gecikmeli örnekleme deneyimine göre kontrol ediyorum. İki kalite metrik değeri vektörü ortaya çıkıyor: CV'de ve gecikmeli örneklemede.

Bilenler için soru:

Tutarlı verilerim ve uygun bir modelim (paket) olması durumunda, gecikmeli alımlarda ne almayı beklerim?

Cevap: Gecikmeli numunelerdeki kalite metriği (MO), doğrulama kıvrımlarındaki kalite metriği ile ilişkilendirilmelidir.

Gerçekte, bunu başarmak büyük bir sorundur.

Bu neden gerekli? Böylece, yalnızca çapraz doğrulamama güvenerek en iyi modelleri güvenle seçebilirim. Gelecekle tutarlı bir sonuç verdiğini zaten kontrol ettiğimden beri.

Komiteler ve diğer üst düzey modeller, herhangi bir şekilde eğitilmedikleri ertelenmiş bir örnek üzerinde bir uygunluk testinden geçmelidir.

 
Dr.Tüccar :


2) modeli eğitim örneğinde eğitin (döngü boyunca kullanılan model parametreleri ve tahmin ediciler aynıdır, değerlendirmeye çalıştığınız parametrelerdir), ardından bu modelle bu verileri tahmin edin ve tahmin - doğruluğu, r'yi değerlendirin ^ 2 veya başka bir şey. Örneğin, regresyon sonucunu sınıflara yuvarladım ve tahmin için Cohen'in Kappa işlevini kullanıyorum, bu şapkadan, sınıflandırma doğruluğundan veya regresyon doğruluğundan daha çok beğendim. Ama sadece iki sınıf için çalışıyor. Üç sınıf için bir şey önermek zor, değerlendirmenin her bir sınıf için doğruluğunu ayrı ayrı hesaba katması ve buna dayalı bir tür genel değerlendirme vermesi önemlidir.
3) Doğrulama kümesinden verileri tahmin etmek için eğitilmiş modeli uygulayın, tahmini aynı fonksiyonla değerlendirin.
4) her iki değerlendirme (eğitim ve doğrulama) birbirine yakın ve aynı zamanda mümkün olduğunca yüksek olmalıdır. Bu kodu son puan için kullanıyorum - (min(skor1,skor2) - (maks(skor1,skor2)-min(skor1,skor2))) - deltaları minimum değerden çıkarılır.

Her yinelemenin sonunda bir puan elde edilecektir ve verilerin rastgele bölümleri nedeniyle -1 ile 1 arasında (veya kullanılan işleve bağlı olarak başka bir aralıkta) değişebilir. Ortalama değerlerini dikkate alırız ve sonuç olarak uygunluk fonksiyonunu döndürürüz. Ek olarak, modeli çok büyük bir dizi gerekli veriye sahip olduğu için cezalandırmak için kullanılan her bir tahminci için uygunluk değerinden küçük bir sayı (0.0001) çıkarırım.


Açıklayın, lütfen, eğitim - bu, çapraz doğrulama kıvrımlarındaki değerlendirme anlamına mı geliyor?

Eğitim değerlendirmesi ve doğrulamanın yakınlığı - gecikmiş örnekleme çapraz doğrulama sonucuyla ilişkili mi?

Eğer öyleyse, o zaman her şeyi doğru yapıyoruz.

 
Alexey Burnakov :

Açıklayın, lütfen, eğitim - bu, çapraz doğrulama kıvrımlarındaki değerlendirme anlamına mı geliyor?

Eğitim değerlendirmesi ve doğrulamanın yakınlığı - gecikmiş örnekleme çapraz doğrulama sonucuyla ilişkili mi?

Eğer öyleyse, o zaman her şeyi doğru yapıyoruz.

"Korelasyon" ne anlama geliyor? "+1"? "-1"? Neyle?

İşte benim için net olan koşunun 50 sonucu. 50 sonuçta zaten istatistik uygulayabilir, ortalamayı, sapmaları ve en önemlisi güven aralığını hesaplayabilirsiniz ....

 
mytarmailS :

Dün için ticaretin sonucunu görebiliyor musunuz?

Y Mükemmel olduğunu söylemeyeceğim ama yine de model %80 oranında genellendi...

 
San Sanych Fomenko :

"Korelasyon" ne anlama geliyor? "+1"? "-1"? Neyle?

İşte benim için net olan koşunun 50 sonucu. 50 sonuçta zaten istatistik uygulayabilir, ortalamayı, sapmaları ve en önemlisi güven aralığını hesaplayabilirsiniz ....

Hayır, anlamadın, SS.

Gecikmeli bir örnekteki kalite metriğinin çapraz doğrulamadaki bir kalite metriğiyle (eğitilen modeli değerlendiren bir test örneği gibi) korelasyonu. Yüzlerce eğitilmiş modelimiz varsa, iki kalite metriği vektörü elde ederiz.

Örnek: çapraz doğrulamada sınıflandırma doğruluğu %57, ertelenmiş örneklemede %50'dir. Ve bunun gibi yüzlerce (binlerce) değer vardır. Yüzlerce ve binlerce eğitimli modelimiz var. Burada da bir soru var.

 
Alexey Burnakov :

Açıklayın, lütfen, eğitim - bu, çapraz doğrulama kıvrımlarındaki değerlendirme anlamına mı geliyor?

Eğitim değerlendirmesi ve doğrulamanın yakınlığı - gecikmiş örnekleme çapraz doğrulama sonucuyla ilişkili mi?

Eğer öyleyse, o zaman her şeyi doğru yapıyoruz.

Kodda, şöyle bir şey:

fitness <- function(inputTestPredictors, inputTestModelParams) {
    allScores <- c()
     for (i in 1 : 50 ){
        rowSampleTrain <- sample(nrow(trainData), round (nrow(trainData)* 0.5 ))
        rowSampleValidate <- setdiff( 1 :nrow(trainData), rowSampleTrain)
         #ещё нужно добавить с вероятностью 50 % - деление строк просто по порядку, без sample

        model <- TrainModel(target ~., data=trainData[rowSampleTrain, inputTestPredictors], p1 = inputTestModelParams$parameter1, p2 = inputTestModelParams$parameter2)
         #вместо TrainModel - какойто пакет из R - rf, gbm, nnet, lm, ...

        predictResultsForTrain <- predict(object = model, newdata=trainData[rowSampleTrain, inputTestPredictors])
        predictResultsForValidate <- predict(object = model, newdata=trainData[rowSampleValidate, inputTestPredictors])

        score1 <- CalcPreditionQuality(predictResultsForTrain, trainData[rowSampleTrain, "target" ]))
        score2 <- CalcPreditionQuality(predictResultsForValidate , trainData[rowSampleValidate, "target" ]))
        score_final <- min(score1,score2) - (max(score1,score2) - min(score1, score2))
        allScores <- c(allScores, score_final)
        # CalcPreditionQuality - функция для оценки качества прогноза относительно ожидаемых значений. Например точность, или F-score, или каппа
    }
    predictorCountPenalty <- sum(inputTestPredictors== TRUE ) * 0.0001
     return (mean(allScores) - predictorCountPenalty)
} 
 
Makine öğrenimi unsurları, uygulamada, ticaret tarihi hakkında öğrenmeye değil, "canlı" platformda belirli modellerin tetiklenmesiyle ilişkilendirmek için kendi robotik ticaret oturumlarında bir dizi sinyal/seçenek kullanma geçmişine uygulandı. " belirli konfigürasyonlarda/pazar koşullarında pazar\ sinyaller.
 
Dr.Tüccar :

Kodda, şöyle bir şey:

Evet, sadece kelimelerle söyleyin, ne tür örnekleri karşılaştırıyorsunuz? Eğitim var, test var (çoklu eğitim ve test = çapraz doğrulama). Doğrulama var (ertelenmiş örnekleme).

Üç sütunum var:

tüm eğitim. ---- test kıvrımları yaya geçidi. ----- gecikmiş gözlemler

0.7 0.65 0,55

... .... ....

Öğrenmenin testle ilişkili olduğu gerçeği saçmadır, çünkü sonuç olarak seçilen model, parçaları teste dahil edilen tüm set üzerinde eğitilir.

Ancak test puanlarının bekleyen puanlarla ilişkili olması benim için önemli.

 

Sizin terimlerinizle, öğrenme ve testi karşılaştırıyorum.
Modeli eğitirken bir doğrulama (ertelenmiş) örneğim olmadığı ortaya çıktı. Gecikmeli bir örnek, eğitimden sonra modelin değiş tokuş edeceği yeni veriler olacaktır.

Öğrenmenin bir testle ilişkili olduğu gerçeği saçmalıktır.

Bu nedenle, verilerin çoklu bölümlenmesini ve tekrar modelin çoklu eğitimini yapıyorum. Model parametreleri başarısız olursa, test numunelerindeki ortalama sonuç, eğitim numunelerindeki ortalama sonuçtan çok daha düşük olacaktır.

 
Dr.Tüccar :

Sizin terimlerinizle, öğrenme ve testi karşılaştırıyorum.
Modeli eğitirken bir doğrulama (ertelenmiş) örneğim olmadığı ortaya çıktı. Gecikmeli bir örnek, eğitimden sonra modelin değiş tokuş edeceği yeni veriler olacaktır.

Bu nedenle, verilerin çoklu bölümlenmesini ve tekrar modelin çoklu eğitimini yapıyorum. Model parametreleri başarısız olursa, test numunelerindeki ortalama sonuç, eğitim numunelerindeki ortalama sonuçtan çok daha düşük olacaktır.

Yaptığınız şeyde simus var.

Ancak, gecikmeli getirme yapmayı da deneyebilirsiniz. Bu bir klasik. Tren, Test, Doğrulama.

Ve prosedürü daha da karmaşık hale getirin. Eğitim ve test açısından iyi performans gösteren her model için bu modele X diyelim, biriktirmede doğrulama yapalım. Bu sayede sadece eğitim ve test yaparak doğru modeli seçip seçmediğiniz konusunda fikir sahibi olursunuz. Farklı parametrelerle birçok model yapın, en iyilerini seçin (10, 100, 1000). Doğrula. "En iyi" metriğinizin gelecekteki verilere yansıtılıp yansıtılmadığını anlayacaksınız. Sadece bundan sonra savaşa gidin.

Neden: