Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 24
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Alexey, tahmin edicileri filtreleme işleviniz hakkında başka bir sorum var - bunun için döndürülen değerlerin aralığı ne olmalıdır? Bu uygunluk işlevini verilerimde rastgele girdilerle çalıştırdım (fitness_f(runif(predictor_number, min = 0, max = 1))), 0 ile 0,03 arasında sonuçlar gördüm. Ayrıca kodda bir hata durumunda (sıfır giriş) fonksiyonun da 0 döndüreceğini görüyorum. Burada bir yanlışlık var, GenSA sonucu minimize etmeye çalışıyor yani GenSA sonunda basitçe sıfıra ulaşacak. girin ve durdurun. Belki de gensanın ters yönde hareket etmesi için uygunluk fonksiyonunun sonucunun işaretini değiştirmek gerekir?
Optimizasyonun bir noktasında uygunluk fonksiyonu negatif sayılar döndürmeye başlarsa ve bunlar ne kadar düşükse o kadar iyidir - o zaman şimdi her şey yolunda demektir.
Alexey, tahmin edicileri filtreleme işleviniz hakkında başka bir sorum var - bunun için döndürülen değerlerin aralığı ne olmalıdır? Bu uygunluk işlevini verilerimde rastgele girdilerle çalıştırdım (fitness_f(runif(predictor_number, min = 0, max = 1))), 0 ile 0,03 arasında sonuçlar gördüm. Ayrıca kodda bir hata durumunda (sıfır giriş) fonksiyonun da 0 döndüreceğini görüyorum. Burada bir yanlışlık var, GenSA sonucu minimize etmeye çalışıyor yani GenSA sonunda basitçe ulaşacak. sıfır giriş sayısı ve dur. Belki de gensanın ters yönde hareket etmesi için uygunluk fonksiyonunun sonucunun işaretini değiştirmek gerekir?
Optimizasyonun bir noktasında uygunluk fonksiyonu negatif sayılar döndürmeye başlarsa ve bunlar ne kadar düşükse o kadar iyidir - o zaman şimdi her şey yolunda demektir.
Düzeltilmiş karşılıklı bilgilere ve tahmin edicilerin bir alt kümesi için stokastik aramaya dayalı algoritmanın blok diyagramı.
"b" noktası açıklama gerektiriyor. Optimum değişken sayısı, aşağıdaki formülle belirlenen koşullu bir değerdir:
Sezgi, girdi değişkenlerinin bağımsız olduğu varsayımı altında, en az n gözlem üzerinde yoğunlaşacak şekilde toplam benzersiz etkileşimli düzey sayısını elde etmek için değişkenin ortalama düzey sayısının istenen güce yükseltilmesi gerektiğidir. her biri, burada n 100 için alınır.
Çok sayıda düzeyi olan çok fazla girdi değişkenine sahip olamayız, çünkü girdi düzeylerine göre gözlemlerin sıklığının muhafazakar bir tahmini, çıktı değişkeninin girdiler kümesine bağımlılığı hakkında istatistiksel bir sonuç vermek için çok küçük olacaktır.
Aynı zamanda, giriş değişkenlerinin sayısının uzunluğu ile vektörün değerlerinin 1'e (değişken indeks dahil etme bayrağı) dönüştürüleceği eşiği ayarlayarak, olasılıksal bir hesaplama yaparız:
Özü, hesaplanan optimal girdi sayısının seçimi için olasılığın maksimum değerini belirlediğimiz gerçeğine dayanır. Ve bu mantık, binom dağılımı kullanılarak test edilir.
Örneğin, verilerimizi alalım: eğitim için kullanılan tüm setin yarısı.
Her biri 5 seviyeli 17.973 satır, 12 tahmincimiz var. Yukarıdaki formüllerin uygulanmasının bir sonucu olarak, optimal tahmin edici sayısının 3.226 olduğunu bulduk.
Tahmin ediciyi kümeye dahil etmek için eşik formülünü uygulayarak 0,731 elde ederiz.
Binom dağılımından elde edilecek en olası seçilen değişken sayısı nedir?
Maksimum değer 3 gözleme düşer. Kesin olmak gerekirse, 5 ^ 3.226 bize ortalama 100 gözlemi barındıracak 178 seviye verecektir.
Evet, negatif uygunluk değerine sahip bir tahmin edici alt kümesi vardı. Çok fazla tahminci vardı, birkaç bin, gensa'yı sadece 2 yinelemeyle sınırladım, her şey 8 saat sürdü :). Uygunluk fonksiyonunun sonucu %6'dır. Bu tahmin ediciler üzerinde nnet ile yapılan ön testte %45 hata aldım. Bu yeterli değil, danışmanın karlı olacağını düşünmüyorum. Daha iyi bir sonuç bulmak için limiti tekrar 10 iterasyona koydum, başlattım, bir gündür bekliyorum, umarım gensa bir gün biter. Genetiği (GA kitaplığı) denemek gerekir, birkaç iş parçacığı ile çalışması daha hızlı olacaktır (GA sonucu en aza indirir ve en üst düzeye çıkarmaz, yani GA için uygunluk fonksiyonunun sonucunun işaret değiştirmesi gerekir). Daha fazla deneyeceğim.
Temel bileşen modeli hakkında çeşitli makaleler okudum, şimdi sadece modeli R ^ 2 ölçmek ve tahmin edicileri seçerek en üst düzeye çıkarmak için eğitmekle kalmadım, aynı zamanda modeli veri ön testi için gerçekten test etmeye çalıştım. Biraz belirsiz gibi görünüyor. Bir yandan, ilişkili öngörücü çiftlerini (şapka kitaplığından findCorrelation işlevi) kaldırarak modelin R ^ 2'sinde bir artış elde ettim, ancak ortaya çıktığı gibi, modeli bir veri ön testi için test ederken R ^ 2 , bu düşer. Mucize olmadı, PCA modeli de yeniden eğitildi. Daha karmaşık bir tahmin değerlendirmesi denemek istiyorum - eğitim setini ikiye bölün - gerçek eğitim ve doğrulama için, PCA modelini eğitin, ardından hemen doğrulama setinde test edin, nihai sonuç olarak minimum R ^ 2'yi döndürün. Bir tahmin edici kümesini değerlendirmek ve bu değeri en üst düzeye çıkarmak için böyle bir işlevi kullanırsanız, teoride tam olarak hem kursiyerler hem de yeni veriler üzerinde iyi sonuçlar veren tahmin edici kümeleri olacaktır. Kontrol etmeliyiz.
Ayrıca, bu konudaki PCA hakkındaki ilk makaledeki metni de görünüşe göre yanlış anladım. Varyasyonun %95'ini tanımlamak için bileşen sayısının seçilmesi gerektiğini söyledi, hedef değişkeni tahmin etmenin doğruluğundan bahsettiklerini düşündüm. Ancak her şey böyle değil, ana bileşenler genellikle hedef değişkenler dikkate alınmadan oluşturulur ve% 95'lik doğruluk, aynı bileşenler kullanılarak ilk verilerin ne kadar doğru tanımlandığıdır. Tahmin doğruluğunun bununla hiçbir ilgisi yoktur.
Evet, negatif uygunluk değerine sahip bir tahmin edici alt kümesi vardı. Çok fazla tahminci vardı, birkaç bin, gensa'yı sadece 2 yinelemeyle sınırladım, her şey 8 saat sürdü :). Uygunluk fonksiyonunun sonucu %6'dır. Bu tahmin ediciler üzerinde nnet ile yapılan ön testte %45 hata aldım. Bu yeterli değil, danışmanın karlı olacağını düşünmüyorum. Daha iyi bir sonuç bulmak için limiti tekrar 10 iterasyona koydum, başlattım, bir gündür bekliyorum, umarım gensa bir gün biter. Genetiği (GA kitaplığı) denemek gerekir, birkaç iş parçacığı ile çalışması daha hızlı olacaktır (GA sonucu en aza indirir ve en üst düzeye çıkarmaz, yani GA için uygunluk fonksiyonunun sonucunun işaret değiştirmesi gerekir). Daha fazla deneyeceğim.
Temel bileşen modeli hakkında çeşitli makaleler okudum, şimdi sadece modeli R ^ 2 ölçmek ve tahmin edicileri seçerek en üst düzeye çıkarmak için eğitmekle kalmadım, aynı zamanda modeli veri ön testi için gerçekten test etmeye çalıştım. Biraz belirsiz gibi görünüyor. Bir yandan, ilişkili öngörücü çiftlerini (şapka kitaplığından findCorrelation işlevi) kaldırarak modelin R ^ 2'sinde bir artış elde ettim, ancak ortaya çıktığı gibi, modeli bir veri ön testi için test ederken R ^ 2 , bu düşer. Mucize olmadı, PCA modeli de yeniden eğitildi. Daha karmaşık bir tahmin değerlendirmesi denemek istiyorum - eğitim setini ikiye bölün - gerçek eğitim ve doğrulama için, PCA modelini eğitin, ardından hemen doğrulama setinde test edin, nihai sonuç olarak minimum R ^ 2'yi döndürün. Bir tahmin edici kümesini değerlendirmek ve bu değeri en üst düzeye çıkarmak için böyle bir işlevi kullanırsanız, teoride tam olarak hem kursiyerler hem de yeni veriler üzerinde iyi sonuçlar veren tahmin edici kümeleri olacaktır. Kontrol etmeliyiz.
Ayrıca, bu konudaki PCA hakkındaki ilk makaledeki metni de görünüşe göre yanlış anladım. Varyasyonun %95'ini tanımlamak için bileşen sayısının seçilmesi gerektiğini söyledi, hedef değişkeni tahmin etmenin doğruluğundan bahsettiklerini düşündüm. Ancak her şey böyle değil, ana bileşenler genellikle hedef değişkenler dikkate alınmadan oluşturulur ve% 95'lik doğruluk, aynı bileşenler kullanılarak ilk verilerin ne kadar doğru tanımlandığıdır. Tahmin doğruluğunun bununla hiçbir ilgisi yoktur.
Evet, anlamadıkları ortaya çıktı.
SAR bağımsız bir araç olarak kullanılabilir, ancak bu makalede ele alınmamıştır.
Bazı büyük tahmin edicilerden gelen gürültünün nasıl filtreleneceği tartışılmaktadır.
Benim düşünceme göre, bu aşağıdaki adımlarda yapılır:
1. Y-farkında. Bu, hedef değişkene bağlı olarak tahmin edicilerin ölçeklendirilmesidir.
2. PCA algoritması kullanılarak yordayıcı seti sıralanır ve varyansın %95'ini açıklayan kısım alınır.
2. Ya da öyle (kendim çözemedim), PCA algoritmasını kullanarak, orijinali hesaplanan katsayılarla (yükleme) çarparak elde edilen yeni bir tahmin seti oluşturulur. Bu takım sipariş edilir. Varyansın %95'ini açıklayan bu yeni vektörlerden çok sayıda alıyoruz.
not.
Y-aware'in filtreleme gürültü tahmin edicileri alanında yeni bir gıcırtı olduğuna dair yayınlar vardı.
başarı
2. PCA algoritması kullanılarak yordayıcı seti sıralanır ve varyansın %95'ini açıklayan kısım alınır.
Bu henüz anlamadım. (Şimdi başka bir yaklaşımla karıştırmamak için sadece y-farkındalık yaklaşımı hakkında yazacağım). Makalenin kendisi burada: http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/
" princ <- prcomp(dmTrain, center = YANLIŞ, ölçek. = YANLIŞ) " kodundan sonra şöyle bir durum vardır: veri okunur, Y'de ölçeklenir, PC bileşenleri oluşturulur. Bu işlev, tahmin ediciler olduğu için birçoğu oluşturulduğu için bileşenlerin sayısını sınırlamaz. İlk adım, bunların yalnızca bir kısmını seçmektir (varyasyonların %95'ini tanımlamaya yetecek kadar öneriniz). Makalenin kendisinde yazar, bileşenler için sdev grafiğine (bazı belirtilmemiş sapmalar) baktı ve grafikte öne çıktığı için 2 veya 5'in kendisi için yeterli olacağını söyledi. Bir şekilde öne çıkmıyorum, grafik yavaş yavaş düşüyor.
Bir sdev tablosu var, içindeki giriş sayısı bileşen sayısına eşittir. Bundan ne kadar bir bileşenin alınması gerektiğini hesaplamak mümkün mü? Tüm sayıların toplamı mutlaka 1 ile sınırlı değildir, 6'nın toplamını ve muhtemelen daha fazlasını gördüm.
Bu henüz anlamadım. (Şimdi başka bir yaklaşımla karıştırmamak için sadece y-farkındalık yaklaşımı hakkında yazacağım). Makalenin kendisi burada: http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/
" princ <- prcomp(dmTrain, center = YANLIŞ, ölçek. = YANLIŞ) " kodundan sonra şöyle bir durum vardır: veri okunur, Y'de ölçeklenir, PC bileşenleri oluşturulur. Tahmin ediciler olduğu gibi birçoğu inşa edildiğinden, bu işlev bileşenlerin sayısını sınırlamaz. İlk adım, bunların yalnızca bir kısmını seçmektir (varyasyonların %95'ini tanımlamaya yetecek kadar öneriniz). Makalenin kendisinde yazar, bileşenler için sdev grafiğine (bazı belirtilmemiş sapmalar) baktı ve grafikte öne çıktığı için 2 veya 5'in kendisi için yeterli olacağını söyledi. Bir şekilde öne çıkmıyorum, grafik yavaş yavaş düşüyor.
Bir sdev tablosu var, içindeki giriş sayısı bileşen sayısına eşittir. Bileşenin bundan ne kadar alınması gerektiğini hesaplamak mümkün mü? Tüm sayıların toplamı mutlaka 1 ile sınırlı değildir, 6'nın toplamını ve muhtemelen daha fazlasını gördüm.
Çıngırak çalıştırıyorum ve üç tablo alıyorum:
İkincisi için, 1. sütun, sadece PC1 alırsak 0.9761 değişkenliğinin (Kümülatif Oran) açıklanacağını, İKİ bileşen alırsak - PC1 ve PC2, o zaman 0.99996 açıklanacağını söylüyor, vb.
(tablo ekleyemiyorum)
Bileşenlerin önemi:
PC1 PC2 PC3 PC4 PC5
Standart sapma 2.2092 0.34555 0.01057 0.008382 0.004236
Varyans Oranı 0.9761 0.02388 0.00002 0.000010 0.000000
Kümülatif Oran 0.9761 0.99996 0.99998 1.000000 1.000000
Uzun zamandır bu tabloyu arıyordum sonunda özette buldum. En bariz yer aslında :) , gösterdiğin için teşekkürler. Bu, özette bir şey olduğunda, ancak nesnenin niteliklerinde olmadığında geçerlidir.
summary(princ)$importance[ 3 ,]
Bu makalenin, Y-aware için bazı özel çözümlerle birlikte, özellikle bileşen seçme konusuna ayrılmış bir devamı olduğu ortaya çıktı. Henüz denemedim.
http://www.win-vector.com/blog/2016/05/pcr_part3_pickk/
Uzun zamandır bu tabloyu arıyordum sonunda özette buldum. En bariz yer aslında :) , gösterdiğin için teşekkürler. Bu, özette bir şey olduğunda, ancak nesnenin niteliklerinde olmadığında geçerlidir.
Bu makalenin, Y-aware için bazı özel çözümlerle birlikte, özellikle bileşen seçme konusuna ayrılmış bir devamı olduğu ortaya çıktı. Henüz denemedim.
http://www.win-vector.com/blog/2016/05/pcr_part3_pickk/
Evet, negatif uygunluk değerine sahip bir tahmin edici alt kümesi vardı. Çok fazla tahminci vardı, birkaç bin, gensa'yı sadece 2 yinelemeyle sınırladım, her şey 8 saat sürdü :). Uygunluk fonksiyonunun sonucu %6'dır. Bu tahmin ediciler üzerinde nnet ile yapılan ön testte %45 hata aldım. Bu yeterli değil, danışmanın karlı olacağını düşünmüyorum. Daha iyi bir sonuç bulmak için limiti tekrar 10 iterasyona koydum, başlattım, bir gündür bekliyorum, umarım gensa bir gün biter. Genetiği (GA kitaplığı) denemek gerekir, birkaç iş parçacığı ile çalışması daha hızlı olacaktır (GA sonucu en aza indirir ve en üst düzeye çıkarmaz, yani GA için uygunluk fonksiyonunun sonucunun işaret değiştirmesi gerekir). Daha fazla deneyeceğim.
Temel bileşen modeli hakkında çeşitli makaleler okudum, şimdi sadece modeli R ^ 2 ölçmek ve tahmin edicileri seçerek en üst düzeye çıkarmak için eğitmekle kalmadım, aynı zamanda modeli veri ön testi için gerçekten test etmeye çalıştım. Biraz belirsiz gibi görünüyor. Bir yandan, ilişkili öngörücü çiftlerini (şapka kitaplığından findCorrelation işlevi) kaldırarak modelin R ^ 2'sinde bir artış elde ettim, ancak ortaya çıktığı gibi, modeli bir veri ön testi için test ederken R ^ 2 , bu düşer. Mucize olmadı, PCA modeli de yeniden eğitildi. Daha karmaşık bir tahmin değerlendirmesi denemek istiyorum - eğitim setini ikiye bölün - gerçek eğitim ve doğrulama için, PCA modelini eğitin, ardından hemen doğrulama setinde test edin, nihai sonuç olarak minimum R ^ 2'yi döndürün. Bir tahmin edici kümesini değerlendirmek ve bu değeri en üst düzeye çıkarmak için böyle bir işlevi kullanırsanız, teoride tam olarak hem kursiyerler hem de yeni veriler üzerinde iyi sonuçlar veren tahmin edici kümeleri olacaktır. Kontrol etmeliyiz.
Ayrıca, bu konudaki PCA hakkındaki ilk makaledeki metni de görünüşe göre yanlış anladım. Varyasyonun %95'ini tanımlamak için bileşen sayısının seçilmesi gerektiğini söyledi, hedef değişkeni tahmin etmenin doğruluğundan bahsettiklerini düşündüm. Ancak her şey böyle değil, ana bileşenler genellikle hedef değişkenler dikkate alınmadan oluşturulur ve% 95'lik doğruluk, aynı bileşenler kullanılarak ilk verilerin ne kadar doğru tanımlandığıdır. Tahmin doğruluğunun bununla hiçbir ilgisi yoktur.