প্রতিনিধিত্ব: ভালো বৈশিষ্ট্যের গুণাবলী

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

কদাচিৎ ব্যবহৃত বিচ্ছিন্ন বৈশিষ্ট্য মান এড়িয়ে চলুন

ভাল বৈশিষ্ট্য মান একটি ডেটা সেটে 5 বা তার বেশি বার প্রদর্শিত হওয়া উচিত। এটি করার ফলে এই বৈশিষ্ট্যটির মান লেবেলের সাথে কীভাবে সম্পর্কিত তা শিখতে একটি মডেলকে সক্ষম করে৷ অর্থাৎ, একই বিচ্ছিন্ন মানের সাথে অনেকগুলি উদাহরণ থাকা মডেলটিকে বিভিন্ন সেটিংসে বৈশিষ্ট্যটি দেখার সুযোগ দেয় এবং পরিবর্তে, লেবেলের জন্য কখন এটি একটি ভাল ভবিষ্যদ্বাণীকারী তা নির্ধারণ করে৷ উদাহরণস্বরূপ, একটি house_type বৈশিষ্ট্য সম্ভবত অনেক উদাহরণ থাকতে পারে যেখানে এর মান ছিল victorian :

house_type: victorian

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

unique_house_id: 8SK982ZZ1242Z

স্পষ্ট এবং সুস্পষ্ট অর্থ পছন্দ করুন

প্রতিটি বৈশিষ্ট্য প্রকল্পের যে কারো কাছে একটি পরিষ্কার এবং সুস্পষ্ট অর্থ থাকা উচিত। উদাহরণস্বরূপ, নিম্নলিখিত ভাল বৈশিষ্ট্যটি পরিষ্কারভাবে নামকরণ করা হয়েছে এবং নামটির সাথে মানটি বোঝা যায়:

 house_age_years: 27 

বিপরীতভাবে, নিম্নলিখিত বৈশিষ্ট্যের মানটির অর্থটি যে প্রকৌশলী এটি তৈরি করেছেন তাদের কাছে এটি প্রায় অনির্বচনীয়:

house_age: 851472000

কিছু ক্ষেত্রে, কোলাহলপূর্ণ ডেটা (খারাপ ইঞ্জিনিয়ারিং পছন্দের পরিবর্তে) অস্পষ্ট মান সৃষ্টি করে। উদাহরণ স্বরূপ, নিম্নলিখিত user_age_years একটি উৎস থেকে এসেছে যা উপযুক্ত মান পরীক্ষা করেনি:

user_age_years: 277

প্রকৃত তথ্যের সাথে "জাদু" মান মিশ্রিত করবেন না

ভাল ফ্লোটিং-পয়েন্ট বৈশিষ্ট্যগুলিতে বিশেষ সীমার বাইরের বিচ্ছিন্নতা বা "জাদু" মান থাকে না। উদাহরণস্বরূপ, ধরুন একটি বৈশিষ্ট্য 0 এবং 1 এর মধ্যে একটি ফ্লোটিং-পয়েন্ট মান ধারণ করে। সুতরাং, নিম্নলিখিত মানগুলি ঠিক আছে:

quality_rating: 0.82
quality_rating: 0.37

যাইহোক, যদি একজন ব্যবহারকারী একটি quality_rating প্রবেশ না করে, সম্ভবত ডেটা সেটটি নিম্নলিখিতগুলির মতো একটি জাদু মান সহ তার অনুপস্থিতিকে উপস্থাপন করে:

quality_rating: -1

স্পষ্টভাবে ম্যাজিক মান চিহ্নিত করতে, একটি বুলিয়ান বৈশিষ্ট্য তৈরি করুন যা নির্দেশ করে যে একটি quality_rating সরবরাহ করা হয়েছে কিনা। এই বুলিয়ান বৈশিষ্ট্যটিকে একটি নাম দিন যেমন is_quality_rating_defined

মূল বৈশিষ্ট্যে, নিম্নলিখিত হিসাবে যাদু মান প্রতিস্থাপন করুন:

  • ভেরিয়েবলগুলির জন্য যেগুলি মানগুলির একটি সসীম সেট (বিচ্ছিন্ন ভেরিয়েবল) নেয়, সেটটিতে একটি নতুন মান যুক্ত করুন এবং বৈশিষ্ট্য মানটি অনুপস্থিত তা বোঝাতে এটি ব্যবহার করুন।
  • ক্রমাগত ভেরিয়েবলের জন্য, বৈশিষ্ট্যের ডেটার গড় মান ব্যবহার করে অনুপস্থিত মানগুলি মডেলকে প্রভাবিত করে না তা নিশ্চিত করুন৷

আপস্ট্রিম অস্থিরতার জন্য অ্যাকাউন্ট

একটি বৈশিষ্ট্যের সংজ্ঞা সময়ের সাথে পরিবর্তন করা উচিত নয়। উদাহরণস্বরূপ, নিম্নলিখিত মানটি কার্যকর কারণ শহরের নাম সম্ভবত পরিবর্তন হবে না। (মনে রাখবেন যে আমাদের এখনও "br/sao_paulo" এর মতো একটি স্ট্রিংকে এক-হট ভেক্টরে রূপান্তর করতে হবে।)

city_id: "br/sao_paulo"

কিন্তু অন্য মডেলের দ্বারা অনুমান করা মান সংগ্রহের জন্য অতিরিক্ত খরচ বহন করে। সম্ভবত "219" মানটি বর্তমানে সাও পাওলোকে প্রতিনিধিত্ব করে, কিন্তু সেই প্রতিনিধিত্বটি অন্য মডেলের ভবিষ্যত রানে সহজেই পরিবর্তিত হতে পারে:

inferred_city_cluster: "219"