نمایندگی: کیفیت ویژگی های خوب

ما راه هایی را برای نگاشت داده های خام به بردارهای ویژگی مناسب بررسی کرده ایم، اما این تنها بخشی از کار است. اکنون باید بررسی کنیم که چه نوع مقادیری در واقع ویژگی های خوبی را در آن بردارهای ویژگی ایجاد می کنند.

از مقادیر ویژگی های گسسته که به ندرت استفاده می شود خودداری کنید

مقادیر ویژگی خوب باید بیش از 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 ارائه شده است یا خیر. به این ویژگی Boolean نامی مانند is_quality_rating_defined بدهید.

در ویژگی اصلی، مقادیر جادویی را به صورت زیر جایگزین کنید:

  • برای متغیرهایی که مجموعه‌ای محدود از مقادیر (متغیرهای گسسته) را می‌گیرند، یک مقدار جدید به مجموعه اضافه کنید و از آن برای نشان دادن عدم وجود مقدار ویژگی استفاده کنید.
  • برای متغیرهای پیوسته، با استفاده از مقدار میانگین داده‌های ویژگی، اطمینان حاصل کنید که مقادیر از دست رفته بر مدل تأثیر نمی‌گذارند.

دلیل بی ثباتی بالادست

تعریف یک ویژگی نباید در طول زمان تغییر کند. به عنوان مثال، مقدار زیر مفید است زیرا احتمالاً نام شهر تغییر نخواهد کرد. (توجه داشته باشید که ما همچنان باید رشته ای مانند "br/sao_paulo" را به یک بردار یک داغ تبدیل کنیم.)

city_id: "br/sao_paulo"

اما جمع‌آوری یک مقدار استنباط‌شده توسط مدل دیگر هزینه‌های بیشتری را به همراه دارد. شاید مقدار "219" در حال حاضر نشان دهنده سائوپائولو باشد، اما این نمایش می تواند به راحتی در اجرای آینده مدل دیگر تغییر کند:

inferred_city_cluster: "219"