স্ট্যাটাসমডেল ওএলএস এবং সাইকিট লিনিয়ার রিগ্রেশন মধ্যে পার্থক্য


16

আমার কাছে বিভিন্ন লাইব্রেরি থেকে দুটি ভিন্ন পদ্ধতি সম্পর্কে একটি প্রশ্ন রয়েছে যা মনে হয় একই কাজ করছে। আমি লিনিয়ার রিগ্রেশন মডেল তৈরি করার চেষ্টা করছি।

আমি ওএলএস সহ স্ট্যাটাসমডেল লাইব্রেরিটি ব্যবহার করছি এমন কোডটি এখানে:

X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1)

x_train = sm.add_constant(X_train)
model = sm.OLS(y_train, x_train)
results = model.fit()

print "GFT + Wiki / GT  R-squared", results.rsquared

এই প্রিন্ট আউট জিএফটি + উইকি / জিটি আর-স্কোয়ার 0.981434611923

এবং দ্বিতীয়টি হ'ল সাইকিট লাইব্রেরি লিনিয়ার মডেল পদ্ধতি:

model = LinearRegression()
model.fit(X_train, y_train)

predictions = model.predict(X_test)

print 'GFT + Wiki / GT R-squared: %.4f' % model.score(X_test, y_test)

এই মুদ্রণটি জিএফটি + উইকি / জিটি আর-স্কোয়ার: 0.8543

সুতরাং আমার প্রশ্ন উভয় পদ্ধতিই আমাদের আর ^ 2 ফলাফল মুদ্রণ করে তবে একটি প্রিন্ট আউট 0.98 এবং অন্যটি 0.85 হয় 0.

আমার উপলব্ধি থেকে, ওএলএস প্রশিক্ষণ ডেটাসেটের সাথে কাজ করে। সুতরাং আমার প্রশ্নগুলি,

  • ওএলএসের সাথে টেস্ট ডেটা সেট করার কোনও উপায় আছে কি?
  • ট্র্যানিং ডেটা সেট স্কোরটি আমাদের কোনও অর্থ দেয় (ওএলএস-এ আমরা পরীক্ষা ডেটা সেট ব্যবহার করি নি)? আমার অতীত জ্ঞান থেকে আমাদের পরীক্ষার ডেটা নিয়ে কাজ করতে হবে।
  • ওএলএস এবং সাইকিট লিনিয়ার রিগ্রেশন এর মধ্যে পার্থক্য কী। আমরা মডেলটির স্কোর গণনার জন্য কোনটি ব্যবহার করি?

কোন সাহায্যের জন্য ধন্যবাদ।

উত্তর:


15

ব্যবহারের ক্ষেত্রে প্রথম। বিজ্ঞান-শিখার মতো আপনি স্ট্যাটাস মডেলগুলিতে ভবিষ্যদ্বাণীটি খুব একইভাবে পেতে পারেন, কেবলমাত্র আমরা যে ফলাফলগুলি দিয়েছি ফলাফলগুলি ব্যবহার না করে ব্যতীতfit

predictions = results.predict(X_test)

পূর্বাভাস দেওয়া, আমরা পরিসংখ্যানগুলি গণনা করতে পারি যা পূর্বাভাস ত্রুটির উপর ভিত্তি করে

prediction_error = y_test - predictions

এটির সাথে পূর্বাভাসের পরিসংখ্যানগুলির সদ্ব্যবহার গণনা করার জন্য ফাংশনগুলির একটি পৃথক তালিকা রয়েছে তবে এটি মডেলগুলির সাথে একীভূত নয়, এটি আর স্কোয়ারকেও অন্তর্ভুক্ত করে না। (আমি কখনই নমুনা ডেটার বাইরে আর স্কোয়ার ব্যবহার করা শুনিনি)) সেগুলি গণনা করতে ব্যবহারকারীর দ্বারা আরও কিছু বেশি কাজ করা দরকার এবং স্ট্যাটাসমডেলসের পরিসংখ্যানগুলির সমান সেট নেই, বিশেষত শ্রেণিবদ্ধকরণ বা বাইনারি প্রতিক্রিয়ার পরিবর্তনশীল মডেলগুলির জন্য নয়।

আপনার অন্য দুটি পয়েন্ট:

লিনিয়ার রিগ্রেশন স্ট্যাটাস মডেলস এবং সাইকিট-লার্নে এর মূল আকারে একই। তবে, বাস্তবায়ন পৃথক হয়েছে যা প্রান্তের ক্ষেত্রে বিভিন্ন ফলাফল আনতে পারে এবং সাইকিট শিখার ক্ষেত্রে সাধারণত বৃহত্তর মডেলগুলির আরও বেশি সমর্থন পাওয়া যায়। উদাহরণস্বরূপ, স্ট্যাটাসমডেলস বর্তমানে খুব কম অংশে স্পার ম্যাট্রিক্স ব্যবহার করে।

সর্বাধিক গুরুত্বপূর্ণ পার্থক্যটি আশেপাশের অবকাঠামো এবং ব্যবহারের ক্ষেত্রে যা সরাসরি সমর্থিত।

