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

 
Yuri, vmr modelini eğitebildim ama bununla ilgili yeni verileri tahmin edemiyorum, lütfen bana neyin yanlış olduğunu söyle? Model yükle menüsünü seçiyorum, oradaki ekten train.vmr dosyasını seçiyorum ve ardından Modeli kullan'a tıklıyorum. Logda "Veri gir ve "Tamam" yazısını görüyorum. Ama hepsi bu, hangi verileri girersem gireyim, hala gri bir etkin olmayan Ok düğmesi görüyorum, yanıt alamıyorum. Train.csv ve test .csv dosyaları da saldırı altında, bunlar daha önce yayınladığınız dosyalar.
Dosyalar:
train.zip  38 kb
 
Dr.Tüccar :
Yuri, vmr modelini eğitebildim ama bununla ilgili yeni verileri tahmin edemiyorum, lütfen bana neyin yanlış olduğunu söyle? Model yükle menüsünü seçiyorum, oradaki ekten train.vmr dosyasını seçiyorum ve ardından Modeli kullan'a tıklıyorum. Logda "Veri gir ve "Tamam" yazısını görüyorum. Ama hepsi bu, hangi verileri girersem gireyim, hala gri bir etkin olmayan Ok düğmesi görüyorum, yanıt alamıyorum. Train.csv ve test .csv dosyaları da saldırı altında, bunlar daha önce yayınladığınız dosyalar.

Muhtemelen sayısal olmayan bir şey girdiniz mi? Bu, istisna işleyiciyi tetikler ve Tamam düğmesini devre dışı bırakır. Bu durumda, jPrediction'ı yeniden başlatmanız gerekir.

Yakın gelecekte bu hatayla ilgileneceğim, böylece en azından kullanıcının sayısal olmayan verileri girdiğine dair bazı uyarı mesajları verilecektir.

P/S Zaten düzeltildi.

Örneğin sayı yerine "z" karakterini girelim. Sonuç olarak, bir hata mesajı alıyoruz:

Tamam düğmesini şimdi etkinleştirmek için Dosya>Model kullan menü öğesini seçin:


Düzeltilmiş sürümü web siteme yükledim.

 

Anlaşıldı, hata yanlış veri biçimindeydi. Verileri pdf olarak biçimlendirdim - açıklamalı ikinci bir satır ekledim, indeksli ilk sütun ve tahmin ediciden sütunun adını sildim. Her şey çalıştı. Model, hem orijinal veriler hem de biçimlendirilmiş veriler üzerinde her iki durumda da eğitilir. Ancak tahmin, yalnızca öğrenme için özel olarak biçimlendirilmiş veriler sağlandığında çalışır.

Ancak ne yazık ki modeliniz testi kendi verileriniz üzerinde geçemedi. train.csv ve test.csv dosyalarını daha önce yayınladınız ve iyi tahmin performansınız vardı. Kontrol ettim, tahmin hatası %50, hiç iyi gösterge yok.

Test adımları:

1) train.csv dosyasını yukarıda açıklandığı gibi biçimlendirin. Ardından, dosyayı fiziksel olarak ikiye bölün - train_part1.csv ve train_part2.csv. İkinci dosya, train.csv'deki son 20 satırı içerir. İlk dosya - son 20 satır dışındaki her şey, böylece iki dosyadaki veriler kesişmez.

2) modeli train_part1.csv üzerinde eğitin, tahmin moduna geçin. Tahmin için train_part2.csv'deki satırları tek tek gönderin. 20 vakadan sadece 9'unda doğru cevabı aldım, bir mucize olmadı.

Modelinizin kendisi eğitim ve doğrulama için orijinal eğitim dosyasını iki bölüme ayırıyorsa, neden örnek dışı bir test yapıyor ve sonunda 100'lük bir tahmin doğruluğu alıyorsa anlamıyorum? Ve eğer eğitim dosyası fiziksel olarak bölünürse ve numune dışı testi manuel olarak yapılırsa, tahmin yazı tura atmaktan daha iyi değil mi? Tahmin için eğitim örneğinden herhangi bir örnek verilirse, tahmin doğru çalışıyor, yani tahmin fonksiyonu düzenli görünüyor. Bunların hepsi çok kötü ve yanlış, kodda bazı ciddi hatalarınız var.

