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

 
Michael Marchukajtes :
Evet, gecikmeler yaptım çünkü önceki sürümlerde genelleme yeteneğini artırdılar, şimdi tahminleri sıralamak için algoritmanın geliştirilmesiyle, bunun gerekli olmadığını düşünüyorum, bu yüzden onlarsız çalışmaya çalışıyorum. izliyoruz, izliyoruz. Bugünün sonuçlarını daha sonra paylaşacağım...

Odak başarısız olursa, yani. gecikme olmadan genelleme yeteneği artmayacak, o zaman büyük olasılıkla 13. ve 14. versiyonlar, dar bir görev yelpazesi için keskinleştirilmiş bir tür evrensel olmayan yön mü?

Bu durumda, jPrediction'ı farklı, daha evrensel bir şekilde taşımak için GIT'i geri almanız gerekecektir.

İkinci bir hipotez olmasına rağmen: Örnekte gecikmelerin varlığı, önceki sürümlerin keskinleştirildiği dar ve evrensel olmayan bir yön müdür?

 
Yuri Reshetov :

Odak başarısız olursa, yani. gecikme olmadan genelleme yeteneği artmayacak, o zaman büyük olasılıkla 13. ve 14. versiyonlar, dar bir görev yelpazesi için keskinleştirilmiş bir tür evrensel olmayan yön mü?

Bu durumda, jPrediction'ı farklı, daha evrensel bir şekilde taşımak için GIT'i geri almanız gerekecektir.

İkinci bir hipotez olmasına rağmen: Örnekte gecikmelerin varlığı, önceki sürümlerin keskinleştirildiği dar ve evrensel olmayan bir yön müdür?

Bakalım ne ve nasıl ... antrenman yapar yapmaz abonelikten çıkacağım ...
 
Dr.Tüccar :

O zaman buradan cevap vereyim.

#пара строк из той таблицы, не буду я всё текстом копировать, потом первая строка повторена ещё дважды
dat <- data.frame(cluster1=c( 24 , 2 , 13 , 23 , 6 ), cluster2=c( 5 , 15 , 13 , 28 , 12 ), cluster3=c( 18 , 12 , 16 , 22 , 20 ), cluster4=c( 21 , 7 , 29 , 10 , 25 ), cluster5=c( 16 , 22 , 24 , 4 , 11 ), target.label=c( 1 , 1 , 0 , 1 , 0 ))
dat <- rbind(dat, dat[ 1 ,], dat[ 1 ,])
#результат последней строки поменян на 0 для эксперимента
dat[ 7 , "target.label" ]= 0

library (sqldf)
#для sqldf точек в названиях колонок быть не должно
colnames(dat)[ 6 ] <- "target"

dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )
dat1
dat1[ dat1$target_count>= 10 & dat1$target_avg> 0.63 , ]
dat1[ dat1$target_count>= 10 & ( dat1$target_avg< 0.37 | dat1$target_avg> 0.63 ), ] #на случай если оба "0" или  "1" встречаются чаще 70 %

Teşekkürler, çok kompakt bir çözüm!!

Lütfen satırdaki bir nüansa daha yardım edin


dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5 , avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )

kümelerin ayırt edici adlarını bir değişkenle nasıl değiştirebilirim, diyelim

colnames_dat <- colnamed(dat) [- "target" ]
dat1 <- sqldf( "select  colnames_dat , avg(target) as target_avg, count(target) as target_count from dat group by  colnames_dat " )

gerçek hayatta 500 hatta belki 1000 küme olacağı için her küme adını manuel olarak yazmak gerçekçi olmayacaktır ve çözüm alında çalışmaz

 
Michael Marchukajtes :
Bakalım ne ve nasıl ... antrenman yapar yapmaz abonelikten çıkacağım ...

Sonuç olarak, 13. versiyondan önce, örneğin başlangıcına daha yakın olan tahmin ediciler daha yüksek bir olasılıkla işlendi. Ve örneğin sonunda (hedef değişkene daha yakın) olanlar ve daha küçük olanı. Onlar. En anlamlı tahmin ediciler örneklemde önceden sola ve en az anlamlı olanlar sağa yerleştirilirse, o zaman iyi bir genelleme yeteneği elde ederiz. Ve bunun tersi olursa, o zaman kötü. Sorun şu ki, bunun için hangi tahmin edicilerin en önemli olduğunu önceden bilmek gerekiyordu, yani. önemlerine göre örneklemde öncelik sırasına koyunuz. Ancak bu durumda, tahmin edici seçim algoritmasının kendisi çok etkili olmadı.

14. versiyonda, tüm tahmin ediciler için işleme olasılığı yaklaşık olarak aynıdır. Ama bu başka bir sorun yaratır. Sonuçta, tahmin edici seçim algoritması, gradyan arama yöntemine göre çalışır ve her seferinde genelleme yeteneğini artırmaya doğru bir adım kayar. Aynı zamanda, diğer gradyan yöntemleri gibi, yerel bir ekstremumda "sıkışıp kalma" gibi sıfır olmayan bir riske sahiptir. 12. versiyondan önce, bu risk, numunedeki tahmin edicilerin önceden sıralanmasıyla azaltıldı.

