প্রতিনিধিত্ব: ফিচার ইঞ্জিনিয়ারিং

ঐতিহ্যগত প্রোগ্রামিংয়ে, ফোকাস কোডের উপর। মেশিন লার্নিং প্রকল্পগুলিতে, ফোকাস প্রতিনিধিত্বে স্থানান্তরিত হয়। অর্থাৎ, ডেভেলপাররা একটি মডেলকে উন্নত করার একটি উপায় হল এর বৈশিষ্ট্যগুলি যোগ করা এবং উন্নত করা।

বৈশিষ্ট্যগুলিতে কাঁচা ডেটা ম্যাপিং

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

অনেক মেশিন লার্নিং মডেলের বৈশিষ্ট্যগুলিকে বাস্তব-সংখ্যাযুক্ত ভেক্টর হিসাবে উপস্থাপন করতে হবে কারণ বৈশিষ্ট্যের মানগুলিকে অবশ্যই মডেল ওজন দ্বারা গুণ করতে হবে।

ফিচার ইঞ্জিনিয়ারিং নামক একটি প্রক্রিয়ার মাধ্যমে ফিচার ভেক্টরে কাঁচা ডেটা ম্যাপ করা হয়।

চিত্র 1. ফিচার ইঞ্জিনিয়ারিং ML বৈশিষ্ট্যগুলিতে কাঁচা ডেটা ম্যাপ করে।

সংখ্যাসূচক মান ম্যাপিং

পূর্ণসংখ্যা এবং ফ্লোটিং-পয়েন্ট ডেটার একটি বিশেষ এনকোডিংয়ের প্রয়োজন নেই কারণ সেগুলিকে একটি সাংখ্যিক ওজন দ্বারা গুণ করা যেতে পারে। চিত্র 2-এ যেমন পরামর্শ দেওয়া হয়েছে, কাঁচা পূর্ণসংখ্যার মান 6 কে বৈশিষ্ট্য মান 6.0-তে রূপান্তর করা তুচ্ছ:

একটি বৈশিষ্ট্যের একটি উদাহরণ যা সরাসরি কাঁচা ডেটা থেকে অনুলিপি করা যেতে পারে

চিত্র 2. ফ্লোটিং-পয়েন্ট মানগুলিতে পূর্ণসংখ্যার মান ম্যাপিং।

শ্রেণীগত মান ম্যাপিং

শ্রেণীবদ্ধ বৈশিষ্ট্যের সম্ভাব্য মানগুলির একটি পৃথক সেট রয়েছে। উদাহরণস্বরূপ, street_name নামে একটি বৈশিষ্ট্য থাকতে পারে যার মধ্যে রয়েছে:

{'Charleston Road', 'North Shoreline Boulevard', 'Shorebird Way', 'Rengstorff Avenue'}

যেহেতু মডেলগুলি শেখা ওজন দ্বারা স্ট্রিংগুলিকে গুণ করতে পারে না, তাই আমরা স্ট্রিংগুলিকে সাংখ্যিক মানগুলিতে রূপান্তর করতে বৈশিষ্ট্য প্রকৌশল ব্যবহার করি।

আমরা বৈশিষ্ট্য মান থেকে একটি ম্যাপিং সংজ্ঞায়িত করে এটি সম্পন্ন করতে পারি, যাকে আমরা সম্ভাব্য মানের শব্দভাণ্ডার হিসাবে পূর্ণসংখ্যা হিসাবে উল্লেখ করব। যেহেতু বিশ্বের প্রতিটি রাস্তা আমাদের ডেটাসেটে উপস্থিত হবে না, তাই আমরা অন্যান্য সমস্ত রাস্তাকে একটি ক্যাচ-অল "অন্যান্য" বিভাগে গ্রুপ করতে পারি, যা একটি OOV (শব্দের বাইরে) বালতি হিসাবে পরিচিত৷

