مقیاس‌بندی ویژگی در پایتون چیست و چگونه آن‌را انجام دهیم؟
مقیاس‌بندی ویژگی (Feature Scaling) یا نرمال‌سازی ویژگی‌ها به معنای تبدیل ویژگی‌های عددی در داده‌ها به یک مقیاس مشخص است. این کار در بسیاری از الگوریتم‌های یادگیری ماشین مانند رگرسیون خطی، شبکه‌های عصبی و دسته‌بندی استفاده می‌شود. هدف اصلی مقیاس‌بندی ویژگی، حذف تفاوت‌های احتمالی در مقیاس واحدهای اندازه‌گیری ویژگی‌ها است تا الگوریتم‌های یادگیری ماشین به‌شکل مناسبی عمل کنند.

روش‌های مقیاس‌بندی ویژگی چه هستند؟

روش‌های مقیاس‌بندی ویژگی‌های متنوعی در دسترس قرار دارد که هریک از آن‌ها مزایای خاص خود را دارند. برخی از روش‌های مهم در این زمینه به شرح زیر هستند:

1. مقیاس‌بندی مین‌ماکس (Min-Max Scaling)

مقیاس بندی مین‌ماکس یکی از روش‌های معمول برای مقیاس بندی ویژگی‌ها است. در این روش، ویژگی‌ها به بازه‌ای مشخص مقیاس‌بندی می‌شوند که معمولا در بازه 0 و 1 قرار دارد. فرمول مقیاس‌بندی مین‌ماکس به صورت زیر است:

x_scaled = (x - min(x)) / (max(x) - min(x))

در این فرمول، x نشان‌دهنده مقدار اولیه ویژگی است، min(x) نمایانگر کمترین مقدار ویژگی در داده‌ها است و max(x) نمایانگر بیشترین مقدار ویژگی است. با اعمال این فرمول بر روی هر مقدار ویژگی، مقدار مقیاس‌بندی شده آن در بازه ۰ تا ۱ قرار می‌گیرد. روش مقیاس بندی مین‌ماکس مناسب است زمانی که توزیع داده‌ها نزدیک به یک توزیع یکنواخت باشد و داده‌های متغیر زیادی وجود نداشته باشد. این روش به عنوان یکی از روش‌های استاندارد مقیاس‌بندی استفاده می‌شود که می‌تواند در فرایند پیش‌پردازش داده‌ها در الگوریتم‌های یادگیری ماشین و تحلیل داده‌ها مفید باشد.

2. مقیاس‌بندی استاندارد (Standard Scaling)

مقیاس بندی استاندارد یکی دیگر از روش‌های معمول برای مقیاس‌بندی ویژگی‌ها است. در این روش، ویژگی‌ها به گونه‌ای مقیاس می‌شوند که میانگین آنها صفر و واریانس آنها یک باشد. فرمول مقیاس‌بندی استاندارد به صورت زیر است:

x_scaled = (x - mean(x)) / std(x)

در این فرمول، `x` نشان‌دهنده مقدار اولیه ویژگی است، `mean(x)` میانگین ویژگی در داده‌ها را نشان می‌دهد و `std(x)` واریانس ویژگی است. با اعمال این فرمول بر روی هر مقدار ویژگی، مقدار مقیاس‌بندی شده آن میانگین صفر و واریانس یک را شامل می‌شود. روش مقیاس‌بندی استاندارد مناسب است زمانی که توزیع داده‌ها نمایی یا گاوسی باشد و داده‌های پرتوزیعی نداشته باشیم. این روش می‌تواند در فرایند پیش‌پردازش داده‌ها و استفاده از الگوریتم‌های یادگیری ماشین مفید باشد، زیرا به عنوان یکی از روش‌های استاندارد مقیاس بندی شناخته می‌شود و باعث می‌شود ویژگی‌ها با اندازه واحد آماری مشترک مقیاس شوند و تفاوت‌های ظاهری در مقادیر واحدهای اندازه‌گیری برطرف شود.

3. مقیاس‌بندی منسجم (Robust Scaling)

