কীভাবে Lasso জন্য ভ্যানিলা প্লেইন ক্রস বৈধতা করতে হবে সেই বিষয়ে একটি উদাহরণ glmnet
উপর mtcars
ডেটা সেট।
লোড ডেটা সেট।
বৈশিষ্ট্য প্রস্তুত করুন (স্বতন্ত্র ভেরিয়েবল)। তারা matrix
ক্লাসের হওয়া উচিত । সবচেয়ে সহজ উপায় রূপান্তর করতে df
মধ্যে শ্রেণীগত ভেরিয়েবল ধারণকারী matrix
মারফত model.matrix
। আপনি মনে রাখবেন, ডিফল্টরূপে glmnet
ইন্টারসেপ্ট ফিট করে, তাই আপনি মডেল ম্যাট্রিক্স থেকে আরও ভাল স্ট্রিপ চাই।
প্রতিক্রিয়া প্রস্তুত করুন (নির্ভরশীল পরিবর্তনশীল)। উপরের গড়ের mpg
সাথে দক্ষ ('1') এবং বাকিগুলি অদক্ষ ('0') হিসাবে কোড করুন। এই পরিবর্তনশীলটিকে ফ্যাক্টারে রূপান্তর করুন।
এর মাধ্যমে ক্রস-বৈধকরণ চালান cv.glmnet
। এটি alpha=1
ডিফল্ট glmnet
প্যারামিটারগুলি থেকে পিকআপ নেবে, যা আপনি যা চেয়েছিলেন: লাসো রিগ্রেশন।
ক্রস-বৈধতার আউটপুট পরীক্ষা করে আপনি কমপক্ষে 2 টি টুকরো তথ্যে আগ্রহী হতে পারেন:
উপরের নির্দেশাবলী অনুযায়ী দয়া করে আর কোড দেখুন:
# Load data set
data("mtcars")
# Prepare data set
x <- model.matrix(~.-1, data= mtcars[,-1])
mpg <- ifelse( mtcars$mpg < mean(mtcars$mpg), 0, 1)
y <- factor(mpg, labels = c('notEfficient', 'efficient'))
library(glmnet)
# Run cross-validation
mod_cv <- cv.glmnet(x=x, y=y, family='binomial')
mod_cv$lambda.1se
[1] 0.108442
coef(mod_cv, mod_cv$lambda.1se)
1
(Intercept) 5.6971598
cyl -0.9822704
disp .
hp .
drat .
wt .
qsec .
vs .
am .
gear .
carb .
mod_cv$lambda.min
[1] 0.01537137
coef(mod_cv, mod_cv$lambda.min)
1
(Intercept) 6.04249733
cyl -0.95867199
disp .
hp -0.01962924
drat 0.83578090
wt .
qsec .
vs .
am 2.65798203
gear .
carb -0.67974620
চূড়ান্ত মন্তব্য:
দ্রষ্টব্য, মডেলের আউটপুট সহগের পরিসংখ্যানগত তাত্পর্য সম্পর্কে কিছুই বলে না, কেবলমাত্র মান।
l1 পেনালাইজার (লাসো), যা আপনি চেয়েছিলেন তা এই ব্লগ পোস্ট এবং এই স্ট্যাকেক্সচেঞ্জ প্রশ্নের প্রমাণ হিসাবে অস্থিরতার জন্য কুখ্যাত । এর চেয়ে আরও ভাল উপায় হ'ল ক্রস-বৈধতা দেওয়া alpha
, যা আপনাকে এল 1 এবং এল 2 পেনালাইজারগুলির সঠিক মিশ্রণের বিষয়ে সিদ্ধান্ত নিতে দেয়।
ক্রস-বৈধকরণের একটি বিকল্প উপায় হ'ল ক্যারেটের দিকে ফিরে যাওয়া train( ... method='glmnet')
এবং পরিশেষে, এর সম্পর্কে আরও জানার সর্বোত্তম উপায় cv.glmnet
এবং এটির ডিফল্টগুলি glmnet
অবশ্যই আসছে ?glmnet
আর এর কনসোলে)))