Dosyalar:
vmr_test.zip  44 kb
 
San Sanych Fomenko :

Sadece R ile çok yüzeysel bir tanıdık, "dırdır" hakkında konuşmamıza izin verecektir.

Tabii ki, R koyduk ve karakter dizisi yorumlayıcısını görüyoruz. Daha derine inerseniz bayt kodunu görebilirsiniz, ancak bu, yorumlayıcının verimlilik açısından herhangi bir sorununu çözmez. Tartışacak bir şey bile yok - bir dırdır.

Ancak R paketlerini biraz araştırırsanız, R kodunda gördüğümüzün başka bir koda itiraz olduğu çabucak anlaşılacaktır. Ve anlamaya başlarsanız, hesaplama açısından yoğun algoritmalar için R'nin her zaman mümkün olan en yüksek verimlilik ilkesine göre seçilen üçüncü taraf paketleri kullandığı ortaya çıkıyor. Genellikle bunlar C veya Fortran kütüphaneleridir.

Veya örneğin matris işlemleri. R'nin "skaler" kavramına sahip olmadığı ve her şeyin vektörlerle başladığı ve matris aritmetiğinin R için tamamen doğal olduğu göz önüne alındığında, R'de yazılmayan uygun kitaplığı kullanma sorunu temeldir. Intel Math Kernel Library tarafından kullanılır.

Buna ek olarak, hesaplamaların sadece kendi bilgisayarının tüm çekirdeklerine değil, komşu bilgisayarlara da paralelleştirilmesi R'de yaygın bir işlemdir.

Öyleyse, "nag" nedir ve ne değildir büyük bir soru.

not.

R'ye herhangi bir şey taşımanıza gerek yok, sadece materyali incelemeniz gerekiyor. R, ihtiyacınız olan her şeye ve bundan çok daha fazlasına sahiptir.

SanSanych'i destekliyorum. Herhangi bir fikriniz için ihtiyacınız olan her şey zaten R /'de

Reshetov'un kibirli sözleri şaşırtıcı değil. Bu böyle bir pozisyon.

ikna etmene gerek yok. Anlamsız.

 
Dr.Tüccar :

Modelinizin kendisi eğitim ve doğrulama için orijinal eğitim dosyasını iki bölüme ayırıyorsa, neden örnek dışı bir test yapıyor ve sonunda 100'lük bir tahmin doğruluğu alıyorsa anlamıyorum? Ve eğer eğitim dosyası fiziksel olarak bölünürse ve numune dışı testi manuel olarak yapılırsa, tahmin yazı tura atmaktan daha iyi değil mi? Tahmin için eğitim örneğinden herhangi bir örnek verilirse, tahmin doğru çalışıyor, yani tahmin fonksiyonu düzenli görünüyor. Bunların hepsi çok kötü ve yanlış, kodda bazı ciddi hatalarınız var.

Haklısın, kodda bir hata var. Düzelteceğim.
 
Vladimir Perervenko :

SanSanych'i destekliyorum. Herhangi bir fikriniz için ihtiyacınız olan her şey zaten R /'de

Burada tartışacağım, eğer istersen, dırdır hız anlamındaydı ve kesinlikle Yuri'ye katılıyorum ...

Evet, büyük olasılıkla R için neredeyse her görev için hazır bir çözüm bulacaksınız, ancak bazen aptalca hızda dinleniyorsunuz

