আমরা উপযুক্ত বৈশিষ্ট্য ভেক্টরগুলিতে কাঁচা ডেটা ম্যাপ করার উপায়গুলি অন্বেষণ করেছি, কিন্তু এটি শুধুমাত্র কাজের অংশ। আমাদের এখন অন্বেষণ করতে হবে যে কী ধরনের মান আসলে সেই বৈশিষ্ট্য ভেক্টরগুলির মধ্যে ভাল বৈশিষ্ট্য তৈরি করে।
কদাচিৎ ব্যবহৃত বিচ্ছিন্ন বৈশিষ্ট্য মান এড়িয়ে চলুন
ভাল বৈশিষ্ট্য মান একটি ডেটা সেটে 5 বা তার বেশি বার প্রদর্শিত হওয়া উচিত। এটি করার ফলে এই বৈশিষ্ট্যটির মান লেবেলের সাথে কীভাবে সম্পর্কিত তা শিখতে একটি মডেলকে সক্ষম করে৷ অর্থাৎ, একই বিচ্ছিন্ন মানের সাথে অনেকগুলি উদাহরণ থাকা মডেলটিকে বিভিন্ন সেটিংসে বৈশিষ্ট্যটি দেখার সুযোগ দেয় এবং পরিবর্তে, লেবেলের জন্য কখন এটি একটি ভাল ভবিষ্যদ্বাণীকারী তা নির্ধারণ করে৷ উদাহরণস্বরূপ, একটি house_type
বৈশিষ্ট্য সম্ভবত অনেক উদাহরণ থাকতে পারে যেখানে এর মান ছিল victorian
:
✔This is a good example:house_type: victorian
বিপরীতভাবে, যদি একটি বৈশিষ্ট্যের মান শুধুমাত্র একবার বা খুব কমই প্রদর্শিত হয়, মডেলটি সেই বৈশিষ্ট্যের উপর ভিত্তি করে ভবিষ্যদ্বাণী করতে পারে না। উদাহরণস্বরূপ, unique_house_id
একটি খারাপ বৈশিষ্ট্য কারণ প্রতিটি মান শুধুমাত্র একবার ব্যবহার করা হবে, তাই মডেলটি এটি থেকে কিছু শিখতে পারেনি:
The following is an example of a unique value. This should be avoided.✘unique_house_id: 8SK982ZZ1242Z
স্পষ্ট এবং সুস্পষ্ট অর্থ পছন্দ করুন
প্রতিটি বৈশিষ্ট্য প্রকল্পের যে কারো কাছে একটি পরিষ্কার এবং সুস্পষ্ট অর্থ থাকা উচিত। উদাহরণস্বরূপ, নিম্নলিখিত ভাল বৈশিষ্ট্যটি পরিষ্কারভাবে নামকরণ করা হয়েছে এবং নামটির সাথে মানটি বোঝা যায়:
✔The meaning of the following value is clear from the label and value.house_age_years: 27
বিপরীতভাবে, নিম্নলিখিত বৈশিষ্ট্যের মানটির অর্থটি যে প্রকৌশলী এটি তৈরি করেছেন তাদের কাছে এটি প্রায় অনির্বচনীয়:
✘The following is an example of a value that is unclear. This should be avoidedhouse_age: 851472000
কিছু ক্ষেত্রে, কোলাহলপূর্ণ ডেটা (খারাপ ইঞ্জিনিয়ারিং পছন্দের পরিবর্তে) অস্পষ্ট মান সৃষ্টি করে। উদাহরণ স্বরূপ, নিম্নলিখিত user_age_years একটি উৎস থেকে এসেছে যা উপযুক্ত মান পরীক্ষা করেনি:
✘The following is an example of noisy/bad data. This should be avoided.user_age_years: 277
প্রকৃত তথ্যের সাথে "জাদু" মান মিশ্রিত করবেন না
ভাল ফ্লোটিং-পয়েন্ট বৈশিষ্ট্যগুলিতে বিশেষ সীমার বাইরের বিচ্ছিন্নতা বা "জাদু" মান থাকে না। উদাহরণস্বরূপ, ধরুন একটি বৈশিষ্ট্য 0 এবং 1 এর মধ্যে একটি ফ্লোটিং-পয়েন্ট মান ধারণ করে। সুতরাং, নিম্নলিখিত মানগুলি ঠিক আছে:
✔The following is a good example:quality_rating: 0.82 quality_rating: 0.37
যাইহোক, যদি একজন ব্যবহারকারী একটি quality_rating
প্রবেশ না করে, সম্ভবত ডেটা সেটটি নিম্নলিখিতগুলির মতো একটি জাদু মান সহ তার অনুপস্থিতিকে উপস্থাপন করে:
✘The following is an example of a magic value. This should be avoided.quality_rating: -1
স্পষ্টভাবে ম্যাজিক মান চিহ্নিত করতে, একটি বুলিয়ান বৈশিষ্ট্য তৈরি করুন যা নির্দেশ করে যে একটি quality_rating
সরবরাহ করা হয়েছে কিনা। এই বুলিয়ান বৈশিষ্ট্যটিকে একটি নাম দিন যেমন is_quality_rating_defined
।
মূল বৈশিষ্ট্যে, নিম্নলিখিত হিসাবে যাদু মান প্রতিস্থাপন করুন:
- ভেরিয়েবলগুলির জন্য যেগুলি মানগুলির একটি সসীম সেট (বিচ্ছিন্ন ভেরিয়েবল) নেয়, সেটটিতে একটি নতুন মান যুক্ত করুন এবং বৈশিষ্ট্য মানটি অনুপস্থিত তা বোঝাতে এটি ব্যবহার করুন।
- ক্রমাগত ভেরিয়েবলের জন্য, বৈশিষ্ট্যের ডেটার গড় মান ব্যবহার করে অনুপস্থিত মানগুলি মডেলকে প্রভাবিত করে না তা নিশ্চিত করুন৷
আপস্ট্রিম অস্থিরতার জন্য অ্যাকাউন্ট
একটি বৈশিষ্ট্যের সংজ্ঞা সময়ের সাথে পরিবর্তন করা উচিত নয়। উদাহরণস্বরূপ, নিম্নলিখিত মানটি কার্যকর কারণ শহরের নাম সম্ভবত পরিবর্তন হবে না। (মনে রাখবেন যে আমাদের এখনও "br/sao_paulo" এর মতো একটি স্ট্রিংকে এক-হট ভেক্টরে রূপান্তর করতে হবে।)
✔This is a good example:city_id: "br/sao_paulo"
কিন্তু অন্য মডেলের দ্বারা অনুমান করা মান সংগ্রহের জন্য অতিরিক্ত খরচ বহন করে। সম্ভবত "219" মানটি বর্তমানে সাও পাওলোকে প্রতিনিধিত্ব করে, কিন্তু সেই প্রতিনিধিত্বটি অন্য মডেলের ভবিষ্যত রানে সহজেই পরিবর্তিত হতে পারে:
✘The following is an example of a value that could change. This should be avoided.inferred_city_cluster: "219"