শ্রেণীগত তথ্য: শব্দভান্ডার এবং এক-হট এনকোডিং

পরিমাপ শব্দটি একটি বৈশিষ্ট্য ভেক্টরের উপাদানগুলির সংখ্যার প্রতিশব্দ। কিছু শ্রেণীগত বৈশিষ্ট্য নিম্ন মাত্রিক। যেমন:

বৈশিষ্ট্যের নাম #টি বিভাগ নমুনা বিভাগ
তুষারপাত_আজ 2 সত্য, মিথ্যা
দক্ষতা_স্তর 3 শিক্ষানবিস, অনুশীলনকারী, বিশেষজ্ঞ
ঋতু 4 শীত, বসন্ত, গ্রীষ্ম, শরৎ
সপ্তাহের_দিন 7 সোমবার, মঙ্গলবার, বুধবার
গ্রহ 8 বুধ, শুক্র, পৃথিবী

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

উদাহরণ স্বরূপ, ধরুন আপনি car_color নামের একটি স্বতন্ত্র বৈশিষ্ট্যের উপর ভিত্তি করে একটি গাড়ির দামের পূর্বাভাস দেওয়ার জন্য একটি মডেল তৈরি করছেন। সম্ভবত লাল গাড়ির মূল্য সবুজ গাড়ির চেয়ে বেশি। যেহেতু নির্মাতারা সীমিত সংখ্যক বাহ্যিক রং অফার করে, car_color হল একটি নিম্ন-মাত্রিক শ্রেণীগত বৈশিষ্ট্য। নিম্নলিখিত চিত্রটি car_color এর জন্য একটি শব্দভান্ডার (সম্ভাব্য মান) প্রস্তাব করে:

চিত্র 1. প্যালেটের প্রতিটি রঙ একটি পৃথক বৈশিষ্ট্য হিসাবে উপস্থাপন করা হয়েছে। অর্থাৎ ফিচার ভেক্টরে প্রতিটি রঙই আলাদা বৈশিষ্ট্য।       উদাহরণস্বরূপ, 'লাল' একটি বৈশিষ্ট্য, 'কমলা' একটি পৃথক বৈশিষ্ট্য, ইত্যাদি।
চিত্র 1. প্রতিটি বিভাগের জন্য একটি অনন্য বৈশিষ্ট্য।

ব্যায়াম: আপনার অন্তর্দৃষ্টি পরীক্ষা করুন

সত্য বা মিথ্যা: একটি মেশিন লার্নিং মডেল এই মানগুলিকে সংখ্যাসূচক ভেক্টরে রূপান্তর না করে সরাসরি "লাল" এবং "কালো" এর মতো কাঁচা স্ট্রিং মানগুলিতে প্রশিক্ষণ দিতে পারে।
সত্য
মিথ্যা

সূচক সংখ্যা

মেশিন লার্নিং মডেলগুলি শুধুমাত্র ফ্লোটিং-পয়েন্ট নম্বরগুলিকে ম্যানিপুলেট করতে পারে। অতএব, আপনাকে অবশ্যই প্রতিটি স্ট্রিংকে একটি অনন্য সূচক নম্বরে রূপান্তর করতে হবে, যেমনটি নিম্নলিখিত চিত্রে রয়েছে:

চিত্র 2. প্রতিটি রঙ একটি অনন্য পূর্ণসংখ্যা মানের সাথে যুক্ত। উদাহরণস্বরূপ, 'লাল' পূর্ণসংখ্যা 0 এর সাথে যুক্ত, 'কমলা' পূর্ণসংখ্যা 1 এর সাথে, ইত্যাদি।
চিত্র 2. সূচিবদ্ধ বৈশিষ্ট্য।

আপনার অন্তর্দৃষ্টি পরীক্ষা করুন

আপনার মডেল কি সরাসরি চিত্র 2-এ দেখানো সূচী সংখ্যার উপর ট্রেনিং করা উচিত?
হ্যাঁ
না

এক-গরম এনকোডিং

