এক-হট বনাম ডামি এনকোডিং সাইকিট-শিখুন


50

শ্রেণিবদ্ধ ভেরিয়েবলগুলি এনকোডিংয়ের দুটি ভিন্ন উপায় রয়েছে। বলুন, একটি শ্রেণীবদ্ধ ভেরিয়েবলের n মান রয়েছে। এক-হট এনকোডিং এটিকে এন ভেরিয়েবলে রূপান্তরিত করে , যখন ডামি এনকোডিং এটিকে এন -1 ভেরিয়েবলগুলিতে রূপান্তর করে । আমাদের কাছে যদি k শ্রেণীবদ্ধ ভেরিয়েবল থাকে, যার প্রত্যেকটির এন মান হয়। একটি হট এনকোডিংটি এন ভেরিয়েবলের সাথে সমাপ্ত হয়, যখন ডামি এনকোডিংটি ন-কে ভেরিয়েবলের সাথে শেষ হয়।

আমি শুনেছি ওয়ান-হট এনকোডিংয়ের জন্য, ইন্টারসেপ্টের ফলে কলিনারিটির সমস্যা হতে পারে, যা মডেলটিকে শোনায় না। কেউ এটিকে " ডামি ভেরিয়েবল ট্র্যাপ " বলে।

আমার প্রশ্নগুলো:

  1. সাইকিট-লার্নের লিনিয়ার রিগ্রেশন মডেল ব্যবহারকারীদের ইন্টারসেপটি অক্ষম করতে দেয়। সুতরাং এক-গরম এনকোডিংয়ের জন্য, আমি কি সর্বদা ফিট_ইন্টারসেপ্ট = মিথ্যা সেট করব? ডামি এনকোডিংয়ের জন্য, ফিট_ইন্টারসেপ্ট সবসময় সত্য হিসাবে সেট করা উচিত? ওয়েবসাইটে কোনও "সতর্কতা" দেখছি না।

  2. যেহেতু এক-হট এনকোডিং আরও ভেরিয়েবল উত্পন্ন করে, তাই এটির কি ডামি এনকোডিংয়ের চেয়ে বেশি ডিগ্রি স্বাধীনতা পাওয়া যায়?

উত্তর:


35

সাইকিট-লার্নের লিনিয়ার রিগ্রেশন মডেল ব্যবহারকারীদের ইন্টারসেপটি অক্ষম করতে দেয়। সুতরাং এক-গরম এনকোডিংয়ের জন্য, আমি কি সর্বদা ফিট_ইন্টারসেপ্ট = মিথ্যা সেট করব? ডামি এনকোডিংয়ের জন্য, ফিট_ইন্টারসেপ্ট সবসময় সত্য হিসাবে সেট করা উচিত? ওয়েবসাইটে কোনও "সতর্কতা" দেখছি না।

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

যেহেতু এক-হট এনকোডিং আরও ভেরিয়েবল উত্পন্ন করে, তাই এটির কি ডামি এনকোডিংয়ের চেয়ে বেশি ডিগ্রি স্বাধীনতা পাওয়া যায়?

ইন্টারসেপ্ট হ'ল স্বাধীনতার একটি অতিরিক্ত ডিগ্রি, সুতরাং একটি ভাল নির্দিষ্ট মডেলটিতে এটি সমস্ত সমান।

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

x1,x2,,xn

x1+x2++xn=1

x

x1+x2++xk=1

এবং তাই আপনি একটি লিনিয়ার নির্ভরতা তৈরি করেছেন

x1+x2+xnx1x2xk=0

সুতরাং আপনাকে অবশ্যই দ্বিতীয় ভেরিয়েবলের একটি স্তর ছেড়ে দিতে হবে এবং সবকিছু ঠিকঠাকভাবে লাইন করা উচিত।

বলুন, আমার কাছে 3 টি স্পষ্টতাল ভেরিয়েবল রয়েছে যার প্রতিটির 4 টি স্তর রয়েছে। ডামি এনকোডিংয়ে, 3 * 4-3 = 9 ভেরিয়েবলগুলি একটি ইন্টারসেপ্ট দিয়ে নির্মিত হয়। এক-গরম এনকোডিংয়ে, 3 * 4 = 12 ভেরিয়েবলগুলি কোনও বাধা ছাড়াই নির্মিত হয়। আমি কি সঠিক?

3×4=12


ধন্যবাদ। দ্বিতীয়টির জন্য, যদি কে শ্রেণিবদ্ধ ভেরিয়েবল থাকে? কে ভেরিয়েবলগুলি ডামি এনকোডিংয়ে সরানো হবে। স্বাধীনতার ডিগ্রি কি এখনও একই?
মিউনিচং

@ চেংওয়াং আমি আমার মন্তব্যে আপনার মন্তব্যের জবাব সম্পাদনা করেছি।
ম্যাথু ড্রুরি

দুঃখিত, আমি এখানে কিছুটা হারিয়েছি। বলুন, আমার কাছে 3 টি স্পষ্টতাল ভেরিয়েবল রয়েছে যার প্রতিটির 4 টি স্তর রয়েছে। ডামি এনকোডিংয়ে, 3 * 4-3 = 9 ভেরিয়েবলগুলি একটি ইন্টারসেপ্ট দিয়ে নির্মিত হয়। এক-গরম এনকোডিংয়ে, 3 * 4 = 12 ভেরিয়েবলগুলি কোনও বাধা ছাড়াই নির্মিত হয়। আমি কি সঠিক? সুতরাং এখানে ডামি এনকোডিংয়ের DF 9-1 হয় এবং এক-গরম এনকোডিংয়ের DF 12. আমি কি সঠিক?
মিউনিচং

@ চেংওয়াং আবার সম্পাদিত।
ম্যাথু ড্রুরি

@ ম্যাথেজড্রুরি স্কলারনে লিনিয়ার_মডেল নিয়ে আমার একই সমস্যা আছে। ডামি এনকোডিংয়ের পরে সিদ্ধান্ত গাছ এবং কেএনএন ঠিকঠাক কাজ করে তবে লিনিয়ার রিগ্রেশন একক হয়ে যায়। আমি আপনার উত্তর থেকে বুঝতে পারি যে আমার একটি "দ্বিতীয় পরিবর্তনশীল থেকে স্তর" সরানো উচিত তবে এর ব্যবহারিকভাবে কী বোঝায় আমি তা জানি না? উদাহরণস্বরূপ আমার কাছে 3 টি সাংখ্যিক বৈশিষ্ট্য এবং 3 শ্রেণিবদ্ধ (নির্মাতা, মডেল এবং ফুয়েল_ টাইপ) রয়েছে। একজন নির্মাতাকে এন মডেল থাকতে পারে বলে মডেলটি স্বাভাবিকভাবেই প্রস্তুতকারকের উপর নির্ভরশীল। সুতরাং আমি লিনিয়ার রিগ্রেশনটি ব্যবহার করতে চাইলে এই জাতীয় দৃশ্যে কীভাবে এগিয়ে যেতে পারি?
হার্ভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.