Lm.ridge এবং glmnet ব্যবহারে রিজ রিগ্রেশনটির ফলাফল পৃথক different


11

আমি আরজি তে রিজ রিগ্রেশন ব্যবহার করে রিগ্রেশন মডেলের সেরা পরিবর্তনশীল সমাধান খুঁজতে কিছু তথ্য প্রয়োগ করেছি data আমি ব্যবহার করেছি lm.ridgeএবং glmnet(কখন alpha=0) তবে ফলাফলগুলি খুব আলাদা especially বিশেষত যখন lambda=0। মনে করুন যে উভয় প্যারামিটারের অনুমানকারীরই একই মান। তো, এখানে সমস্যা কী? শুভেচ্ছান্তে

উত্তর:


14

গ্ল্যামনেট y পরিবর্তনশীলকে মানক করে এবং স্কোয়ার ত্রুটির সংখ্যার পরিবর্তে গড় স্কোয়ার ত্রুটি ব্যবহার করে। সুতরাং তাদের আউটপুটগুলির সাথে মিলে যাওয়ার জন্য আপনাকে উপযুক্ত সামঞ্জস্য করা দরকার।

library(ElemStatLearn)
library(glmnet)
library(MASS)

dof2lambda <- function(d, dof) {
    obj <- function(lam, dof) (dof - sum(d ^ 2 / (d ^ 2 + lam))) ^ 2
    sapply(dof, function(x) optimize(obj, c(0, 1e4), x)$minimum)
}

lambda2dof <- function(d, lam) {
    obj <- function(dof, lam) (dof - sum(d ^ 2 / (d ^ 2 + lam))) ^ 2
    sapply(lam, function(x) optimize(obj, c(0, length(d)), x)$minimum)
}

dat   <- prostate
train <- subset(dat,  train, select = -train)
test  <- subset(dat, !train, select = -train)

train.x <- as.matrix(scale(subset(train, select = -lpsa)))
train.y <- as.matrix(scale(train$lpsa))

d   <- svd(train.x)$d
dof <- seq(1, 8, 0.1)
lam <- dof2lambda(d, dof)

ridge1 <- lm.ridge(train.y ~ train.x, lambda = lam)
ridge2 <- glmnet(train.x, train.y, alpha = 0, lambda = lam / nrow(train.x))

matplot(dof, t(ridge1$coef), type = 'l')
matplot(lambda2dof(d, ridge2$lambda * nrow(train.x)), t(ridge2$beta), type = 'l')

হ্যালো. রিজ রিগ্রেশন-এর জন্য আপনি কোন আর প্যাকেজটি ব্যবহার করার পরামর্শ দিচ্ছেন? গ্ল্যামনেট, বিগআরআর, ভর, অন্যান্য? তাদের মধ্যে কেউ বারবার ব্যবস্থা (এলোমেলো প্রভাব) মোকাবেলা করতে সক্ষম?
স্ক্যান

আমি গ্ল্যামনেট এবং এমএএসএস এলএম.রিজ আউটপুটটির মধ্যে কিছুটা তাত্পর্য পেয়েছি যা সমস্যাগুলি পুনরুদ্ধার করে ব্যাখ্যা করা যায় না। তবে lm.ridge আমাকে ফলাফল দিয়েছে যা হাতের গণনার সাথে মিলে যায়। ভবিষ্যতে আমার যদি সময় থাকে তবে আমি সম্পূর্ণ উদাহরণটি পোস্ট করব। এখনই, আমি ম্যাসের সাথে যাব। এছাড়াও, গ্ল্যামনেট নিজেই হুঁশিয়ারি দেয় যে ফলগুলি আপনি ল্যাম্বদা পরামিতিগুলি যেভাবে সেট করেছেন তার উপর নির্ভর করে, এটি গ্ল্যামনেটের বিরুদ্ধে আরও একটি ধর্মঘট।
PA6OTA
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.