" মাত্রা" শব্দটি একটি বৈশিষ্ট্য ভেক্টরের উপাদান সংখ্যার সমার্থক শব্দ। কিছু শ্রেণীগত বৈশিষ্ট্য নিম্ন মাত্রিক। উদাহরণস্বরূপ:
| বৈশিষ্ট্যের নাম | #টি বিভাগের | নমুনা বিভাগ |
|---|---|---|
| আজ তুষারপাত | ২ | সত্য মিথ্যা |
| দক্ষতা_স্তর | ৩ | শিক্ষানবিস, অনুশীলনকারী, বিশেষজ্ঞ |
| ঋতু | ৪ | শীত, বসন্ত, গ্রীষ্ম, শরৎ |
| সপ্তাহের_দিন | ৭ | সোমবার, মঙ্গলবার, বুধবার |
| গ্রহ | ৮ | বুধ, শুক্র, পৃথিবী |
যখন একটি শ্রেণীগত বৈশিষ্ট্যে সম্ভাব্য শ্রেণীর সংখ্যা কম থাকে, তখন আপনি এটিকে একটি শব্দভাণ্ডার হিসাবে এনকোড করতে পারেন। শব্দভাণ্ডার এনকোডিংয়ের মাধ্যমে, মডেল প্রতিটি সম্ভাব্য শ্রেণীগত মানকে একটি পৃথক বৈশিষ্ট্য হিসাবে বিবেচনা করে। প্রশিক্ষণের সময়, মডেল প্রতিটি বিভাগের জন্য বিভিন্ন ওজন শেখে।
উদাহরণস্বরূপ, ধরুন আপনি car_color নামক একটি নির্দিষ্ট বৈশিষ্ট্যের উপর ভিত্তি করে একটি গাড়ির দাম অনুমান করার জন্য একটি মডেল তৈরি করছেন। সম্ভবত লাল গাড়ির দাম সবুজ গাড়ির চেয়ে বেশি। যেহেতু নির্মাতারা সীমিত সংখ্যক বাহ্যিক রঙ অফার করে, তাই car_color হল একটি নিম্ন-মাত্রিক নির্দিষ্ট বৈশিষ্ট্য। নিম্নলিখিত চিত্রটি car_color এর জন্য একটি শব্দভাণ্ডার (সম্ভাব্য মান) প্রস্তাব করে:
সূচক সংখ্যা
মেশিন লার্নিং মডেলগুলি কেবল ফ্লোটিং-পয়েন্ট সংখ্যাগুলিকেই ম্যানিপুলেট করতে পারে। অতএব, আপনাকে প্রতিটি স্ট্রিংকে একটি অনন্য সূচক সংখ্যায় রূপান্তর করতে হবে, যেমনটি নিম্নলিখিত চিত্রে দেখানো হয়েছে:
স্ট্রিংগুলিকে অনন্য সূচক সংখ্যায় রূপান্তর করার পরে, আপনাকে ডেটাটিকে আরও প্রক্রিয়া করতে হবে যাতে এটি এমনভাবে উপস্থাপন করা যায় যা মডেলটিকে মানগুলির মধ্যে অর্থপূর্ণ সম্পর্ক শিখতে সাহায্য করে। যদি শ্রেণীবদ্ধ বৈশিষ্ট্য ডেটা সূচীকৃত পূর্ণসংখ্যা হিসাবে রেখে একটি মডেলে লোড করা হয়, তাহলে মডেলটি সূচীকৃত মানগুলিকে ক্রমাগত ভাসমান-বিন্দু সংখ্যা হিসাবে বিবেচনা করবে। এরপর মডেলটি "বেগুনি" রঙকে "কমলা" রঙের চেয়ে ছয় গুণ বেশি সম্ভাবনাময় বিবেচনা করবে।
এক-গরম এনকোডিং
শব্দভাণ্ডার তৈরির পরবর্তী ধাপ হল প্রতিটি সূচক সংখ্যাকে তার এক-গরম এনকোডিংয়ে রূপান্তর করা। এক-গরম এনকোডিংয়ে:
- প্রতিটি বিভাগকে N উপাদানের একটি ভেক্টর (অ্যারে) দ্বারা প্রতিনিধিত্ব করা হয়, যেখানে N হল বিভাগের সংখ্যা। উদাহরণস্বরূপ, যদি
car_colorআটটি সম্ভাব্য বিভাগ থাকে, তাহলে প্রতিনিধিত্বকারী এক-গরম ভেক্টরের আটটি উপাদান থাকবে। - একটি এক-গরম ভেক্টরের উপাদানগুলির মধ্যে একটির মান 1.0; বাকি সমস্ত উপাদানের মান 0.0।
উদাহরণস্বরূপ, নিম্নলিখিত টেবিলটি car_color এ প্রতিটি রঙের জন্য এক-গরম এনকোডিং দেখায়:
| বৈশিষ্ট্য | লাল | কমলা | নীল | হলুদ | সবুজ | কালো | বেগুনি | বাদামী |
|---|---|---|---|---|---|---|---|---|
| "লাল" | ১ | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| "কমলা" | 0 | ১ | 0 | 0 | 0 | 0 | 0 | 0 |
| "নীল" | 0 | 0 | ১ | 0 | 0 | 0 | 0 | 0 |
| "হলুদ" | 0 | 0 | 0 | ১ | 0 | 0 | 0 | 0 |
| "সবুজ" | 0 | 0 | 0 | 0 | ১ | 0 | 0 | 0 |
| "কালো" | 0 | 0 | 0 | 0 | 0 | ১ | 0 | 0 |
| "বেগুনি" | 0 | 0 | 0 | 0 | 0 | 0 | ১ | 0 |
| "বাদামী" | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ১ |
এটি একটি-গরম ভেক্টর, স্ট্রিং বা সূচক সংখ্যা নয়, যা বৈশিষ্ট্য ভেক্টরে প্রেরণ করা হয়। মডেলটি বৈশিষ্ট্য ভেক্টরের প্রতিটি উপাদানের জন্য একটি পৃথক ওজন শিখে।
নিম্নলিখিত চিত্রটি শব্দভান্ডার উপস্থাপনার বিভিন্ন রূপান্তরের পরামর্শ দেয়:
বিক্ষিপ্ত উপস্থাপনা
যে বৈশিষ্ট্যের মান প্রধানত শূন্য (অথবা খালি) তাকে স্পার্স বৈশিষ্ট্য বলা হয়। অনেক শ্রেণীবদ্ধ বৈশিষ্ট্য, যেমন car_color , স্পার্স বৈশিষ্ট্য হতে থাকে। স্পার্স উপস্থাপনা বলতে একটি স্পার্স ভেক্টরে 1.0 এর অবস্থান সংরক্ষণ করা বোঝায়। উদাহরণস্বরূপ, "Blue" এর জন্য এক-গরম ভেক্টর হল:
[০, ০, ১, ০, ০, ০, ০, ০]
যেহেতু 1 অবস্থান 2 তে রয়েছে (যখন 0 থেকে গণনা শুরু করা হয়), পূর্ববর্তী এক-গরম ভেক্টরের জন্য স্পার্স উপস্থাপনা হল:
২
লক্ষ্য করুন যে স্পার্স রিপ্রেজেন্টেশন আট-এলিমেন্টের এক-গরম ভেক্টরের তুলনায় অনেক কম মেমোরি খরচ করে। গুরুত্বপূর্ণভাবে, মডেলটিকে অবশ্যই এক-গরম ভেক্টরের উপর প্রশিক্ষণ নিতে হবে, স্পার্স রিপ্রেজেন্টেশনের উপর নয়।
শ্রেণীবদ্ধ তথ্যের বহিরাগত
সংখ্যাসূচক তথ্যের মতো, শ্রেণীবদ্ধ তথ্যেও বহির্মুখী তথ্য থাকে। ধরুন car_color কেবল জনপ্রিয় রঙই নেই, বরং কিছু বিরল ব্যবহৃত বহির্মুখী রঙও রয়েছে, যেমন "Mauve" বা "Avocado" । এই বহির্মুখী রঙগুলিকে আলাদা বিভাগ দেওয়ার পরিবর্তে, আপনি এগুলিকে " আউট-অফ-ভোকাবুলারি" (OOV) নামক একটি একক "ক্যাচ-অল" বিভাগে একত্রিত করতে পারেন। অন্য কথায়, সমস্ত বহির্মুখী রঙ একটি একক বহির্মুখী বাকেটে জমা করা হয়। সিস্টেমটি সেই বহির্মুখী বাকেটের জন্য একটি একক ওজন শেখে।
উচ্চ-মাত্রিক শ্রেণীগত বৈশিষ্ট্যগুলি এনকোডিং করা হচ্ছে
কিছু শ্রেণীবদ্ধ বৈশিষ্ট্যের মাত্রা অনেক বেশি, যেমন নিম্নলিখিত টেবিলে দেখানো হয়েছে:
| বৈশিষ্ট্যের নাম | #টি বিভাগের | নমুনা বিভাগ |
|---|---|---|
| ইংরেজিতে_শব্দ | ~৫০০,০০০ | "খুশি", "হাঁটা" |
| ইউএস_পোস্টাল_কোড | ~৪২,০০০ | "০২১১৪", "৯০৩০১" |
| জার্মানিতে_শেষ_নাম | ~৮৫০,০০০ | "শ্মিট", "স্নাইডার" |
যখন বিভাগের সংখ্যা বেশি থাকে, তখন এক-গরম এনকোডিং সাধারণত একটি খারাপ পছন্দ। Embeddings , যা একটি পৃথক Embeddings মডিউলে বিস্তারিতভাবে বর্ণনা করা হয়েছে, সাধারণত অনেক ভালো পছন্দ। Embeddings মাত্রার সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করে, যা মডেলগুলিকে দুটি গুরুত্বপূর্ণ উপায়ে উপকৃত করে:
- মডেলটি সাধারণত দ্রুত ট্রেন চালায়।
- নির্মিত মডেলটি সাধারণত আরও দ্রুত ভবিষ্যদ্বাণী করে। অর্থাৎ, মডেলটির ল্যাটেন্সি কম।
হ্যাশিং (যাকে হ্যাশিং ট্রিকও বলা হয়) মাত্রার সংখ্যা কমানোর একটি কম সাধারণ উপায়।
অনুশীলন: আপনার বোধগম্যতা পরীক্ষা করুন
"Red" স্ট্রিংটি কোনও ভাসমান-বিন্দু সংখ্যা নয়। আপনাকে "Red" এর মতো স্ট্রিংগুলিকে ভাসমান-বিন্দু সংখ্যায় রূপান্তর করতে হবে।