مقیاس بندی منسجم (Robust Scaling) یک روش دیگر برای مقیاس‌بندی ویژگی‌ها است که در مقابل داده‌های پرت و نویز‌دار عملکرد خوبی دارد. این روش بر اساس محاسبه و استفاده از مقادیر ویژگی‌ها عمل می‌کند. برای اعمال مقیاس‌بندی منسجم از فرمول زیر استفاده می‌شود:

x_scaled = (x - median(x)) / IQR(x)

در این فرمول، `x` نشان‌دهنده مقدار اولیه ویژگی است، `median(x)` مقدار میانه ویژگی را نشان می‌دهد و `IQR(x)` نمایانگر بردار بردار بین‌کوارچی ویژگی است. با اعمال این فرمول بر روی هر مقدار ویژگی، مقدار مقیاس‌بندی شده آن با توجه به مقادیر مقاومتی ویژگی‌ها تعیین می‌شود. مقیاس بندی منسجم مناسب است زمانی که داده‌های پرت‌ها یا نویزهای غیرمعمول داریم و توزیع داده‌ها تغییر کند. با استفاده از این روش، تأثیر داده‌های پرت یا نویز بر مقیاس‌بندی ویژگی‌ها کاهش می‌یابد و مقیاس‌بندی معقول‌تری برای داده‌ها ارائه می‌شود. این روش می‌تواند در فرایند پیش‌پردازش داده‌ها و استفاده از الگوریتم‌های یادگیری ماشین مفید باشد، زیرا به عنوان یکی از روش‌های مقیاس‌بندی رایج ویژگی‌ها استفاده می‌شود که فرآیند نرمال‌سازی داده‌ها را ساده‌تر می‌کند.

4. مقیاس‌بندی گاوسی (Gaussian Scaling)

مقیاس‌بندی گاوسی (Gaussian Scaling) یک روش معمول برای تبدیل ویژگی‌ها به توزیع گاوسی یا نرمال است. در این روش، ویژگی‌ها مقیاس‌بندی می‌شوند تا توزیع آنها نزدیک به توزیع گاوسی باشد. عموما این روش با استفاده از دو مرحله انجام می‌شود. در ابتدا، ویژگی‌ها به مقیاس مناسب می‌آیند، مانند مقیاس‌بندی استاندارد. سپس، تابعی به نام تابع تبدیل (transformation function) به کار گرفته می‌شود تا توزیع ویژگی‌ها به نرمال یا گاوسی نزدیک شود. روش‌های مختلفی برای انجام مقیاس‌بندی گاوسی وجود دارد، از جمله تبدیل با استفاده از تابع لگاریتم، تابع هیپربولیک تانژانت، یا تابع Box-Cox. این توابع توزیع ویژگی‌ها را تغییر داده و نزدیک به نرمال می‌کنند. مقیاس‌بندی گاوسی مناسب است زمانی که ویژگی‌ها توزیعی نزدیک به گاوسی ندارند و تمایل دارند به توزیع‌های غیرعادی مانند توزیع‌های خطی یا توزیع‌های پویا اما ناهمگن. با استفاده از این روش، می‌توان توزیع ویژگی‌ها را بهبود بخشید و باعث سهولت در استفاده از الگوریتم‌های یادگیری ماشین و تحلیل داده‌ها شد.

5. مقیاس‌‌‌بندی لگاریتمی (Logarithmic Scaling)

مقیاس‌بندی لگاریتمی (Logarithmic Scaling) یک روش معمول در پردازش داده‌ها است که برای تبدیل ویژگی‌ها به مقیاس لگاریتمی استفاده می‌شود. در این روش، ویژگی‌ها با استفاده از تابع لگاریتم به مقیاس مناسب تبدیل می‌شوند. در مقیاس‌بندی لگاریتمی، مقدار لگاریتم از ویژگی‌ها محاسبه می‌شود و به جای استفاده از مقادیر اصلی ویژگی‌ها، از مقادیر لگاریتمی آنها استفاده می‌شود. این عمل باعث کاهش مقیاس ویژگی‌ها و توزیع مقادیر آنها می‌شود.

