لقد اكتشفنا طرقًا لتعيين البيانات الأولية إلى متجهات خصائص مناسبة، ولكن هذا جزء فقط من العمل. يجب علينا الآن استكشاف أنواع القيم التي تجعل ميزات جيدة بالفعل داخل متجهات الميزات هذه.
تجنَّب استخدام قيم الخصائص المنفصلة التي نادرًا ما يتم استخدامها.
يجب أن تظهر قيم الخصائص الجيدة أكثر من 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"