একটি শব্দভান্ডার তৈরির পরবর্তী ধাপ হল প্রতিটি সূচক নম্বরকে তার এক-হট এনকোডিং -এ রূপান্তর করা। এক-হট এনকোডিং-এ:

  • প্রতিটি বিভাগকে N উপাদানগুলির একটি ভেক্টর (অ্যারে) দ্বারা প্রতিনিধিত্ব করা হয়, যেখানে N হল বিভাগের সংখ্যা। উদাহরণস্বরূপ, যদি car_color আটটি সম্ভাব্য বিভাগ থাকে, তাহলে প্রতিনিধিত্বকারী এক-হট ভেক্টরের আটটি উপাদান থাকবে।
  • এক-গরম ভেক্টরের উপাদানগুলির মধ্যে একটির মান 1.0 আছে; বাকি সব উপাদানের মান 0.0 আছে।

উদাহরণস্বরূপ, নিম্নলিখিত টেবিলটি car_color এ প্রতিটির জন্য এক-হট এনকোডিং দেখায়:

বৈশিষ্ট্য লাল কমলা নীল হলুদ সবুজ কালো বেগুনি বাদামী
"লাল" 1 0 0 0 0 0 0 0
"কমলা" 0 1 0 0 0 0 0 0
"নীল" 0 0 1 0 0 0 0 0
"হলুদ" 0 0 0 1 0 0 0 0
"সবুজ" 0 0 0 0 1 0 0 0
"কালো" 0 0 0 0 0 1 0 0
"বেগুনি" 0 0 0 0 0 0 1 0
"বাদামী" 0 0 0 0 0 0 0 1

এটি এক-হট ভেক্টর, স্ট্রিং বা সূচক নম্বর নয়, যা বৈশিষ্ট্য ভেক্টরে পাস হয়। মডেলটি বৈশিষ্ট্য ভেক্টরের প্রতিটি উপাদানের জন্য একটি পৃথক ওজন শেখে।

নিম্নলিখিত চিত্রটি শব্দভান্ডার উপস্থাপনার বিভিন্ন রূপান্তরের পরামর্শ দেয়:

চিত্র 3. বৈশিষ্ট্য ভেক্টরের জন্য বিভাগগুলি ম্যাপ করার জন্য এন্ড-টু-এন্ড প্রক্রিয়ার ডায়াগ্রাম। ডায়াগ্রামে, ইনপুট বৈশিষ্ট্যগুলি হল 'হলুদ', 'কমলা', 'নীল', এবং 'নীল' দ্বিতীয়বার।  একটি আইডিতে ইনপুট মান ম্যাপ করতে সিস্টেমটি একটি সংরক্ষিত শব্দভান্ডার ব্যবহার করে ('লাল' হল 0, 'কমলা' হল 1, 'নীল' হল 2, 'হলুদ' হল 3 এবং আরও অনেক কিছু)। এইভাবে, সিস্টেম মানচিত্র 'হলুদ', 'কমলা', 'নীল', এবং 'নীল'-কে 3, 1, 2, 2-এ রূপান্তরিত করে। সিস্টেম তারপর সেই মানগুলিকে এক-হট বৈশিষ্ট্য ভেক্টরে রূপান্তর করে। উদাহরণস্বরূপ, আটটি সম্ভাব্য রঙ সহ একটি সিস্টেম দেওয়া হলে, 3 0, 0, 0, 1, 0, 0, 0, 0 হয়ে যায়।
চিত্র 3. বৈশিষ্ট্য ভেক্টরের জন্য বিভাগগুলি ম্যাপ করার শেষ থেকে শেষ প্রক্রিয়া।

বিক্ষিপ্ত প্রতিনিধিত্ব

একটি বৈশিষ্ট্য যার মান প্রধানত শূন্য (বা খালি) একটি স্পার্স বৈশিষ্ট্য বলা হয়। অনেক শ্রেণীবদ্ধ বৈশিষ্ট্য, যেমন car_color , স্পার্স বৈশিষ্ট্য হতে থাকে। স্পার্স রিপ্রেজেন্টেশন মানে স্পার্স ভেক্টরে 1.0 এর অবস্থান সংরক্ষণ করা। উদাহরণস্বরূপ, "Blue" এর জন্য এক-গরম ভেক্টর হল:

[0, 0, 1, 0, 0, 0, 0, 0]

যেহেতু 1 পজিশন 2 এ রয়েছে (0 এ গণনা শুরু করার সময়), পূর্ববর্তী ওয়ান-হট ভেক্টরের জন্য স্পার্স উপস্থাপনা হল:

2