এই পদ্ধতিটি ব্যবহার করে, এখানে আমরা কীভাবে আমাদের রাস্তার নামগুলিকে সংখ্যায় ম্যাপ করতে পারি:

  • ম্যাপ চার্লসটন রোড থেকে 0
  • নর্থ শোরলাইন বুলেভার্ড থেকে 1 মানচিত্র
  • মানচিত্র শোরবার্ড ওয়ে টু 2
  • মানচিত্র রেংস্টরফ এভিনিউ থেকে 3
  • অন্য সব কিছুর মানচিত্র (OOV) 4 এ

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

  • আমরা একটি একক ওজন শিখব যা সমস্ত রাস্তায় প্রযোজ্য। উদাহরণস্বরূপ, আমরা যদি street_name জন্য 6 এর ওজন শিখি, তাহলে আমরা চার্লসটন রোডের জন্য এটিকে 0 দ্বারা, উত্তর শোরলাইন বুলেভার্ডের জন্য 1 দ্বারা, শোরবার্ড ওয়ের জন্য 2 দ্বারা গুণ করব। একটি মডেল বিবেচনা করুন যা একটি বৈশিষ্ট্য হিসাবে street_name ব্যবহার করে বাড়ির দামের পূর্বাভাস দেয়৷ এটা অসম্ভাব্য যে রাস্তার নামের উপর ভিত্তি করে দামের একটি রৈখিক সামঞ্জস্য আছে, এবং আরও এটি অনুমান করবে যে আপনি তাদের গড় বাড়ির দামের উপর ভিত্তি করে রাস্তাগুলি অর্ডার করেছেন৷ আমাদের মডেলের প্রতিটি রাস্তার জন্য বিভিন্ন ওজন শেখার নমনীয়তা প্রয়োজন যা অন্যান্য বৈশিষ্ট্যগুলি ব্যবহার করে আনুমানিক মূল্যের সাথে যোগ করা হবে।

  • street_name একাধিক মান নিতে পারে এমন ক্ষেত্রে আমরা হিসাব করছি না। উদাহরণ স্বরূপ, অনেক বাড়ি দুটি রাস্তার কোণে অবস্থিত, এবং street_name মানতে সেই তথ্য এনকোড করার কোনো উপায় নেই যদি এতে একটি একক সূচক থাকে।

এই উভয় সীমাবদ্ধতা দূর করতে, আমরা পরিবর্তে আমাদের মডেলের প্রতিটি শ্রেণীবদ্ধ বৈশিষ্ট্যের জন্য একটি বাইনারি ভেক্টর তৈরি করতে পারি যা নিম্নরূপ মানগুলিকে উপস্থাপন করে:

  • উদাহরণে প্রযোজ্য মানগুলির জন্য, সংশ্লিষ্ট ভেক্টর উপাদানগুলি 1 এ সেট করুন।
  • অন্যান্য সমস্ত উপাদান 0 এ সেট করুন।

এই ভেক্টরের দৈর্ঘ্য শব্দভান্ডারের উপাদানগুলির সংখ্যার সমান। এই উপস্থাপনাকে এক-হট এনকোডিং বলা হয় যখন একটি একক মান 1 হয় এবং একাধিক মান 1 হলে একটি বহু-হট এনকোডিং

চিত্র 3 একটি নির্দিষ্ট রাস্তার এক-হট এনকোডিং চিত্রিত করে: শোরবার্ড ওয়ে। শোরবার্ড ওয়ের বাইনারি ভেক্টরের উপাদানটির মান 1 , অন্য সমস্ত রাস্তার উপাদানগুলির মান 0

একটি স্ট্রিং মান ম্যাপিং (

চিত্র 3. ওয়ান-হট এনকোডিংয়ের মাধ্যমে রাস্তার ঠিকানা ম্যাপিং।

এই পদ্ধতি কার্যকরভাবে প্রতিটি বৈশিষ্ট্য মান (যেমন, রাস্তার নাম) জন্য একটি বুলিয়ান পরিবর্তনশীল তৈরি করে। এখানে, যদি একটি বাড়ি শোরবার্ড ওয়েতে হয় তবে বাইনারি মান 1 শুধুমাত্র শোরবার্ড ওয়ের জন্য। সুতরাং, মডেলটি শোরবার্ড ওয়ের জন্য শুধুমাত্র ওজন ব্যবহার করে।

একইভাবে, যদি একটি বাড়ি দুটি রাস্তার কোণে থাকে, তাহলে দুটি বাইনারি মান 1 এ সেট করা হয় এবং মডেলটি তাদের নিজ নিজ ওজন উভয়ই ব্যবহার করে।

স্পারস রিপ্রেজেন্টেশন

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