গ্ল্যামনেট লজিস্টিক রিগ্রেশন কি ডামি ভেরিয়েবলের প্রয়োজন ছাড়াই সরাসরি ফ্যাক্টর (শ্রেণীবদ্ধ) পরিচালনা করতে পারে? [বন্ধ]


15

আমি লসো পদ্ধতিটি ব্যবহার cv.glmnetকরে lambdaএবং glmnetচূড়ান্ত মডেলটি নির্বাচন করার জন্য ফাংশনগুলির সাথে আর এ লজিস্টিক রিগ্রেশন তৈরি করছি ।

স্বয়ংক্রিয় মডেল নির্বাচন সংক্রান্ত সমস্ত অসুবিধা আমি ইতিমধ্যে জানি কিন্তু যাইহোক আমার এটি করা দরকার।

আমার সমস্যাটি হ'ল আমাকে মডেলটিতে ফ্যাক্টর (শ্রেণিবদ্ধ) ভেরিয়েবলগুলি অন্তর্ভুক্ত করা দরকার, প্রচুর ডামি ভেরিয়েবল তৈরি না করে এটি করার কোনও উপায় আছে কি? এই ভেরিয়েবলগুলি প্রায় সমস্ত স্ট্রিং এবং সংখ্যা নয়।


2
আমি এটি সম্পর্কে ভাল উপায় সম্পর্কে কৌতূহলী।
বনাঞ্চল বিশেষজ্ঞ

উত্তর:


26

গ্ল্যামনেট সরাসরি ফ্যাক্টর নিতে পারে না, আপনাকে ফ্যাক্টর ভেরিয়েবলগুলি ডমিতে রূপান্তর করতে হবে। মডেল.ম্যাট্রিক্স ব্যবহার করে এটি কেবলমাত্র একটি সহজ পদক্ষেপ, উদাহরণস্বরূপ:

x_train <- model.matrix( ~ .-1, train[,features])
lm = cv.glmnet(x=x_train,y = as.factor(train$y), intercept=FALSE ,family =   "binomial", alpha=1, nfolds=7)
best_lambda <- lm$lambda[which.min(lm$cvm)]

আলফা = 1 একটি লাসো তৈরি করবে।


1
+1 দুর্দান্ত উত্তর! আমি জিজ্ঞাসা করতে পারি কেন আপনি বা যে কেউ কেন বিরতি = মিথ্যা ব্যবহার করেন?
ইরোসেনেনিন

এটি দুটি বিভাজনযুক্ত ভেরিয়েবলগুলি ব্যর্থ হতে পারে বলে মনে হয়: ভের 1 এর এল 1 স্তর থাকলে আমি L1 কলামগুলি সঠিকভাবে পেয়েছি তবে ভের 2 এর জন্য L2-1 কলাম রয়েছে (যার L2 স্তর রয়েছে)।
পিটার স্ট্রাকা

@ পিটার স্ট্রাকা: যোগফল (ভার 1 এর জন্য এল 1 ডামির উপরে) = 1 এবং সমস্ত রেকর্ডের জন্য যোগফল (ভি 2 এর জন্য এল 2 ডামি ওভার) = 1 সমস্ত রেকর্ডের জন্য, সুতরাং 1 ভার্চুর জন্য এল 1 ডামি এবং ভার 2 এর জন্য এল 2 ডামিগুলি লাইন নির্ভর নির্ভরশীল। ভার 2 এর জন্য কমপক্ষে একটি ডামি এল 2 ডামি অপ্রয়োজনীয় (লিনিয়ার মডেল তৈরির উদ্দেশ্যে)।
ভিক্টর জুরকোভস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.