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

 
Maksim Dmitrievski :

bütün kunduzlar bilmeseler de aynı barajları inşa ederler.

ama herkes inatla onun yeni bir şey icat ettiğine inanıyor

Kunduz çalışkan, doğru bir yaratıktır, bambaşka bir meseledir DAHA FAZLA ÖĞRENCİSİ , bu aşağılık bir yaratıktır, onu süpürgeyle her yerden kovmak, ama görmezden gelmek daha iyidir.

 
Kesha Kökleri :

Kunduz çalışkan, doğru bir yaratıktır, bambaşka bir meseledir DAHA FAZLA ÖĞRENCİSİ , bu aşağılık bir yaratıktır, onu her yerden süpürgeyle kovmak, ama görmezden gelmek daha iyidir.

"Bankadaki analist" :)) bulaşık makinesi dışarı çıktı

 
Alexey Vyazmikin :

Gerçek şu ki, hepsinin %50'sini alsalar bile, bu %50'den ilk kök bölünmesi için zaten net bir seçim var (ya da Alglib'de durum böyle değil mi?). CatBoost, yalnızca rastgele bir tahminci seçimine değil, aynı zamanda ilk ağaçlarda rastgele bir bölmeye (hesaplamalara rasgele ağırlıklar eklenir) sahiptir.

Farklı bir sonuç alıyorum ve amacım tüm modeli değerlendirmek değil, yüksek olasılıkla örneğin çoğunu tanımlayan yapraklar elde etmek. Daha sonra bu tür yapraklar yıllara göre tarihe bakılır ve onlardan tüm pazarı tanımlamayabilecek bir kompozisyon yapılır, ancak bildiklerinize% 50 olasılıkla tahmin etmekten daha doğru cevaplara sahip olmanın daha iyi olduğuna inanıyorum. çoğu zaman.

Tahminler artık 600 civarında olacak, bu nedenle tam bir numaralandırma artık gerçek değil.

Alglib'de kalan tüm tahmin ediciler %50'den sıralanır, her biri dörtte birlik 4 parçaya bölünür ve tüm seçeneklerden en iyi hataya sahip bölme seçilir.

Prensipte, rastgele ayırma eklemek zor değildir.
Testte iyi sonuçlar veren tek tek ağaçlar görmedim (% 45-50), ancak ormanları zaten daha ilginç)


 
Tahmin edicilerin önemine göre şunlara baktım:
xgboost, lightGBM paketleri, "ahşap modeller" için özelliklerin (özellik önemi ) önemini değerlendirmek için yerleşik yöntemlere sahipti:

  1. Kazanmak
    Bu ölçü, her bir özelliğin modele göreli katkısını gösterir. hesaplamak için her ağacın üzerinden geçiyoruz, ağacın her bir düğümüne, hangi özelliğin düğümün bölünmesine yol açtığına ve metriğe göre modelin belirsizliğinin ne kadar azaldığına (Gini safsızlığı, bilgi kazancı) bakıyoruz.
    Her özellik için, tüm ağaçlara katkısı özetlenir.
  2. örtmek
    Her özellik için gözlem sayısını gösterir. Örneğin 4 özelliğiniz, 3 ağacınız var. 1, 2 ve 3 ağaçlarında sırasıyla 10, 5 ve 2 gözlem içerdiğini varsayalım.
  3. Sıklık
    Bu özelliğin ağacın düğümlerinde ne sıklıkta meydana geldiğini gösterir, yani her ağaçtaki her bir özellik için ağacın düğümlere toplam bölünme sayısı hesaplanır.
Önemi gerçekten doğru bir şekilde paylaşmıyorlar.
5 çubukta eğitilmiş ormanım, testte 100'den daha iyi bir sonuç veriyor. Ancak 100'de öğrendiğinizde, ilk 5 önemli olarak değil, bazı uzak olanlar olarak işaretleniyor.
100'de antrenman yaparken, bireysel ağaçların ve ormanın hatası daha düşüktür - açıkçası yeniden eğitim ve 30-100 bara önem verilmesi nedeniyle. Ancak, her zamanki mantıkla değil, 5 çubuktaki ormanın en iyi sonuçları verdiği gerçeğiyle önemli oldukları açıktır.
 
Bu arada Cover'ın Frequency'den ne farkı var anlamadım? Daha spesifik olarak, Cover'da bir özellik gözlemi nedir? (Frekans'taki özelliğe göre bir döküm ile anlaşılabilir). Ağaçlar özelliklerine bölünmüş gibi görünüyor, ancak gözlemlenmiyor.
 
Alexey Vyazmikin :

R'de bir ağaç oluşturmak için genetik algoritmaya sahip bir komut dosyası var, entropiyi iyileştirmek için nesiller seçildi. Ardından son seçim gelir. Son seçim için tüm ağaçları alıyorum ve MT5'te ayrı ayrı ölçümler için onlardan yapraklar çıkarıyorum. Senaryo herkese açık olarak yayınlanmadı, bu nedenle ayrıntılı bir açıklama yok. Görünüşe göre, ormandan en iyi ağaç bu şekilde seçiliyor, ancak yeniden eğitimden kaçınmak için bir derinlik sınırı var ve son örnekteki tüm çekirdeklerde süreç yaklaşık 2 gün sürüyor, burada tüm çubuklar değil, yalnızca giriş sinyalleri ve tüm çubuklar 3 yıl sürerse, hesaplama 1,5 aydır. Hesaplamayı bitirdikten sonra ağacı böldüm, yani. En iyi popülasyon ağacının kök tahmincisi olan sütunu kaldırıyorum ve her şeye yeniden başlıyorum, böyle bir prosedürde 40'ta bile çok iyi yaprakların oluşturulduğu ortaya çıktı, bu yüzden ağacın en iyi matematiksel düzeninin olduğu sonucuna vardım. her zaman en etkili değil ve bir bilgi, bir ağaç oluşturmak için tüm örnekten tahminciler rastgele seçildiğinde, daha sonra aynı CatBoost'ta kullanıldığı ortaya çıkan diğerinin tezahürüne müdahale ediyor.