Korelasyon fonksiyonu aracılığıyla birçok parametrede çok zor bir arama yaptığımı hatırlıyorum, ilk başta R'de yerleşik olan standart işlevi kullandım (bu arada, C++ ile yazılmış), ancak aşırı yüklenmiş olması nedeniyle farklı yöntemler, döngümün bir dairesinin hesaplanması yaklaşık 3.9 dakika veya 230 saniye sürdü, bu sefer kabul edilemezdi, ikinci adım, gereksiz tüm olmadan R'de kendi fonksiyonumu yazmaktı, fonksiyonum zaten 30 hızında çalıştı. saniye, ama bu da bana hiç yakışmadı, R benim ilk ve tek dilim olduğu için bir arkadaşımdan benim için bir eğlence yazmasını istedim. C++'da korelasyon ve sonra onu R içine yerleştirdim, işlevin süresi 0.33 saniyeydi .... o zaman karşılaştıralım

nominal eğlence. R - 230 sn'de korelasyonlar

kendi kendine yazılmış eğlenceli. R - 30 sn'de çekirdek

funkt. c++ ile yazılmış - 0.33 sn

Yani evet, Yuri haklı, R, kastettiği bağlamda bir dırdır, ancak bu sorun çözülüyor, ancak kolaylık ve kod yazma hızı açısından, R'nin tüm dillerden uzaklaştığını düşünüyorum, çünkü siz Kendin bir şey yazmana gerek yok, her şey zaten orada sevdiğim şey için hazır...

 
mytarmailS :

Burada tartışacağım, eğer istersen, dırdır hız anlamındaydı ve kesinlikle Yuri'ye katılıyorum ...

Evet, büyük olasılıkla R için hemen hemen her görev için hazır bir çözüm bulacaksınız, ancak bazen aptalca bir hızla karşılaşıyorsunuz.

Korelasyon fonksiyonu aracılığıyla birçok parametrede çok zor bir arama yaptığımı hatırlıyorum, ilk başta R'de yerleşik olan standart işlevi kullandım (bu arada, C++ ile yazılmış), ancak aşırı yüklenmiş olması nedeniyle farklı yöntemler, döngümün bir dairesinin hesaplanması yaklaşık 3.9 dakika veya 230 saniye sürdü, bu sefer kabul edilemezdi, ikinci adım, gereksiz tüm olmadan R'de kendi fonksiyonumu yazmaktı, fonksiyonum zaten 30 hızında çalıştı. saniye, ama bu da bana hiç yakışmadı, R benim ilk ve tek dilim olduğu için bir arkadaşımdan benim için bir eğlence yazmasını istedim. C++'da korelasyon ve sonra onu R içine yerleştirdim, işlevin süresi 0.33 saniyeydi .... o zaman karşılaştıralım

nominal eğlence. R - 230 sn'de korelasyonlar

kendi kendine yazılmış eğlenceli. R - 30 sn'de çekirdek

funkt. c++ ile yazılmış - 0.33 sn

Yani evet, Yuri haklı, R, kastettiği bağlamda bir dırdır, ancak bu sorun çözülüyor, ancak kolaylık ve kod yazma hızı açısından, R'nin tüm dillerden uzaklaştığını düşünüyorum, çünkü siz Kendiniz bir şey yazmanıza gerek yok, her şey zaten orada sevdiğim şey için hazır...

Peki, R'nin bununla ne ilgisi var?

Tekrar ediyorum, R, hız dahil, fikirlerinizi gerçekleştirmek için ihtiyacınız olan her şeye sahiptir.

Başka bir şey, herkesin ve herkesin onları nasıl kullanacağını bilmemesidir.

Ama bu bir dil sorunu değil.

Bu arada, işlevleri Cpp'ye yerleştirmenin rahatlığı ve kolaylığı tek kelimeyle harika.

İyi şanlar

 
mytarmailS :

Burada tartışacağım, eğer istersen, dırdır hız anlamındaydı ve kesinlikle Yuri'ye katılıyorum ...

Evet, büyük olasılıkla R için neredeyse her görev için hazır bir çözüm bulacaksınız, ancak bazen aptalca hızda dinleniyorsunuz

