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

 
vladavd #:

Bu durumda yeni olan şey bir zikzak ve bu zikzak boyunca uzanan bir kanaldır.

Tüm gördüğünüz bu değil.

İzin verilenlerin sadece %5'i.))

lynxntech #:

son söz ve hamburger gibi).

Kendinizi haklı çıkarmak için her zaman kendinize bir şans vermelisiniz.

 

Hey, millet!

Belki birisi bana biraz tavsiye verebilir. "DecisionTreeClassifier" modelini kullanarak bir döviz çiftinin gün için yönünü (yukarı veya aşağı) tahmin etmeye çalışıyorum.

Tahmin için sadece 5 tahminci alıyorum, tahminin sonucu yukarı (1) veya aşağı (-1) eğilimdir. Veri kümesi boyutu: 999 satır ve 6 sütun (veri kümesi ektedir).

Ancak "max_depth" artırıldığında eğitim ve test örneklerindeki doğruluk aynı anda her zaman arttığında bir sorunla karşılaştım. Test örneğindeki doğruluk artmayı durduruyor ve max_depth=22 'de 0.780000'e eşit bir sabit haline geliyor. Farklı max_depth değerlerinde sonuçlar:


1) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=3)

Eğitim seti üzerinde doğruluk: 0,539424 Test seti üzerinde doğruluk: 0,565000

2) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=5)

Eğitim seti üzerinde doğruluk: 0,579474 Test seti üzerinde doğruluk: 0,585000

3) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=7)

Eğitim seti üzerinde doğruluk: 0,637046 Test seti üzerinde doğruluk: 0,640000

4) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=9)

Eğitim seti üzerinde doğruluk: 0,667084 Test seti üzerinde doğruluk: 0,700000

5) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=11)

Eğitim seti üzerinde doğruluk: 0,700876 Test seti üzerinde doğruluk: 0,710000

6) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=13)

Eğitim seti üzerinde doğruluk: 0,720901 Test seti üzerinde doğruluk: 0,720000

7) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=15)

Eğitim seti üzerinde doğruluk: 0,734668 Test seti üzerinde doğruluk: 0,740000

8) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=17)

Eğitim seti üzerinde doğruluk: 0,747184 Test seti üzerinde doğruluk: 0,760000

9) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=19)

Eğitim seti üzerinde doğruluk: 0,755945 Test seti üzerinde doğruluk: 0,765000

10) clf_20=DecisionTreeClassifier(criterion='entropy', max_depth=22)

Eğitim seti üzerinde doğruluk: 0,760951 Test seti üzerinde doğruluk: 0,780000


Bu durum kafamı çok karıştırdı, çünkü max_depth değerini 3-4'ten fazla kullanmamak gerektiğini duymuştum, çünkü yeniden eğitim mümkün. Ancak model yeniden eğitilirken böyle mi davranıyor, daha çok yetersiz eğitilmiş bir model gibi görünüyor.

.

Böyle bir durumda, karar ağacının hangi derinliğini seçeceğimi veya hangi modeli seçeceğimi ve genel olarak bu yönde daha fazla çalışmaya değip değmeyeceğini anlamıyorum, belki bir şeyler eksik (ama veri kümesi 100 satır değil), daha fazla tahminci eklemek mümkün mü ve veri kümesinin bu boyutunda kaç tane daha eklenebilir (2-5 adet daha eklerdim).

Kod basittir, ayrıca veri kümesiyle birlikte ekliyorum:



 
Elvin Nasirov #:

Bu durum kafamı çok karıştırdı, çünkü max_depth 'i 3-4'ten fazla kullanmamanız gerektiğini duydum, çünkü yeniden eğitim mümkün. Ancak model yeniden eğitildiğinde bu şekilde mi davranıyor, daha çok yetersiz eğitilmiş bir model gibi görünüyor.

.

Böyle bir durumda, karar ağacının hangi derinliğini seçeceğimi veya hangi modeli seçeceğimi ve genel olarak bu yönde daha fazla çalışmaya değip değmeyeceğini anlamıyorum, belki bir şeyler eksik (ama veri kümesi 100 satır değil gibi), daha fazla tahminci eklemek mümkün mü ve veri kümesinin bu boyutunda kaç tane daha eklenebilir (2-5 adet daha eklerdim).

Kod basittir, ayrıca veri kümesiyle birlikte ekliyorum:

Merhaba.

Daha fazla bölünme sayısı - daha fazla bellek = örneği öğrenme riski.

Python'da yetkin değilim ama

1. Örneği karıştırmadan bölmeyi deneyin.

2. Bana hala tüm örnek üzerinde öğreniyormuşsunuz gibi geliyor, azaltılmış bir örnek üzerinde değil.

 
Aleksey Vyazmikin #:

Merhaba.

Daha fazla bölünme sayısı - daha fazla hafıza = bir örnek öğrenme riski.

Python'da yetkin değilim ama:

1. Numuneyi karıştırmadan bölmeyi deneyin.

2. Bana öyle geliyor ki, azaltılmış bir örneklem üzerinde değil, tüm örneklem üzerinde çalışıyorsunuz.

Teşekkür ederim! Görünüşe göre haklısınız.

Yukarıdaki kodda "clf_20.fit(X, y)" yerine "clf_20.fit(X_train, y_train)" yazdım ve görüntü neredeyse yarı yarıya değişti.

 
Elvin Nasirov #:

Teşekkür ederim! Sanırım haklısın.

Yukarıdaki kodda "clf_20.fit(X, y)" ifadesini "clf_20.fit(X_train, y_train)" ile değiştirdim ve görüntü neredeyse yarı yarıya değişti.

Böyle bir sonuca sahip olmak normaldir - çok iyi bir sonuç her zaman kodda bir hata aramaya başlamak için bir nedendir.

 
Aleksey Vyazmikin #:

Bu sonucun elde edilmesi normaldir - çok iyi bir sonuç her zaman kodda bir hata aramaya başlamak için bir nedendir.

İzin verirseniz başka bir sorum var.

En iyi sonucun max_depth=1'de elde edildiği ve aşağıdaki gibi göründüğü ortaya çıktı:

Eğitim setinde doğruluk: 0.515021 Test setinde doğruluk: 0.503333

Son derece kötü ve yazı tura atma olasılığına eşit görünüyor. Ya da bunu iyi bir sonuç olarak değerlendirip forex hareketinin olasılığını ve sonucun olasılığını yazı tura ile eşitlememizi sağlayan bir formülasyon bulduğumuz sonucuna varabilir miyiz?

Yani, durum öyle ki, her bir tahminci kombinasyonu için piyasa hareketinin iki eşdeğer varyantı vardır: yukarı veya aşağı ve bu nedenle veri setini mevcut kombinasyonda hala yukarı veya aşağı belirleyebilecek bir şeyle desteklemek gerekir.

 
Elvin Nasirov #:

İzin verirseniz bir soru daha sormak istiyorum.

En iyi sonucun max_depth=1'de elde edildiği ve aşağıdaki gibi göründüğü ortaya çıktı:

Eğitim seti üzerinde doğruluk: 0,515021 Test seti üzerinde doğruluk: 0,503333

Son derece kötü ve yazı tura atma olasılığına eşit görünüyor. Ya da bunu iyi bir sonuç olarak değerlendirip, forex hareketi olasılığı ile yazı tura olasılığını eşitlememizi sağlayan bir formülasyon bulduğumuz sonucuna varabilir miyiz?

Yani, her bir tahminci kombinasyonu için piyasa hareketinin iki eşdeğer varyantı vardır: yukarı veya aşağı ve bu nedenle veri setini mevcut kombinasyonda hala yukarı veya aşağı belirleyebilecek bir şeyle desteklemek gerekir.

Öncelikle eğitim sonuçlarını değerlendirmek için diğer ölçütleri okuyun - Recall (tamlık) ve Precision (doğruluk), bunlar özellikle dengesiz örnekleme için geçerlidir. Strateji, aynı doğru ve yanlış sonuç şansıyla sınıflandırma için olumlu bir finansal sonuç üretmek olabilir.

Daha karmaşık ama mantıklı bir hedef işaretlemesi düşünün. Bir günün açılışında nasıl kapanacağını belirlemek, günün açılışının belirli bir yüzdesi kadar yükselme ve düşme olasılığını belirlemekten daha zordur - gün içi bir model belirleme olasılığı vardır.

Benim için örneklem çok küçük.

Piyasayı tanımlayabilecek öngörücüler oluşturmayı düşünün. Tahmincilerin göstergelerinden, bence, grafikteki durumu ona bakmadan geri yüklemek mümkün olmalıdır.

Eğitim için CatBoost'u denemenizi tavsiye ederim - modelleri hızlı bir şekilde oluşturur ve MT5'te koltuk değneği olmadan çalışmak için modelleri koda aktarma sorunu çözülür.

 
Elvin Nasirov #:

En iyi sonucun max_depth=1 olduğunda elde edildiği ve aşağıdaki gibi göründüğü ortaya çıktı:

Eğitim seti üzerinde doğruluk: 0,515021 Test seti üzerinde doğruluk: 0,503333

Ayrıca sık sık en iyi sonucun derinlik=1'de olduğunu görüyorum, bu da özelliklerden birinde yalnızca 1 bölme yapıldığı anlamına geliyor. Ağacın daha fazla bölünmesi, traine üzerinde aşırı eğitime ve testte daha kötü sonuçlara yol açar.

 
elibrarius #:

Ayrıca sık sık en iyi sonucun derinlik=1'de olduğunu görüyorum, bu da özelliklerden birinde yalnızca 1 bölme yapıldığı anlamına geliyor. Ağacın daha fazla bölünmesi, traine üzerinde yeniden eğitime ve testte sonuçların kötüleşmesine neden olur.

Dün sonuçları kontrol ettim, tüm vakalar için modelin ortalama olarak "1" ve dolayısıyla 50/50 tahmin verdiği ortaya çıktı. Model olmadan da yapabilirsiniz - her zaman "yukarı" diyeceksiniz.

 
Profesyonel bir tüccar olarak ticaret yapmak
h ttps://youtu.be/RS9jRVmW1j4

Benim anlayışıma göre destek ve direnç seviyeleri budur.....

Herkes anlamayacak ama anlarlarsa onlara tebrikler....

EARNING SEASON KICKS OFF - Trading Futures Live
EARNING SEASON KICKS OFF - Trading Futures Live
  • 2023.01.13
  • www.youtube.com
Join our FREE Discord community https://discord.gg/zhvUwUUhFirst 5 days of January bullish were followed by Full-year gains 83% of the time since 1950.Earnin...