Genel olarak algoritmanın hem birinci hem de ikinci versiyonunda sorunlar var ve bunları ortadan kaldırmak için bir şekilde analiz etmek gerekiyor. Örneğin, "dağ geçitleri" üzerinden "atlamak" için mevcut durumdan farklı yönlerde birkaç adım için algoritmaya bazı rastgele atlamalar eklemek.

 
mytarmailS :

> clusternames < - paste(colnames(dat)[-ncol(dat)], collapse= "," )
>
clusternames
[1] "cluster1,cluster2,cluster3,cluster4,cluster5"
> sql_query < - paste0("select ", clusternames, ", avg(target) as target_avg, count(target) as target_count from dat group by ", clusternames)
>
sql_query
[1] "select cluster1,cluster2,cluster3,cluster4,cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1,cluster2,cluster3,cluster4,cluster5"
> dat1 < - sqldf( sql_query )
>
dat1

 
Yuri Reshetov :

"dağ geçidi" üzerinden "zıplamak" için.

Bazen L-BFGS optimizasyonu nöronlara yerleştirilmiştir, vadilerden çıkmanıza izin verir. Örneğin nnet nöron paketi.

Orada çok fazla matematik var, nasıl çalıştığını bilmiyorum, ama sonuçta gradyanı aşağı inmek değil, gradyandan gradyanı aşağı (türevin türevi) var.

 
Sihirbaz_ :
1) İlkel bir örneği de doğru anladım (ağları veya başkalarını alacak hiçbir yer yoksa, o zaman "icat etmeye" başlar)))
2) Sadece 100 mona bulup kullanabildiğiniz zaman %70'i nasıl arayabilirsiniz (fiyat için değil elbette).

1) peki, evet, peki, evet, böyle bir günahları var)) Bunu "benim" yaklaşımının avantajlarıyla ilgili paragraflarda anlattım

2) Ters dönüşler için kombinasyonlar arayacağım, bunlar sadece mumun yönü veya rengi değil, aynı zamanda - tersine dönüş, tersine dönüş, geri dönüş değil

Başlangıçta ihtiyacım olan çok daha az gözlemim olacak, ancak her şey yolunda giderse, mutlu olacağım ve tetikleyicilerin% 40'ı, hatta% 70'i gerekli değil, çünkü böyle bir hedef riskle kar 1'den 5'e kadar olacak

Dr.Tüccar :

Çok teşekkür ederim yavaş yavaş verileri hazırlayacağım sonra küme,sonra örüntülere bakacağım,sonuçlar hakkında sizi bilgilendireceğim

 
Dr.Tüccar :

Bazen L-BFGS optimizasyonu nöronlara yerleştirilmiştir, vadilerden çıkmanıza izin verir. Örneğin nnet nöron paketi.

BFGS ve L-BFGS gibi türevleri, jPrediction'ın zaten çözdüğü sorunu çözmek, yani yerel ekstremumu bulmak için tasarlanmıştır. Onlar. bu algoritmalar, alternatif ekstremum aramak için vadilerin üzerinden "atlamanıza" değil, en yakın ekstrema yönünde "dağ geçitlerinden" "tırmanmanıza" izin verir.

Algoritmalar "atlayıcılar" gereklidir. Ve rastgele değil, potansiyel olarak umut verici bir yönde "zıplamaları" arzu edilir. Teorik olarak, bu tür "sıçrayışların" mutasyonlar yoluyla gerçekleştirildiği genetik yoluyla gerçekleştirilebilir. Ancak genetik algoritmalar çok yavaştır ve potansiyel torunların minimum zaman maliyetiyle bitler için test edilebileceği görevler için daha uygundur. Bir nöronu genelleme yeteneğini hesaplamak için eğitmek çok zaman alır çünkü buradaki genetik çok engelleyici olacaktır.

Tamam, daha iyi bir seçenek olmadığı için şu anda rastgele "atlamalar" içeren bir varyantı test ediyorum.

 

R ile ilgili başka bir kitap. Onu buraya ekleyeceğim, çünkü başka nerede yapabileceğin belli değil. Bırak olsun

S.E. Mastitsky, V.K. Shitikov

R İLE İSTATİSTİKSEL ANALİZ VE VERİ GÖRSELLEŞTİRME

Dosyalar:
 

Çubuklarla kayan bir pencere ile mytarmailS gibi kalıplar ararsanız, her kalıp, her bir çubukta değerlerin bulunabileceği aralık hakkında bilgi taşıyacaktır. Ne kadar çok kalıp olursa, her bir çubuk için aralık o kadar kısa olur.

Kabaca söylemek gerekirse, yeni veriler içeren belirli bir pencerenin önceden bulunan bir kalıba girmesi için, her örüntüde bulunan bu tür dikey sınırlayıcılara düşmesi gerekir.

1000 desen alır ve bulursanız, her biri için "kanal" genişliği küçük olacaktır. Ve yeni veriler her zaman eğitim verilerinden biraz farklı olduğu için bu kadar dar bir kanala girmek zor olacak, bu da hatalara yol açacaktır.

Occam'ın tıraşı bana rehberlik ederdi - desen sayısını azaltabilir ve bozulma olmadan aynı sonucu elde edebilirseniz, azaltmak daha iyidir.