মাল্টিক্লাস এলডিএ প্রশিক্ষণে কলিনের পরিবর্তনশীল


16

আমি 8 টি শ্রেণির ডেটা সহ একটি বহু-শ্রেণীর এলডিএ শ্রেণিবদ্ধ প্রশিক্ষণ দিচ্ছি ।

প্রশিক্ষণ সম্পাদন করার সময়, আমি একটি সতর্কতা পেয়েছি: " ভেরিয়েবলগুলি কলাইনারি "

আমি 90% এরও বেশি প্রশিক্ষণের যথাযথতা পাচ্ছি ।

আমি পাইথনে সাইকিটস-লার্ন লাইব্রেরিটি ব্যবহার করছি মাল্টি-ক্লাসের ডেটা ট্রেন এবং পরীক্ষা করি।

আমিও পরীক্ষার যথাযথ নির্ভুলতা পাই (প্রায় 85% -95% )।

ত্রুটি / সতর্কতার অর্থ কী তা আমি বুঝতে পারি না। আমাকে সাহায্য করুন.

উত্তর:


29

মাল্টিকোলাইনারিটির অর্থ আপনার ভবিষ্যদ্বাণীকারীরা পারস্পরিক সম্পর্কযুক্ত। কেন এই খারাপ?

কারণ এলডিএ, যেমন রিগ্রেশন কৌশলগুলিতে একটি ম্যাট্রিক্স ইনভার্সন গণনা করা জড়িত, যা নির্ধারক 0 এর কাছাকাছি থাকলে ( যেমন দুটি বা ততোধিক ভেরিয়েবলগুলি একে অপরের একেবারে রৈখিক সংমিশ্রণ হয়) ভুল হয়।

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

যদি আপনার সমস্ত যত্ন নেওয়া হয় সে অনুযায়ী প্রতি শ্রেণিবদ্ধকরণ এবং এটি যে আপনার মডেলটিকে অর্ধেক ডেটা সম্পর্কে প্রশিক্ষণ দেওয়ার পরে এবং অন্য অর্ধে এটি পরীক্ষা করার পরে আপনি 85-95% নির্ভুলতা পাবেন আমি বললাম এটি ঠিক আছে।


সুতরাং আমি এটির মতো ব্যাখ্যা করতে পারি, পরীক্ষার নির্ভুলতা কম হলে ফিচার ভেক্টরের এক্স 1 বৈশিষ্ট্যটি ভাল পছন্দ নয়?
গারাক

1
আমার ধারণা, পরীক্ষার নির্ভুলতা যদি কম হয় তবে কোনও ভাল বাছাই নেই।
gui11aume

মজার বিষয় হ'ল এলডিএ নিয়ে আমার এই সমস্যা হচ্ছে তবে আমি যখন কিউডিএ ব্যবহার করি তা নয়। আমি ভাবছি সেখানে কি আলাদা?
গারাক

1
উত্তরের জন্য +1, তবে "একটি ম্যাট্রিক্স বিপরীতে গণনা করা" সঠিক নাও হতে পারে। আমরা কখনই এটি কম্পিউটারে স্পষ্টভাবে কম্পিউটার করি না, সরাসরি পদ্ধতি যেমন এলইউ, কিউআর বা পুনরাবৃত্ত পদ্ধতিগুলি ব্যবহার করা হয়।
হাইতাও ডু

@ hxd1011 সঠিক! রেকর্ডটির জন্য, আপনি ম্যাট্রিক্স "প্রায় একবচন" হয়ে গেলে এলইউ / কিউআর ইত্যাদি ক্ষেত্রে কী ঘটে যায় সে সম্পর্কে কয়েকটি শব্দ দিতে পারেন, বা সম্ভবত কোনও ডকুমেন্টকে নির্দেশ করেছেন যা এটি ব্যাখ্যা করে?
gui11aume

12

