اصطلاح بعد مترادفی برای تعداد عناصر در یک بردار ویژگی است. برخی از ویژگی های طبقه بندی شده دارای ابعاد کم هستند. به عنوان مثال:
نام ویژگی | # دسته بندی | دسته بندی نمونه |
---|---|---|
برف_امروز | 2 | درست، نادرست |
skill_level | 3 | مبتدی، کارشناس، متخصص |
فصل | 4 | زمستان، بهار، تابستان، پاییز |
روز_هفته | 7 | دوشنبه، سه شنبه، چهارشنبه |
سیاره | 8 | عطارد، زهره، زمین |
هنگامی که یک ویژگی طبقهبندی تعداد دستههای ممکن کم دارد، میتوانید آن را به عنوان یک واژگان رمزگذاری کنید. با رمزگذاری واژگان، مدل با هر مقدار طبقه بندی ممکن به عنوان یک ویژگی جداگانه برخورد می کند. در طول تمرین، مدل وزن های مختلفی را برای هر دسته یاد می گیرد.
برای مثال، فرض کنید در حال ایجاد مدلی برای پیشبینی قیمت خودرو هستید که تا حدی بر اساس یک ویژگی طبقهبندی به نام car_color
است. شاید ارزش خودروهای قرمز بیشتر از خودروهای سبز باشد. از آنجایی که تولیدکنندگان تعداد محدودی از رنگ های بیرونی را ارائه می دهند، car_color
یک ویژگی طبقه بندی کم بعدی است. تصویر زیر یک واژگان (مقادیر ممکن) برای car_color
را پیشنهاد میکند:
ورزش: شهود خود را بررسی کنید
"Red"
یک عدد ممیز شناور نیست. شما باید رشته هایی مانند "Red"
را به اعداد ممیز شناور تبدیل کنید.اعداد شاخص
مدل های یادگیری ماشینی فقط می توانند اعداد ممیز شناور را دستکاری کنند. بنابراین، باید هر رشته را مانند شکل زیر به یک عدد شاخص منحصر به فرد تبدیل کنید:
ورزش: شهود خود را بررسی کنید
"Black"
(شاخص شماره 5) را 5 برابر بیشتر از "Orange"
(شاخص شماره 1) برای مدل معنا می کند."Black"
(شاخص شماره 5) را 5 برابر بیشتر از "Orange"
(شاخص شماره 1) برای مدل معنا میکند. رمزگذاری تک داغ
گام بعدی در ساخت واژگان این است که هر عدد شاخص را به رمزگذاری تکی آن تبدیل کنید. در یک رمزگذاری یکباره:
- هر دسته با یک بردار (آرایه) از N عنصر نشان داده می شود که N تعداد دسته ها است. به عنوان مثال، اگر
car_color
دارای هشت دسته ممکن باشد، بردار یک داغ که نشان دهنده هشت عنصر خواهد بود. - دقیقاً یکی از عناصر در یک بردار یک داغ دارای مقدار 1.0 است. تمام عناصر باقی مانده دارای مقدار 0.0 هستند.
به عنوان مثال، جدول زیر کدگذاری تک داغ برای هر کدام را در car_color
نشان میدهد:
ویژگی | قرمز | نارنجی | آبی | زرد | سبز | مشکی | بنفش | قهوه ای |
---|---|---|---|---|---|---|---|---|
"قرمز" | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
"نارنجی" | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
"آبی" | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
"زرد" | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"سبز" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
"سیاه" | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
"بنفش" | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
"قهوه ای" | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
این بردار یک داغ است، نه رشته یا عدد شاخص که به بردار ویژگی منتقل می شود. مدل وزن جداگانه ای برای هر عنصر از بردار ویژگی یاد می گیرد.
تصویر زیر دگرگونی های مختلف در نمایش واژگان را نشان می دهد:
نمایندگی پراکنده
مشخصه ای که مقادیر آن عمدتاً صفر (یا خالی) است، یک ویژگی پراکنده نامیده می شود. بسیاری از ویژگیهای طبقهبندی، مانند car_color
، معمولاً ویژگیهای پراکنده هستند. نمایش Sparse به معنای ذخیره موقعیت 1.0 در یک بردار پراکنده است. به عنوان مثال، بردار یک داغ برای "Blue"
عبارت است از:
[0، 0، 1، 0، 0، 0، 0، 0]
از آنجایی که 1
در موقعیت 2 قرار دارد (هنگامی که شمارش را از 0 شروع می کنیم)، نمایش پراکنده برای بردار یک داغ قبلی است:
2
توجه داشته باشید که نمایش پراکنده نسبت به بردار هشت عنصری یک داغ حافظه بسیار کمتری مصرف می کند. نکته مهم این است که مدل باید بر روی بردار یک داغ تمرین کند ، نه نمایش پراکنده.
پرت در داده های طبقه بندی شده
مانند دادههای عددی، دادههای طبقهبندی نیز حاوی مقادیر پرت هستند. فرض کنید car_color
نه تنها رنگهای محبوب را شامل میشود، بلکه برخی از رنگهای پرت که به ندرت مورد استفاده قرار میگیرند، مانند "Mauve"
یا "Avocado"
را شامل میشود. به جای اینکه به هر یک از این رنگهای پرت یک دسته جداگانه بدهید، میتوانید آنها را در یک دسته «کلاسی» به نام خارج از واژگان (OOV) قرار دهید. به عبارت دیگر، تمام رنگ های پرت در یک سطل پرت قرار می گیرند. سیستم یک وزن واحد را برای آن سطل پرت یاد می گیرد.
رمزگذاری ویژگی های دسته بندی با ابعاد بالا
برخی از ویژگی های دسته بندی دارای ابعاد بالایی هستند، مانند مواردی که در جدول زیر آمده است:
نام ویژگی | # دسته بندی | دسته بندی نمونه |
---|---|---|
کلمات_به_انگلیسی | ~ 500000 | "شاد"، "راه رفتن" |
کدهای_پستی_ایالات متحده | ~ 42000 | "02114", "90301" |
نامهای_خانوادگی_در_آلمان | 850000 ~ | "اشمیت"، "اشنایدر" |
وقتی تعداد دستهها زیاد است، رمزگذاری یکطرفه معمولاً انتخاب بدی است. تعبیهها ، که در یک ماژول جاسازی جداگانه توضیح داده شدهاند، معمولاً انتخاب بسیار بهتری هستند. تعبیهها بهطور قابلتوجهی تعداد ابعاد را کاهش میدهند، که به دو روش مهم برای مدلها مفید است:
- این مدل معمولاً سریعتر تمرین می کند.
- مدل ساخته شده معمولاً پیش بینی ها را سریعتر استنباط می کند. یعنی مدل تاخیر کمتری دارد.
هش کردن (همچنین به آن ترفند هش کردن نیز می گویند) روشی کمتر رایج برای کاهش تعداد ابعاد است.