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

 
Dr. tüccar :

Ama neden lineer model y=ax+b formülüne göre ekstrapolasyon yaptığına göre, bunu mükemmel bir şekilde yapıyor ve orman bunu bilinen en yakın komşu tarafından yaptığına göre, o zaman hiçbir şey yapamayacağını düşünüyorsunuz? Bu algoritmaların her ikisinin de var olma hakkı vardır.


Hiçbir şeyi saymıyorum, size bir örnek ve bir sürü makale gösterdim. LR'yi mükemmel ya da değil ne fark eder? Mesele şu ki, Rusya Federasyonu, hiçbir zaman ve hiçbir koşulda yapıcı bir şekilde TÜMÜNÜ tahmin edemiyor ve karşılaştırma ve netlik için LR veriliyor.

Ben de bunu soruyorum ve neden böyle olmadığını düşündüğünüze dair NET örnekler istedim :)

 
Alyoşa :



Peki ya "makaleler" ??? Benimle dalga mı geçiyorsun? Newton gibi, sadece ML'de olan ve çok parlak bir şekilde berbat olan Minsky'ye bir örnek verdim ve siz R'de habré veya komut dosyalarında doldurmaktan bahsediyorsunuz (okuyun: algoritmanın kendisi birkaç parametre toplamadı)


Ormanın kendisi C ++ ile toplanmış olsaydı, o zaman MLP'de bir "ekstrapolasyon" yapmayı tahmin ederlerdi ve R'de ... Tanrı yardım eder ...


Herhangi bir Minsky ve Pozharsky tanımıyorum ve grafiklerde ne çizdiğinizi anlamıyorum) 0'dan 10'a veya 100'e kadar hedeflerle bazı setlere RF öğretmeniz ve ardından içinde bir varyant kaydırmanız gerekiyor. cevap açıkça 100'den fazla olmalı ve RF sadece 100 vermelidir

İşte yazarın yazısı:

 # set up functionality for modelling down the track
library (xgboost) # extreme gradient boosting
library (nnet) # neural network
library (ranger) # for random forests
library (rpart) # for demo single tree
library (rpart.plot)
library (viridis) # for palette of colours
library (grid) # for annotations

# sample data - training set
set.seed( 134 ) # for reproducibility
x <- 1 : 100 + rnorm( 100 )
y <- 3 + 0.3 * x + rnorm( 100 )

# extrapolation / test set, has historical data plus some more extreme values
extrap <- data.frame(x = c(x, 1 : 5 * 10 + 100 ))

mod_lm <- lm(y ~ x)
mod_nn <- nnet(y ~ x, size = 8 , linout = TRUE )

# XG boost.  This is a bit more complicated as we need to know how many rounds
# of trees to use.  Best to use cross-validation to estimate this .  Note - 
# I use a maximum depth of 2 for the trees which I identified by trial and error
# with different values of max.depth and cross-validation, not shown
xg_params <- list(objective = "reg:linear" , max.depth = 2 )
mod_cv <- xgb.cv(label = y, params = xg_params, data = as .matrix(x), nrounds = 40 , nfold = 10 ) # choose nrounds that gives best value of root mean square error on the training set
best_nrounds <- which(mod_cv$test.rmse.mean == min(mod_cv$test.rmse.mean))
mod_xg <- xgboost(label = y, params = xg_params, data = as .matrix(x), nrounds = best_nrounds)

mod_rf <- ranger(y ~ x)

p <- function(title) {
    plot(x, y, xlim = c( 0 , 150 ), ylim = c( 0 , 50 ), pch = 19 , cex = 0.6 ,
        main = title, xlab = "" , ylab = "" , font.main = 1 )
    grid()
}

predshape <- 1

par(mfrow = c( 2 , 2 ), bty = "l" , mar = c( 7 , 4 , 4 , 2 ) + 0.1 )

p( "Linear regression" )
points(extrap$x, predict(mod_lm, newdata = extrap), col = "red" , pch = predshape)

p( "Neural network" )
points(extrap$x, predict(mod_nn, newdata = extrap), col = "blue" , pch = predshape)

p( "Extreme gradient boosting" )
points(extrap$x, predict(mod_xg, newdata = as .matrix(extrap)), col = "darkgreen" , pch = predshape)

p( "Random forest" )
fc_rf <- predict(mod_rf, data = extrap)
points(extrap$x, fc_rf$predictions, col = "plum3" , pch = predshape)

grid.text( 0.5 , 0.54 , gp = gpar(col = "steelblue" ),
          label = "Tree-based learning methods (like xgboost and random forests)\nhave a particular challenge with out-of-sample extrapolation." )
grid.text( 0.5 , 0.04 , gp = gpar(col = "steelblue" ),
          label = "In all the above plots, the black points are the original training data,\nand coloured circles are predictions." )

İyi anlamıyorum, sadece 100 ila 150 RF'nin diğer modeller gibi yeterli bir sonuç öngörmesi gerektiğini anlıyorum, ancak bu olmadı


 
Alyoşa :

Yapmamalı. Knn (yarı optimal sınıflandırıcı) gibi ancak daha kaba olan en yakın noktaların yerel bir enterpolasyonunu üretecektir. Sadece RF ağaçlarındaki üsleri nasıl döndüreceğinizi bilmiyorsunuz ve onu "küpler" olarak alıyorsunuz.


Peki bir önceki mesajda ekranlı bir kod ekledim orada "yanlış" ne var?

 
Alyoşa :

