সাইকিট-লার্ন ব্যবহার করে বহুবর্ষীয় রিগ্রেশন


29

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

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

আমি কি এখানে স্পষ্ট কিছু মিস করছি?

উত্তর:


25

ডেটা , একটি কলাম ভেক্টর এবং y , লক্ষ্য ভেক্টর প্রদত্ত , আপনি x এর বহুভুজ সংযোজন করে বহুত্বজনিত রিগ্রেশন করতে পারেন । উদাহরণস্বরূপ, বিবেচনা করুন যদিxyx

x=[2113]

কেবলমাত্র এই ভেক্টরকে লিনিয়ার রিগ্রেশনটিতে ব্যবহার করা মডেলকে বোঝায়:

y=α1x

X=[24811113132133]

এটি আমাদের নতুন ডেটা ম্যাট্রিক্স যা আমরা স্কেলের্নের লিনিয়ার রিগ্রেশন ব্যবহার করি এবং এটি মডেলটির প্রতিনিধিত্ব করে:

y=α1x+α2x2+α3x3

1


26

তত্ত্ব

পলিনোমিয়াল রিগ্রেশন লিনিয়ার রিগ্রেশন এর একটি বিশেষ কেস। আপনি কীভাবে আপনার বৈশিষ্ট্যগুলি নির্বাচন করবেন তার মূল ধারণা সহ। 2 ভেরিয়েবলের সাথে মাল্টিভারিয়েট রিগ্রেশনটির দিকে তাকানো: x1এবং x2। লিনিয়ার রিগ্রেশন এর মতো দেখতে পাবেন:y = a1 * x1 + a2 * x2.

এখন আপনি একটি বহুবর্ষীয় রিগ্রেশন পেতে চান (আসুন 2 ডিগ্রি বহুবচন তৈরি করুন)। আমরা কিছু অতিরিক্ত বৈশিষ্ট্য তৈরি করবে: x1*x2, x1^2এবং x2^2। সুতরাং আমরা আপনার 'লিনিয়ার রিগ্রেশন' পেয়ে যাব:

y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2

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

সাইকিট-শিখার সাথে অনুশীলন করুন

আপনার এটিকে সাইকিট করার দরকার নেই। পলিনোমিয়াল রিগ্রেশন ইতিমধ্যে সেখানে উপলব্ধ ( 0.15 সংস্করণে here এটি কীভাবে আপডেট করবেন তা পরীক্ষা করুন )।

from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model

X = [[0.44, 0.68], [0.99, 0.23]]
vector = [109.85, 155.72]
predict= [[0.49, 0.18]]
#Edit: added second square bracket above to fix the ValueError problem

poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X)
predict_ = poly.fit_transform(predict)

clf = linear_model.LinearRegression()
clf.fit(X_, vector)
print clf.predict(predict_)

1
যদি আমি এক্স 1 * x2 হিসাবে ইন্টারঅ্যাকশন শর্তাদি না চান, তবে আমাকে কী X_ নিজেই তৈরি করতে হবে? পলিনোমিয়াল ফিচারস () কনস্ট্রাক্টারে একটি "পরামিতি" কেবল আছে, এবং ডিফল্টরূপে এটি মিথ্যা। তবে সত্য এটিকে সেট করা আমার যা ইচ্ছা তা বিপরীত করে তোলে: এটি কেবল ইন্টারঅ্যাকশন শর্তাদি রাখে এবং x1 ^ 2, x2 ^ 2 ইত্যাদি রাখে না
ডেনিসফ্ল্যাশ

ইউটিউবের লিঙ্কটি দাবি করেছে যে ভিডিওটির আর অস্তিত্ব নেই। আপনার কি অন্য কোনও লিঙ্ক আছে?
মার্কন

@ মারকন এই তালিকা থেকে কোনও ভিডিওই যথেষ্ট ভাল: youtube.com/results?search_query=curse+of+ +
সালভাদোর ডালি

@ সালভাদোরডালি যে মাত্রা হ্রাস এর জন্য
ব্যবহারকারী 3916597

আমি ভাবছি যদি আমাদের প্রয়োগ করার আগে বা পরে ডেটা কেন্দ্র করা উচিত PolynomialFeatures?
রেনাক্রে

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