بعد از بررسی کردن موضوعات جالبی مثل انکودینگ و یونیکد میخوایم بریم سراغ یه مبحث خیلی جالب تر به اسم لیبل انکودینگ.

قبلش یکم دقت کنین که داریم از واژه انکودینگ استفاده میکنیم! قبلا دربارش گفتیم که انکودینگ یعنی چی و دقیقا چه مفهومی رو پشت خودش داره، پس اگه هنوز اون پست رو نخوندی پیشنهاد میکنم اول اون رو بخونی تا بهتر متوجه این موضوع بشی و به تلاش های من ارزش ببخشی. (جهت مشاهده مقاله اِنکودینگ کلیک کنید)

چیزی که برای کامپیوترها قابل فهمه، فقط و فقط عدده، اونم در سیستم باینری؛ ولی خب از اونجایی که اعداد در هر مبنایی میتونن به همدیگه تبدیل بشن پس ما میتونیم اول داده هایی که داریم رو تبدیل کنیم به اعداد عادی روزمره (ده دهی) تا بتونیم از اونها برای کاربردهای خاصی مثل یادگیری ماشین (Machine Learning) استفاده کنیم.

راستی اگه الان که داری این پست رو میخونی نمیدونی مبناهای مختلف چه فرقی دارن، یه خبر خوب برات دارم؛ بزودی پست مبنای اعداد رو میزارمش! 🙂

به صورت کلی ما دو نوع متغیر داریم، متغیرهای عددی و غیرعددی. خب نوع عددی که مشخصه و شامل هر چیزی که ما بتونیم اون رو اندازه بگیریم میشه؛ از جمله قد، عمر، درآمد، بازدید سایت، و … که هرکدوم میتونن یا صحیح، اعشاری، مختلط و هر نوع دیگه ای که عددی باشه رو به خودشون بگیرن و مشکل خاصی نیست.

ولی حالا اگه بخوایم که یسری داده غیر عددی رو به سیستم ورودی بدیم به طوری که بتونه بین اونها تمایز خاصی قائل بشه، بنظر شما چه کاری بهتره انجام بدیم؟ و مد نظر هم داشته باشین که داده های ما باید عددی باشن.

خب اولین راه، انکودینگه! ما شاید نتونیم مستقیما داده های رشته ای رو تبدیل کنیم به عدد، ولی میتونیم از تکنیک انکودینگ استفاده کنیم وبه هر کلمه به صورت قراردادی یک عددی رو نسبت بدیم و از اون عدد استفاده کنیم برای نمایش دادنش.

اینجاست که متوجه میشین چرا توی پست قبلی انقدر تاکید داشتم روی این مسئله که ما در بخش های مختلفی از انکودینگ استفاده میکنیم و فقط محدود به سیستم نگارش متن نمیشه.

خب پس متوجه شدیم که ما به جای هر کلمه از یک عدد استفاده میکنیم، ولی این اعداد باید همیشه ثابت باشن و تغییری نکنن.

یکی از بارزترین مثال ها برای این مسئله لیبل (Label | برچسب) هست؛ معمولا داده های ما دارای یسری برچسب هستن که اونها رو به چند دسته تقسیم میکنه. برای مثال ما وقتی از یه درسی یه نمره ای میگرفتیم یک مقدار عددی هستش، ولی خب میتونیم با استفاده از یسری برچست ها به صورت کیفی تعریفش کنیم نه کمی که اون مقدار کیفی رو تحت عنوان لیبل میشناسیم.

خب حالا با ترکیب دو تا مفهومی که مرتبط با عنوان این پست میشن میخوایم بریم سراغ جمع بندی و پایان کار؛ مفهوم انکودینگ چیز سختی نیست و صرفا یکسری عدد رو به مقادیر غیر عددی نسبت میدیم که قابلیت ذخیره داشته باشن؛ و مفهوم بعدی هم لیبل هست که در واقع همون مقداری هست که قصد ذخیره کردنش رو داریم و متاسفانه عددی هم نیست و باید اول انکود بشه!

این مسئله تحت عنوان لیبل انکودینگ (Label Encoding) شناخته میشه و یکی از مسائل روتین توی پردازش داده ها (Data Processing)، پردازش زبان طبیعی (Natural Language Processing) و مدل های یادگیری ماشینی (Machine Learning Models) محسوب میشه.

نکته: دقت کنین که شاید مقادیر نهایی ما عدد باشن، ولی نوع عددی ندارن! یعنی بزرگتر یا کوچیکتر بودن مقادیر هیچ مفهوم خاصی رو به دنبال نداره.

به عنوان ختم این مقاله هم، با نگاهی اِجمالی به تصویر (1)، متوجه خواهید شد متغیرهای کیفی بله / خیر یا همان Yes / No به صورت عددی 1 و 0 برچسب گذاری شدند یا به قول دوستان انگلیسی زبان Label Encoding شده اند.

One-hot encoding categorical variables | Train in Data Blogتصویر(1) – مفهوم برچسب گذاری یا Label Encoding

امیدوارم که از خوندن این پست لذت برده باشین و براتون مفید بوده باشه؛ یا حق.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

keyboard_arrow_up