Niceliksel modellemede model performansı


14

Kuantil regresyon kullanıyorum (örneğin R aracılığıyla gbmveya quantregR ile) - medyana odaklanmak yerine üst kuantile (örneğin 75.) odaklanmak. Tahminli bir modelleme geçmişinden geldiğimde, modelin bir test setine ne kadar iyi uyduğunu ölçmek ve bunu bir işletme kullanıcısına açıklayabilmek istiyorum. Benim sorum nasıl? Sürekli hedefli tipik bir ortamda aşağıdakileri yapabilirim:

  • Genel RMSE'yi hesaplayın
  • Veri kümesini tahmin edilen değere göre kesin ve her bir ondalık değerde gerçek değeri ortalama ile karşılaştırın.
  • Vb.

Bu durumda, tahmini karşılaştırmak için gerçek bir değer (en azından sanmıyorum) olmadığı yerde ne yapılabilir?

İşte bir örnek kod:

install.packages("quantreg")
library(quantreg)

install.packages("gbm")
library(gbm)

data("barro")

trainIndx<-sample(1:nrow(barro),size=round(nrow(barro)*0.7),replace=FALSE)
train<-barro[trainIndx,]
valid<-barro[-trainIndx,]

modGBM<-gbm(y.net~., # formula
            data=train, # dataset
            distribution=list(name="quantile",alpha=0.75), # see the help for other choices
            n.trees=5000, # number of trees
            shrinkage=0.005, # shrinkage or learning rate,
            # 0.001 to 0.1 usually work
            interaction.depth=5, # 1: additive model, 2: two-way interactions, etc.
            bag.fraction = 0.5, # subsampling fraction, 0.5 is probably best
            train.fraction = 0.5, # fraction of data for training,
            # first train.fraction*N used for training
            n.minobsinnode = 10, # minimum total weight needed in each node
            cv.folds = 5, # do 3-fold cross-validation
            keep.data=TRUE, # keep a copy of the dataset with the object
            verbose=TRUE) # don’t print out progress

best.iter<-gbm.perf(modGBM,method="cv")

pred<-predict(modGBM,valid,best.iter)

Şimdi ne - koşullu dağılımın yüzdeliğini gözlemlemediğimiz için?

Ekle:

Birkaç yöntemi varsaydım ve bunların doğru olup olmadığını ve daha iyisi olup olmadığını bilmek istiyorum - ayrıca ilkini nasıl yorumlayacağımı:

  1. Kayıp fonksiyonlarından ortalama değeri hesaplayın:

    qregLoss<-function(actual, estimate,quantile)
    {
       (sum((actual-estimate)*(quantile-((actual-estimate)<0))))/length(actual)
    
    }
    

    Bu, kantil regresyon için kayıp fonksiyonudur - ama değeri nasıl yorumlarız?

  2. Örneğin, bir test setindeki 75. persentili hesaplarsak, öngörülen değerin, zamanın% 75'i civarında gerçek değerden daha yüksek olmasını beklememiz gerekir mi?

Modelin yeni vakaları ne kadar iyi öngördüğünü açıklayan resmi veya sezgisel yöntemler var mı?


Bu makalede Bölüm 3 faydalı olabilir.
tchakravarty

@tchakravarty Bu bağlantının öldüğünü düşünüyorum
alexpghayes

Yanıtlar:


3

Yararlı bir referans, Haupt, Kagerer ve Schnurbus (2011) , çeşitli kantil regresyon modelleri sınıfları için çapraz validasyonlara dayalı olarak kestirime özgü tahmini doğruluk ölçümlerinin kullanımını tartışıyor olabilir.


0

Pinball kaybını ( https://arxiv.org/pdf/1102.2101.pdf ikinci sayfasının başlangıcında tanımlanır) kullanır ve örneklediğiniz miktar için ortalama mutlak hata (MAE) olarak yorumlarım. , 100 hatası için diyelim: "Modelimizin test verilerimizdeki gerçek% 75 miktarına ilişkin ortalama mutlak hatası 100'dür."

Aykırı değerlerin çok daha az etkili olduğu için bunun RMSE ile karşılaştırılamayacağını unutmayın.

Sorunuzu cevaplamak için (2):% 75 miktarını modellerseniz, veri kütlesini bölen sınıra sığacaksınız! 75:25 oranına kadar. Daha sonra test verilerinizin yaklaşık% 25'i tahmininizin üzerinde olmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.