Korelasyon fonksiyonu aracılığıyla birçok parametrede çok zor bir arama yaptığımı hatırlıyorum, ilk başta R'de yerleşik olan standart işlevi kullandım (bu arada, C++ ile yazılmış), ancak aşırı yüklenmiş olması nedeniyle farklı yöntemler, döngümün bir dairesinin hesaplanması yaklaşık 3.9 dakika veya 230 saniye sürdü, bu sefer kabul edilemezdi, ikinci adım, gereksiz tüm olmadan R'de kendi fonksiyonumu yazmaktı, fonksiyonum zaten 30 hızında çalıştı. saniye, ama bu da bana hiç yakışmadı, R benim ilk ve tek dilim olduğu için bir arkadaşımdan benim için bir eğlence yazmasını istedim. C++'da korelasyon ve sonra onu R içine yerleştirdim, işlevin süresi 0.33 saniyeydi .... o zaman karşılaştıralım

nominal eğlence. R - 230 sn'de korelasyonlar

kendi kendine yazılmış eğlenceli. R - 30 sn'de çekirdek

funkt. c++ ile yazılmış - 0.33 sn

Yani evet, Yuri haklı, R, kastettiği bağlamda bir dırdır, ancak bu sorun çözülüyor, ancak kolaylık ve kod yazma hızı açısından, R'nin tüm dillerden uzaklaştığını düşünüyorum, çünkü siz Kendin bir şey yazmana gerek yok, her şey zaten orada sevdiğim şey için hazır...

Genel soruları belirli bir örnekle değiştirmeyeceğiz.

Genel olarak R programlama SİSTEMİ'nde kodun verimliliğinden bahsediyorsak, verimliliğin temellerini yazdım. Çoğu programlama sisteminin aksine, R'deki hesaplama açısından yoğun algoritmalar dolaylı olarak kullanılır ve genellikle optimizasyon veya GA gibi doğrudan kullanma olasılığı olmasına rağmen, bazı anlamlı işlevler içinde programlama alanındaki en etkili olanlar kullanılır.

Bu tür verimliliğin en çarpıcı örneği, hesaplama açısından en yoğun işlemler arasında yer alan matris işlemleridir. Matrisler üzerindeki işlem sadece basit bir kod satırı olduğundan programcı kullanılan kitaplığı hiç bilmeyebilir.

Ayrıca, verimlilikle ilgili yazımda yazmadığım şey, hakkında yazdıklarınız. Bu, bir cpp kod parçası yazmak için bir fırsattır, ancak R'nin yapısının, bu eklemenin ana koda organik bir ekleme olacağı şekilde olduğu vurgulanmalıdır. Ve verdiğiniz örnek R için çok tipik.

 
tamam, R verimliliği konusunu kapatmayı öneriyorum, aksi takdirde bariz şeylerin tekrarları zaten başlayacak ve anlamı "tereyağı, gökyüzü mavi ve çim yeşil"
 

Merhaba!

Tekrarlayan sinir ağına sahip bir paket buldum https://cran.r-project.org/web/packages/rnn/rnn.pdf , verilerimi kontrol etmek ilginç hale geldi (belki başka biri kontrol etmek isteyecektir;) ) ama daha önce hiç karşılaşmadığım bir şeyle karşılaştım, çünkü ağ tekrarlayıcı olduğundan ve veriler 3 boyutlu dizi şeklinde belirli bir şekilde beslendiği için bir örnek olmasına rağmen hala nasıl olduğunu anlayamıyorum. işe yarıyor

"X" değişkenindeki kodun 2 değil 100 tahmincim varsa nasıl görünmesi gerektiği, işte örnekten bir parça:

 # create training numbers
X1 = sample( 0 : 127 , 7000 , replace= TRUE )
X2 = sample( 0 : 127 , 7000 , replace= TRUE )
# create training response numbers
Y <- X1 + X2
# convert to binary
X1 <- int2bin(X1)
X2 <- int2bin(X2)
Y <- int2bin(Y)
# Create 3 d array: dim 1 : samples; dim 2 : time; dim 3 : variables.
X <- array( c(X1,X2), dim=c(dim(X1), 2 ) )