One-Hot Encoding এবং Label Encoding দুটি জনপ্রিয় কৌশল যা ক্যাটেগোরিকাল (categorical) ডেটাকে নিউরাল নেটওয়ার্ক বা অন্য মেশিন লার্নিং মডেলগুলির জন্য প্রিপ্রসেস করতে ব্যবহৃত হয়। ক্যাটেগোরিকাল ডেটা, যেমন, লিঙ্গ (পুরুষ/মহিলা), শহর (ঢাকা, চট্টগ্রাম, কক্সবাজার) বা রং (লাল, নীল, সবুজ) কে মেশিন লার্নিং মডেলগুলি প্রক্রিয়া করতে পারে না, কারণ মডেলগুলি সংখ্যাগত (numerical) ডেটা নিয়ে কাজ করতে সক্ষম। এই কারণে, One-Hot Encoding এবং Label Encoding ডেটাকে সংখ্যায় রূপান্তরিত করতে ব্যবহৃত হয়।
নিচে One-Hot Encoding এবং Label Encoding এর বিস্তারিত আলোচনা করা হলো।
1. One-Hot Encoding:
One-Hot Encoding হল একটি পদ্ধতি যেখানে প্রতিটি ক্যাটেগোরিকাল মান (value) কে একটি বাইনারি ভেক্টরে রূপান্তরিত করা হয়, যার মধ্যে প্রতিটি ভেক্টরের একমাত্র একটি উপাদান 1 হয় এবং বাকি উপাদানগুলো 0 থাকে। এটি সাধারণত ব্যবহার করা হয় যখন ক্যাটেগোরিকাল ভেরিয়েবলগুলির মধ্যে কোনো ধারণাগত সম্পর্ক (ordinal relationship) না থাকে, অর্থাৎ মানগুলির মধ্যে কোনো শ্রেণীবিন্যাসের কোন বিশেষ ক্রম বা পরিসীমা নেই।
উদাহরণ:
ধরা যাক আমাদের কাছে একটি Color নামক ক্যাটেগোরিকাল কলাম রয়েছে, যার মানগুলো হল: ['Red', 'Blue', 'Green']
One-Hot Encoding এ এই মানগুলি এইভাবে রূপান্তরিত হবে:
| Color | Red | Blue | Green |
|---|---|---|---|
| Red | 1 | 0 | 0 |
| Blue | 0 | 1 | 0 |
| Green | 0 | 0 | 1 |
এখানে:
- Red কে [1, 0, 0] এ রূপান্তরিত করা হয়েছে।
- Blue কে [0, 1, 0] এ রূপান্তরিত করা হয়েছে।
- Green কে [0, 0, 1] এ রূপান্তরিত করা হয়েছে।
বিশেষ বৈশিষ্ট্য:
- No Ordinal Relationship: এই পদ্ধতিতে ক্যাটেগোরিকাল ভেরিয়েবলগুলির মধ্যে কোনো শ্রেণীবিন্যাস নেই (যেমন, রংগুলির মধ্যে কোনো নির্দিষ্ট ক্রম বা পরিসীমা নেই)।
- Dimensionality Increase: One-Hot Encoding এর ফলে ডেটার মাত্রা বৃদ্ধি পায়। যদি একটি ক্যাটেগোরিকাল ভেরিয়েবলের অনেক ভ্যালু থাকে, তাহলে সেগুলোর জন্য অনেক নতুন ফিচার তৈরি হয়।
- Useful for Nominal Data: এটি সাধারণত nominal (যেমন, রং, শহর) ধরনের ডেটার জন্য ব্যবহৃত হয়।
2. Label Encoding:
Label Encoding হল একটি পদ্ধতি যেখানে ক্যাটেগোরিকাল ভেরিয়েবলগুলির প্রতিটি ভ্যালুকে একটি ইউনিক সংখ্যা বা লেবেল দ্বারা রূপান্তরিত করা হয়। এটি সাধারণত ব্যবহৃত হয় যখন ক্যাটেগোরিকাল ভেরিয়েবলগুলির মধ্যে অর্ডিনাল সম্পর্ক (ordinal relationship) থাকে, অর্থাৎ মানগুলির মধ্যে একটি নির্দিষ্ট ক্রম বা পরিসীমা থাকে।
উদাহরণ:
ধরা যাক আমাদের কাছে একটি Size নামক ক্যাটেগোরিকাল কলাম রয়েছে, যার মানগুলো হল: ['Small', 'Medium', 'Large']
Label Encoding এ এই মানগুলি এইভাবে রূপান্তরিত হবে:
| Size | Encoded Value |
|---|---|
| Small | 0 |
| Medium | 1 |
| Large | 2 |
এখানে:
- Small কে 0 এ রূপান্তরিত করা হয়েছে।
- Medium কে 1 এ রূপান্তরিত করা হয়েছে।
- Large কে 2 এ রূপান্তরিত করা হয়েছে।
বিশেষ বৈশিষ্ট্য:
- Ordinal Relationship: Label Encoding সাধারণত ordinal (যেমন, ছোট, মাঝারি, বড়) ধরনের ডেটার জন্য উপযুক্ত, যেখানে মানগুলির মধ্যে একটি নির্দিষ্ট ক্রম বা পরিসীমা থাকে।
- Efficient: One-Hot Encoding এর তুলনায়, Label Encoding প্রক্রিয়া আরও কম স্থান (memory) নেয় কারণ এটি একক সংখ্যা ব্যবহার করে।
- Risk of Misinterpretation: এই পদ্ধতিতে, মডেলটি লেবেলগুলির মধ্যে একটি সংখ্যাগত সম্পর্ক তৈরি করতে পারে, যা প্রকৃতপক্ষে নেই (যেমন, 0 < 1 < 2), ফলে কখনও কখনও ভুলভাবে মডেলটি ডেটার মধ্যে সম্পর্ক বুঝতে পারে।
কোন পরিস্থিতিতে কোনটি ব্যবহার করবেন?
- One-Hot Encoding:
- যখন ক্যাটেগোরিকাল ডেটার মধ্যে কোনো অর্ডিনাল সম্পর্ক (ordinal relationship) না থাকে, অর্থাৎ মানগুলির মধ্যে কোনো নির্দিষ্ট ক্রম নেই।
- উদাহরণ: রং, শহর, বা অন্যান্য ক্যাটেগোরিকাল ভেরিয়েবল যা শুধুমাত্র ভিন্ন ভিন্ন শ্রেণীকে চিহ্নিত করে।
- Label Encoding:
- যখন ক্যাটেগোরিকাল ডেটার মধ্যে অর্ডিনাল সম্পর্ক (ordinal relationship) থাকে, অর্থাৎ মানগুলির মধ্যে নির্দিষ্ট ক্রম বা পরিসীমা থাকে।
- উদাহরণ: শিক্ষার স্তর (প্রাথমিক, মাধ্যমিক, উচ্চ মাধ্যমিক, স্নাতক), আয় শ্রেণী (নিম্ন, মধ্য, উচ্চ) ইত্যাদি।
সারাংশ:
- One-Hot Encoding: এটি একটি বাইনারি ভেক্টরের মাধ্যমে প্রতিটি ক্যাটেগোরিকাল মানকে আলাদাভাবে রূপান্তরিত করে। এটি nominal ডেটার জন্য ব্যবহৃত হয় যেখানে কোন শ্রেণীবিন্যাস সম্পর্ক থাকে না।
- Label Encoding: এটি প্রতিটি ক্যাটেগোরিকাল মানকে একটি নির্দিষ্ট সংখ্যা দ্বারা রূপান্তরিত করে। এটি ordinal ডেটার জন্য উপযুক্ত যেখানে মানগুলির মধ্যে একটি নির্দিষ্ট ক্রম থাকে।
আপনার ডেটার প্রকৃতি এবং মডেলের প্রয়োজনীয়তার উপর ভিত্তি করে আপনি এই দুটি পদ্ধতির মধ্যে একটি নির্বাচন করতে পারেন।
Read more