Kodun üstünkörü bir incelemesinden sonra, rpart paketinden bir ağaç oluşturmak için genetik bir özellik seçimi gördüm. Onlar. her ağaca eğitim için kendi özellikleri sunuldu. Genetik nedeniyle, böyle bir seçim, tam bir aramadan daha hızlıdır.
Ama ağaç sihir değil, rpart'ın sunduğu ağaçtır. Orada standart olduğunu düşünüyorum.
 
Maksim Dmitrievski :

önce modeli tüm özellikler konusunda eğitin, hataları kaydedin

daha sonra, sırayla, normal bir dağılımla diyelim ki öngörücülerin her birini randomize edin ve bu randomize (değiştirilmiş) dahil olmak üzere tüm özelliklerde hatayı tekrar kontrol edin ve orijinal olanla karşılaştırın. Modeli yeniden eğitmeye gerek yoktur. Ve böylece tahmin edicilerin her birini kontrol edin. Tahmin edici iyiyse, numunenin tamamındaki hata (diğer tüm orijinal tahmin ediciler dahil) orijinal ile karşılaştırıldığında önemli ölçüde artacaktır. Hata farklılıklarını kaydedin, bunlara göre en iyi özellikleri filtreleyin. Ardından, sonunda sadece üretimdeki en iyi ve modelden öğrenin. Kötü tahminciler, model için gürültüdür,% 1'leriyle neye ihtiyaç duyarlar. Genellikle 5-10 tane iyi tane kalır, gerisinin önemi katlanarak azalır (Zipf yasası)

Filtreleri öğretmeye çalıştım, ama biraz, pek bir nokta göremiyorum, her şeyi aynı anda tek bir modele koymak daha iyi

eğer ustalaşırsanız, tahmin edicilerin seçimi hakkında ÇOK yetkin (zaten daha önce attım)

Permütasyonla ilgili yazınızı buldum.
İlginç bir seçenek. Denemek gerek.
Korkarım ki 100 çubuktaki modele uygularsanız ve 95 çubuğu çıkarmaya çalışırsanız ve ilk 5'i bırakırsanız sonuç %50 olacaktır. Sonuçta, bu ilk 5 neredeyse bölümlere katılmadı (ortalama olarak, düğümlerin sadece% 5'i üzerlerine inşa edildi).
 
elibrarius :
Permütasyonla ilgili yazınızı buldum.
İlginç bir seçenek. Denemek gerek.
Korkarım ki 100 çubuktaki modele uygularsanız ve 95 çubuğu çıkarmaya çalışırsanız ve ilk 5'i bırakırsanız sonuç %50 olacaktır. Sonuçta, bu ilk 5 neredeyse bölümlere katılmadı (ortalama olarak, düğümlerin sadece% 5'i üzerlerine inşa edildi).

100 barla orada ne yaptığınızı bilmiyorum, muhtemelen normal uygulamanız gerekiyor ve her şey olacak

 
Maksim Dmitrievski :

100 barla orada ne yaptığınızı bilmiyorum, muhtemelen normal uygulamanız gerekiyor ve her şey olacak

Önemsiz tahmin edicileri ayıklama sürecini otomatikleştirmek istiyorum)

 
Maksim Dmitrievski :

önce modeli tüm özellikler konusunda eğitin, hataları kaydedin

daha sonra, sırayla, normal bir dağılımla diyelim ki öngörücülerin her birini randomize edin ve bu randomize (değiştirilmiş) dahil olmak üzere tüm özelliklerde hatayı tekrar kontrol edin ve orijinal olanla karşılaştırın. Modeli yeniden eğitmeye gerek yoktur. Ve böylece tahmin edicilerin her birini kontrol edin. Tahmin edici iyiyse, numunenin tamamındaki hata (diğer tüm orijinal tahmin ediciler dahil) orijinal ile karşılaştırıldığında önemli ölçüde artacaktır. Hata farklılıklarını kaydedin, bunlara göre en iyi özellikleri filtreleyin. Ardından, sonunda sadece üretimdeki en iyi ve modelden öğrenin. Kötü tahminciler, model için gürültüdür,% 1'leriyle neye ihtiyaç duyarlar. Genellikle 5-10 tane iyi tane kalır, gerisinin önemi katlanarak azalır (Zipf yasası)

Filtreleri öğretmeye çalıştım, ama biraz, pek bir nokta göremiyorum, her şeyi aynı anda tek bir modele koymak daha iyi

eğer ustalaşırsanız, tahmin edicilerin seçimi hakkında ÇOK yetkin (zaten daha önce attım)

Ben bu yöntemi farklı anladım.
İncelenen tahminci için normal dağılıma sahip rastgele değerler göndermek değil, sadece bu sütundaki satırları karıştırmak gerekir.

Genel olarak, makaleden elde edilen sonuçlar etkileyici. Pratikte denemeliyiz.