আমাদের সমস্যা রয়েছে:
এক্ষেত্রে কি কোনও বন্ধ-ফর্ম সমাধান রয়েছে?
আমার কাছে এটি রয়েছে:
আমাদের সমস্যা রয়েছে:
এক্ষেত্রে কি কোনও বন্ধ-ফর্ম সমাধান রয়েছে?
আমার কাছে এটি রয়েছে:
উত্তর:
আমি যখন , ছোটখাট পরিবর্তনগুলি সহ এখানে পেয়েছি তখন বন্ধ ফর্ম ল্যাসো সমাধানের @ কার্ডিনাল এর ডেরাইভেশনটি যাচ্ছি ।
আমি যে অভিমানী হবেন সকলের জন্য । এটি ন্যায়সঙ্গত কারণ আমাদের যদি একটি তবে এটি আমাদেরকে বলে যে ম কলামটি সমস্ত 0, এবং আমি মনে করি যে এই জাতীয় কেস বাদ দেওয়া যুক্তিসঙ্গত। আমি । নোট করুন যে এর অর্থ এইও যে পূর্ণ পদমর্যাদার এবং ওএলএস দ্রবণ স্বতন্ত্রভাবে সংজ্ঞায়িত।
আমি উল্লেখ করছি যে উত্তরে আমি উল্লেখ করছি আরও ভাল মেলে আপনার স্বীকৃতি পরিবর্তন করতে যাচ্ছি। সেই লক্ষ্যে, আমি
এটি আপনার সমস্যার অনুরূপ তবে আপনি চাইলে আমি এখানে আরও বিশদ যুক্ত করতে পারি।
@ কার্ডিনালের অনুসরণ করার পরে, আমাদের কাছে সমাধান করা দরকার
ওএলএস দ্রবণটি হ'ল , আমাদের কাছে
আমরা প্রতিটি আলাদাভাবে অপ্টিমাইজ করছি , যাতে আমরা এই যোগফলের প্রতিটি পদ পৃথকভাবে সমাধান করতে পারি। এর অর্থ আমাদের যেখানে
উত্তরের সম্পূর্ণ অ্যানালগাস যুক্তি অনুসরণ করে আমরা দেখতে যে
তদুপরি, সুতরাং আমাদের কাছে
সুতরাং দেখা যাচ্ছে যে কোনও ভবিষ্যদ্বাণীকারী ঠিক তখনই শূন্য হয়ে যায় যখন ডিজাইন ম্যাট্রিক্স কেবল অরথোগোনাল নয়, ছিল। সুতরাং আমরা দেখতে পাচ্ছি যে , পরিবর্তনশীল নির্বাচনটি চেয়ে আলাদা নয়, তবে আসল সহগ অনুযায়ী হয়।
চূড়ান্ত দ্রষ্টব্য হিসাবে, আমি এই সমাধানটিকে আপনার মতো দেখায় এমন একটিতে পরিণত করব যার অর্থ পাওয়ার জন্য আমাদের কিছু দিয়ে গুণ করা দরকার । যদি তবে আমাদের কাছে এটি
যেহেতু ।
উল্লেখ্য ঠিক যখন
আমরা দেখতে পাচ্ছি যে আমরা বিকল্প হিসাবে
সুতরাং এটি আপনার কাছে যা ছিল খুব কাছাকাছি কিন্তু ঠিক এক রকম নয়।
আমি সর্বদা সুপরিচিত গ্রন্থাগারগুলির থেকে এর বিপরীতে যদি পরীক্ষা করা যায় তা পরীক্ষা করতে পছন্দ করি, সুতরাং এখানে আর এর একটি উদাহরণ রয়েছে:
## generating `x`
set.seed(1)
n = 1000
p = 5
sigma2s = 1:p
x = svd(matrix(rnorm(n * p), n, p))$u %*% diag(sqrt(sigma2s))
## check this
# t(x) %*% x
## generating `y`
betas = 1:p
y = x %*% betas + rnorm(nrow(x), 0, .5)
lambda = 2
## using a well-known library to fit lasso
library(penalized)
penalized(y, x, lambda1 = lambda)@penalized
## using closed form solution
betahat = lm(y ~ x - 1)$coef
ifelse(betahat > 0, 1, -1) * sapply(abs(betahat) - lambda / sigma2s, function(v) max(c(0, v)))