স্ট্যাটাসমডেলগুলি প্রচলিত modelতিহ্যবাহী মডেল অনুসরণ করে যেখানে আমরা জানতে চাই যে প্রদত্ত মডেলটি ডেটাটি কতটা ফিট করে এবং কী পরিবর্তনশীলগুলি "ব্যাখ্যা" দেয় বা ফলাফলকে প্রভাবিত করে, বা প্রভাবটির আকারটি। সাইকিট-লার মেশিন লার্নিং traditionতিহ্য অনুসরণ করে যেখানে মূল সমর্থিত টাস্ক ভবিষ্যদ্বাণী করার জন্য "সেরা" মডেলটি বেছে নিচ্ছে।

ফলস্বরূপ, স্ট্যাটাস মডেলগুলির সহায়ক বৈশিষ্ট্যগুলিতে জোর দেওয়া প্রশিক্ষণের ডেটা বিশ্লেষণ করা যা অনুমানের পরীক্ষা এবং ধার্মিকতা-ফিটনেসমূলক পদক্ষেপগুলি অন্তর্ভুক্ত করে, অন্যদিকে বিজ্ঞান-শিখায় সহায়ক অবকাঠামোতে জোর দেওয়া বাহ্যিক ক্ষেত্রে মডেল নির্বাচনের উপর নমুনা পূর্বাভাস এবং "পরীক্ষার ডেটা" তে ক্রস-বৈধতা।

এটি পার্থক্যটি উল্লেখ করে, ব্যবহারের ক্ষেত্রে এখনও প্রচুর পরিমাণে ওভারল্যাপ রয়েছে। পরিসংখ্যান মডেলগুলি ভবিষ্যদ্বাণীও করে এবং একটি সময় সিরিজের প্রসঙ্গে অতিরিক্ত পূর্বাভাসও দেয়। তবে, আমরা যখন স্ট্যাটস মডেলগুলিতে পূর্বাভাসের জন্য ক্রস-বৈধকরণ করতে চাই তখন বর্তমানে স্ট্যাটাসমডেলের অনুমানের মডেলগুলির সাথে একত্রে বিজ্ঞান-শিখার ক্রস-বৈধতা সেটআপটি পুনরায় ব্যবহার করা সহজ।


হুম, আমি statsmodels.tsa থেকে একটি এআরএমএ মডেল ব্যবহার করার চেষ্টা করছি, তবে পূর্বাভাসের ইন্টারফেসটি সেখানে সম্পূর্ণ আলাদা। আপনি কীভাবে এটি পরীক্ষার ডেটা খাওয়ান জানেন?
এফেসগুলি

1
এটি একটি আলাদা প্রশ্ন এবং আপনার ডকুমেন্টেশন বা উদাহরণগুলি দেখতে হবে। অনুক্রমের সময় কাঠামোর কারণে সময় সিরিজের মডেলগুলিতে ভবিষ্যদ্বাণী করা একেবারেই আলাদা কারণ ভবিষ্যতবাণীটি পরবর্তী সময়ের সময়কালের মানগুলির পূর্বাভাস দেয়।
জোসেফ

আপনি ঠিক বলেছেন এটি অন্য একটি প্রশ্ন, তবুও ব্যাখ্যাটির জন্য ধন্যবাদ। আমি ডকুমেন্টেশন পড়েছি এবং এটি কোনওভাবে কাজ করতে পেয়েছি। তবে আমি এখনও বুঝতে পারি না কেন ইন্টারফেসটি আলাদা। বিশেষত কেন বৈশিষ্ট্যযুক্ত ভেক্টর সরবরাহ করা এবং পূর্বাভাস (পূর্বাভাস) পাওয়া সম্ভব হচ্ছে না।
এফেস

এআরএমএ এবং সারিম্যাক্স ব্যাখ্যামূলক ভেরিয়েবলগুলি exogঅনুমান এবং পূর্বাভাসে অন্তর্ভুক্ত করার অনুমতি দেয় ।
জোসেফ

: Stackowerlow উপর এই প্রশ্নের ইন্টারফেসগুলি পার্থক্য adresses stackoverflow.com/questions/41045752/...
ডেভিড ডেল

1

ওএলএস মডেলে আপনি প্রশিক্ষণ ডেটা ফিট এবং ভবিষ্যদ্বাণী করতে ব্যবহার করছেন।

লিনিয়ারআগ্রেশন মডেলের সাহায্যে আপনি ভবিষ্যদ্বাণী করতে ফিট করার জন্য প্রশিক্ষণ ডেটা এবং পরীক্ষার ডেটা ব্যবহার করছেন, সুতরাং আর 2 স্কোরের জন্য আলাদা ফলাফল।

যদি আপনি ওএলএস মডেলের পরীক্ষার ডেটা নেন, আপনার একই ফলাফল এবং নিম্ন মানের হওয়া উচিত


1

আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি যেখানে ওএলএস স্ক্লার্ন লিনিয়াররেগ্রেশন মডেলের তুলনায় বিভিন্ন রিকোয়ার্ড এবং অ্যাডজাস্টেড রিকোয়ার্ড মান দেয়।

এর কারণ: ওএলএস বিবেচনা করে না, ডিফল্ট হতে পারে না, ইন্টারসেপ্ট সহগ এবং সেখানে ছাড়াই মডেল তৈরি করে এবং স্কেলারন মডেলটি তৈরিতে বিবেচনা করে।

সমাধান: ডেটাসেটে 1 এর একটি কলাম যুক্ত করুন এবং ওএলএসের সাথে মডেলটিকে ফিট করুন এবং আপনি প্রায় একই রকমের এবং অ্যাডজেজ পাবেন। উভয় মডেলের জন্য মূল্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.