আমি যেমন মনে করি যে গুই 11উম আপনাকে একটি দুর্দান্ত উত্তর দিয়েছে, তাই আমি কিছুটা আলাদা কোণ থেকে একটি উদাহরণ দিতে চাই যা আলোকিত হতে পারে। আপনার বৈষম্যমূলক ক্রিয়াকলাপের কোনও সহকারী নীচের মত দেখায় তা বিবেচনা করুন:

X1=5X2+3X3X4

মনে করুন সেরা এলডিএর নিম্নলিখিত রৈখিক সীমানা রয়েছে:

X1+2X2+X32X4=5

তারপরে আমরা এক্স 1 এন এলডিএ সীমানা সমীকরণের জন্য প্রতিস্থাপন করতে পারি, সুতরাং: 5X2+3X3X4X1

5X2+3X3X4+2X2+X32X4=5

অথবা

7X2+4X33X4=5

এই দুটি বাউন্ডারি অভিন্ন কিন্তু প্রথম এক কোফিসিয়েন্টস হয়েছে জন্য এক্স 1 , এক্স 2 , এক্স 3 , এবং এক্স 4 যথাক্রমে যখন অন্যান্য কোফিসিয়েন্টস হয়েছে 0 , 7 , 3 , - 11,2,1,2X1X2X3X40,7,3,1

সুতরাং সহগ বেশ আলাদা তবে দুটি সমীকরণ একই সীমানা এবং অভিন্ন ভবিষ্যদ্বাণী নিয়ম দেয়। একটি ফর্ম ভাল হলে অন্যটিও। তবে এখন আপনি দেখতে পাচ্ছেন যে গুই 11 এমে কেন সহগগুলি বোঝা যায় না।

X20X3X4


1

এখানে যে উত্তরটি চিহ্নিত করা হয়েছে তা সঠিক, আমি আপনার কোডটিতে কী ঘটেছিল তা খুঁজে পেতে আপনি আলাদা ব্যাখ্যা খুঁজছিলেন বলে মনে করি। আমার ঠিক একই সমস্যাটি একটি মডেলের মধ্য দিয়ে চলছিল।

যা চলছে তা এখানে: আপনি আপনার ডেটা সেটের অংশ হিসাবে আপনার মডেলটিকে পূর্বাভাসযুক্ত ভেরিয়েবলের সাথে প্রশিক্ষণ দিচ্ছেন। এমনকি এটি পর্যবেক্ষণ না করে কী ঘটেছিল তার একটি উদাহরণ এখানে:

df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns[:-1]]

এই কোডটিতে, আমি 'সিওএল 3' এর মানটির পূর্বাভাস দিতে চাই ... তবে, আপনি যদি ট্রেন_এক্সের দিকে তাকান তবে আমি এটি শেষ কলাম বাদে প্রতিটি কলাম পুনরুদ্ধার করতে বলছি, সুতরাং এটি সিওএল 1 সিএল 2 এবং সিওএল 3 নয়, সিএল 4 নয়, এবং COL3 পূর্বাভাস দেওয়ার চেষ্টা করছে যা ট্রেন_ এক্স এর অংশ।

আমি কেবল কলামগুলি সরিয়ে এটিকে সংশোধন করেছি, এক্সেসে ম্যানুয়ালি COL3 সরিয়ে নিয়েছি আমার ডেটা সেটে সর্বশেষ কলাম হতে (বর্তমানে COL4 এর স্থান নিচ্ছে) এবং তারপরে:

df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL4']
train_X = train[train.columns[:-1]]

আপনি যদি এটি এক্সেলে স্থানান্তরিত করতে না চান এবং কেবল কোড দ্বারা এটি করতে চান তবে:

df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns['COL1','COL2','COL4']]

এখনই নোট করুন যে আমি কীভাবে ট্রেন_ এক্স ঘোষনা করেছি, COL3 ব্যতীত সমস্ত কলামকে অন্তর্ভুক্ত করতে যা ট্রেন_ইয়ের অংশ।

আমি আশা করি এটি সাহায্য করবে.

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