Orman algoritmasında ağaçların noktaları tek bir özniteliğe göre ortogonal olarak böldüğü gerçeği, temeli döndürürseniz, MLP'deki ile aynı olacaktır, bunun için orman koduna girip kendi ormanınızı düzeltmeniz veya yazmanız gerekir. )))


pardon orası zaten öyle olmayan bir tür orman, klasik versiyonundan bahsediyorum

Orada ne olduğunu, nereye bir şey yazacağını ustalaşmaya çalışıyorum ..

sonunda, klasik RF'nin tahmin edemediği şey

 
Alyoşa :

ML'de "klasik" yoktur, çalışan ve sorunu çözen bir şey vardır. Diğer insanların algoritmalarına tüm çeşitlilikleriyle hakim olmak, kod tabanındaki ve piyasadaki tüm göstergelerin kodunu araştırmak kadar anlamlıdır, ki bunu kendiniz anlıyorsunuz, makul değil...

ML'de, "parmaklarınızdan sıçraması" için kendi başınıza, manuel olarak ustalaşmanız gereken çok fazla temel buluşsal yöntem yoktur, böylece geceleri akşamdan kalma bir uykudan uyanırsınız ve hemen C++ gradyan artırmayı doldurursunuz. yarım saat içinde hafıza (şaka), bu göründüğü kadar zor değil ve o zaman Habré ile ilgili makaleler düzeyinde 100.500 algoritma varyasyonu oluşturabilirsiniz.


ohoho...

Dr. Tüccar iki kez tekrar etti, ben de size tekrar edeceğim, üçüncüsü, Tanrı derler ve saf olmayan üç kez duymak isterler, bu bir anlam ifade eder, mistik bir bağlamda...

İŞARETLER UZAYINDAKİ yeni noktalar, fiziksel zamanla ilgili olarak, EĞİTİM NOKTASI BULUTUNUN KESİNLİKLE DIŞINDA DEĞİL, zaman zamandır, özelliklerde Özellikleriniz, peki, fiziksel zaman, örneğin momentum veya spektrum ile doğrusal olarak bağlantılı değildir. "Özetlenen" noktalar, özellik alanınızın içinde ve dışında herhangi bir yerde olacaktır.


ama bunun hakkında konuşmadım, sadece ağaçların yapısının öyle olduğu gerçeğinden bahsettim, eğer hedefin tüm eğitim değerleri üzerinde dallanırlarsa, o zaman model kesinlikle dallanmış olanı verecektir. içine ve herhangi bir yeni değer veremeyecektir.. En azından makalede bir örnekle yazılan bu. Peki, kendi örneklerimi yapacağım ve sonra ne yaptığımı göstereceğim :) Hedef, eğitim sırasında aşırı bir 100 değerine sahipse, çıktıda 100'den fazla veremez.. çünkü tüm değerler​ ​100'ün üzerindeki sayfa 100'e düşecektir, fiziksel olarak 100'den büyük değerlere sahip sayfa yoktur.

 
Maksim Dmitrievski :

Hedef, eğitim sırasında aşırı bir 100 değerine sahipse, çıktıda 100'den fazla üretemez.. çünkü 100'ün üzerindeki tüm değerler, sayfa 100'e düşecektir.

Normizasyon sadece icat edilmemiştir.
 
Yuri Asaulenko :
Normizasyon sadece icat edilmemiştir.

Bu anlaşılabilir bir durum, asıl soru ağaçların işleyişi hakkında. Nasıl normalleştirirseniz yapın, ağaç yeni veriler üzerinde herhangi bir aykırı değer belirlemez, ancak bildiği en uç değeri verir. Bu nedenle, genellikle ağaçların verilerini normalleştirmek gerekli değildir.

 
Maksim Dmitrievski :

Bu anlaşılabilir bir durum, asıl soru ağaçların işleyişi hakkında. Nasıl normalleştirirseniz yapın, ağaç yeni veriler üzerinde herhangi bir aykırı değer belirlemez, ancak bildiği en uç değeri verir. Bu nedenle, genellikle ağaçların verilerini normalleştirmek gerekli değildir.

Rusya Federasyonu'nda henüz kendime ihtiyaç görmüyorum, ancak MLP için sadece normalleştirmekle kalmıyorum, aynı zamanda giriş sinyalini sigmoidden geçiriyorum, yani. girişlerin dinamik aralığı sınırlıdır ve aşımlar önemli değildir.
 
Maksim Dmitrievski :

Bu anlaşılabilir bir durum, asıl soru ağaçların işleyişi hakkında. Nasıl normalleştirirseniz yapın, ağaç yeni veriler üzerinde herhangi bir aykırı değer belirlemez, ancak bildiği en uç değeri verir. Bu nedenle, genellikle ağaçların verilerini normalleştirmek gerekli değildir.

Bu durumda çözümün basit olduğunu düşünüyorum, geri bildirimde bulunun.

Samimi olarak.

 
Andrey Kisselev :

Bu durumda çözümün basit olduğunu düşünüyorum, geri bildirimde bulunun.

Samimi olarak.


Var :) Benim için tahminde bulunamaması veya tahminde bulunamaması hiç önemli değil .. model önceden bilinen bir kümeye göre tahmin yapacak .. sadece genel eğitim için

bence hala bazı hatalar var, lib'de model hataları alma konusunda, seçim ne kadar küçükse, hata o kadar küçük, xs rpicola'yı anlayana kadar