লক্ষ্য করুন যে স্পার্স উপস্থাপনা আট-উপাদান এক-হট ভেক্টরের তুলনায় অনেক কম মেমরি গ্রহণ করে। গুরুত্বপূর্ণভাবে, মডেলটিকে অবশ্যই ওয়ান-হট ভেক্টরে প্রশিক্ষণ দিতে হবে, স্পার্স উপস্থাপনা নয়।

সুনির্দিষ্ট তথ্যে বহিরাগত

সাংখ্যিক তথ্যের মতো, শ্রেণীবদ্ধ ডেটাতেও বহিরাগত থাকে। ধরুন car_color শুধুমাত্র জনপ্রিয় রংই নয়, কিছু কমই ব্যবহৃত আউটলিয়ার রংও রয়েছে, যেমন "Mauve" বা "Avocado" । এই বহিরাগত রঙগুলির প্রতিটিকে একটি পৃথক বিভাগ দেওয়ার পরিবর্তে, আপনি সেগুলিকে আউট-অফ-ভোকাবুলারি (OOV) নামে একটি একক "ক্যাচ-অল" বিভাগে নিয়ে যেতে পারেন। অন্য কথায়, সমস্ত বহিরাগত রং একটি একক আউটলার বালতিতে বাঁধা হয়। সিস্টেমটি সেই আউটলায়ার বালতির জন্য একটি একক ওজন শেখে।

উচ্চ-মাত্রিক শ্রেণীগত বৈশিষ্ট্য এনকোডিং

কিছু শ্রেণীগত বৈশিষ্ট্যের উচ্চ সংখ্যক মাত্রা রয়েছে, যেমন নিম্নোক্ত সারণীতে রয়েছে:

বৈশিষ্ট্যের নাম #টি বিভাগ নমুনা বিভাগ
ইংরেজিতে_শব্দ ~500,000 "খুশি", "হাঁটা"
US_postal_codes ~42,000 "02114", "90301"
শেষ_নাম_জার্মানিতে ~850,000 "শ্মিড্ট", "স্নাইডার"

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

  • মডেলটি সাধারণত দ্রুত ট্রেনিং করে।
  • নির্মিত মডেলটি সাধারণত আরও দ্রুত ভবিষ্যদ্বাণী করে। যে, মডেল কম লেটেন্সি আছে.

হ্যাশিং (এটিকে হ্যাশিং ট্রিকও বলা হয়) মাত্রার সংখ্যা কমানোর একটি কম সাধারণ উপায়।

সংক্ষেপে, হ্যাশিং একটি বিভাগকে (উদাহরণস্বরূপ, একটি রঙ) একটি ছোট পূর্ণসংখ্যাতে ম্যাপ করে - "বালতি" এর সংখ্যা যা সেই বিভাগটিকে ধরে রাখবে।

বিস্তারিতভাবে, আপনি নিম্নরূপ একটি হ্যাশিং অ্যালগরিদম প্রয়োগ করুন:

  1. বিভাগগুলির ভেক্টরে বিনের সংখ্যা N এ সেট করুন, যেখানে N অবশিষ্ট বিভাগের মোট সংখ্যার চেয়ে কম। একটি নির্বিচারে উদাহরণ হিসাবে, N = 100 বলুন।
  2. একটি হ্যাশ ফাংশন চয়ন করুন. (প্রায়শই, আপনি হ্যাশ মানগুলির পরিসরও বেছে নেবেন।)
  3. হ্যাশ ফাংশনের মাধ্যমে প্রতিটি বিভাগ (উদাহরণস্বরূপ, একটি নির্দিষ্ট রঙ) পাস করুন, একটি হ্যাশ মান তৈরি করুন, বলুন 89237।
  4. প্রতিটি বিনকে আউটপুট হ্যাশ মান মডিউলের একটি সূচক নম্বর বরাদ্দ করুন। এই ক্ষেত্রে, যেখানে N হল 100 এবং হ্যাশের মান হল 89237, মডুলোর ফলাফল হল 37 কারণ 89237 % 100 হল 37৷
  5. এই নতুন সূচক নম্বরগুলির সাথে প্রতিটি বিনের জন্য একটি এক-হট এনকোডিং তৈরি করুন৷

হ্যাশিং ডেটা সম্পর্কে আরও বিশদের জন্য, প্রোডাকশন মেশিন লার্নিং সিস্টেম মডিউলের র্যান্ডমাইজেশন বিভাগটি দেখুন।