مقیاس‌بندی لگاریتمی مناسب است زمانی که ویژگی‌ها دارای توزیعی نامتوازن و پراکندگی بالا هستند. با استفاده از این روش، می‌توان از پراکندگی بالای ویژگی‌ها کاسته و تغییرات کوچک در مقادیر بزرگ را نشان داد. این روش می‌تواند در فرایند پیش‌پردازش داده‌ها و استفاده از الگوریتم‌های یادگیری ماشین مفید باشد، زیرا به عنوان یکی از روش‌های معمول مقیاس‌بندی ویژگی‌ها استفاده می‌شود که باعث کاهش تأثیر مقادیر پرت و افزایش پایداری و کارآیی الگوریتم‌ها می‌شود.

موارد یاد شده تنها چند نمونه از روش‌های مقیاس بندی ویژگی‌ها هستند. همچنین، بسته به مسئله و داده‌های خاص روش‌های دیگری برای مقیاس‌بندی ویژگی‌ها مورد استفاده قرار می‌گیرد. در هر صورت، انتخاب روش مناسب برای مقیاس‌بندی ویژگی‌ها بستگی به ماهیت داده‌ها و الگوریتم‌های یادگیری ماشین دارد که قصد استفاده از آن را دارید.

چگونه فرآیند مقیاس‌بندی ویژگی را در پایتون انجام دهیم؟

در پایتون، می‌توانید از کتابخانه‌های scikit-learn و numpy برای مقیاس بندی ویژگی‌ها استفاده کنید. اکنون که توضیحاتی در ارتباط با روش‌های مختلف مقیاس‌بندی ارائه کردیم، اجازه دهید به شکل عملی روش‌های مختلف مقیاس‌بندی ویژگی‌ها را بررسی ‌کنیم:

1. مقیاس‌بندی مین‌ماکس (Min-Max Scaling):

در این روش، ویژگی‌ها به بازه‌ای مشخص مقیاس می‌شوند. معمولا این بازه بین ۰ و ۱ تعیین می‌شود. می‌توانید از کلاس MinMaxScaler در scikit-learn استفاده کنید:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()

scaled_features = scaler.fit_transform(features)

2. مقیاس‌بندی استاندارد (Standard Scaling):

در این روش، ویژگی‌ها میانگین صفر و واریانس یک دارند. برای استفاده از این روش، می‌توانید از کلاس StandardScaler در scikit-learn استفاده کنید:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

scaled_features = scaler.fit_transform(features)

3. مقیاس‌بندی منسجم (Robust Scaling):

این روش برای مقیاس بندی ویژگی‌ها مقاوم در برابر داده‌های پرت است. برای استفاده از این روش، می‌توانید از کلاس RobustScaler در scikit-learn استفاده کنید:

from sklearn.preprocessing import RobustScaler

scaler = RobustScaler()

scaled_features = scaler.fit_transform(features)

در هر سه روش بالا، features مجموعه‌ای از ویژگی‌ها است که می‌خواهید مقیاس‌بندی شوند. scaled_features نتیجه نهایی مقیاس‌بندی ویژگی‌ها است که می‌توانید برای استفاده در الگوریتم‌های یادگیری ماشین به کار ببرید.

همان‌گونه که اشاره کردیم موارد یاد شده تنها چند روش از مقیاس‌بندی ویژگی‌ها در پایتون هستند و بسته به شرایط و داده‌ها روش‌های دیگری نیز قابل استفاده هستند. برای مثال، روش‌هایی مانند مقیاس‌بندی براساس مد و میانه (Median/Median Scaling)، مقیا‌س‌بندی به‌صورت لگاریتمی (Logarithmic Scaling)، یا مقیاس‌بندی گاوسی (Gaussian Scaling) و توزیع‌های دیگر وجود دارند نیز وجود دارند که پیش‌تر به آن‌ها اشاره کردیم. دقت کنید استفاده از هر روش مقیاس‌بندی بستگی به نوع داده‌ها، نوع الگوریتم یادگیری ماشین و مسئله مورد نظر دارد. در برخی موارد، نیاز به تست و ارزیابی روش‌های مختلف مقیاس‌بندی برای یافتن روش مناسب و بهینه ضروری است.

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