تغییر مقیاس ویژگی

**تغییر مقیاس ویژگی** روشی است که برای نرمال کردن***' محدوده متغیرهای مستقل یا ویژگی‌های داده‌ها استفاده می‌شود. در [[پردازش رایانه‌ای داده‌ها|پردازش داده]]، به نرمال‌سازی داده نیز معروف است و عموماً در مرحله پیش پردازش داده‌ها انجام می‌شود.

== انگیزه ==
از آنجایی که دامنه مقادیر داده‌های خام پراکنده است، در برخی از الگوریتم‌های [[یادگیری ماشینی|یادگیری ماشین]]، مانند خوشه‌بندی، توابع هدف بدون [[نرمال‌سازی (آمار)|نرمال‌سازی]] به درستی کار نمی‌کنند. به عنوان مثال، بسیاری از [[طبقه‌بندی آماری|طبقه‌بندی‌کننده‌ها]] فاصله بین دو نقطه را با [[فاصله اقلیدسی]] محاسبه می‌کنند. اگر یکی از ویژگی‌ها دارای طیف وسیعی از مقادیر باشد، فاصله توسط این ویژگی خاص کنترل می‌شود. بنابراین، محدوده همه ویژگی‌ها باید به گونه‌ای نرمال شود که هر ویژگی تقریباً سهم متناسبی در فاصله نهاییِ مورد استفاده در طبقه‌بندی داشته باشد.

دلیل دیگری که چرا تغییر مقیاس ویژگی اعمال می‌شود این است که [[گرادیان کاهشی]] با تغییر مقیاس ویژگی بسیار سریع‌تر از بدون آن همگرا می‌شود.

به ویژه اگر [[همگن‌سازی (ریاضیات)|منظم‌سازی]] به عنوان بخشی از تابع ضرر به کار رود، استفاده از '''تغییر مقیاس ویژگی''' مهم است. (به طوری که ضرایب به طور مناسب تغییر کنند.) 

== روش‌ها ==

=== تغییر مقیاس (نرمال‌سازی کمینه-بیشینه) ===
این تغییر مقیاس که در انگلیسی به آن min-max ساده ترین روش است و شامل تغییر مقیاس دامنه ویژگی‌ها برای مقیاس‌بندی محدوده در [۰، ۱] یا [-۱، ۱] است. انتخاب محدوده هدف به ماهیت داده‌ها بستگی دارد. فرمول کلی برای تغییر مقیاس به [۰، ۱] به صورت زیر ارائه می‌شود:

: <math>x' = \frac{x - \text{min}(x)}{\text{max}(x)-\text{min}(x)}</math>

که <math>x</math> مقدار اصلی است، <math>x'</math> مقدار نرمال شده است. برای مثال، فرض کنید که داده‌های وزن دانش‌آموزان را داریم که در محدوده [۸۰ کیلوگرم، ۱۲۰ کیلوگرم] قرار میگیرند. برای تغییر مقیاس این داده‌ها، ابتدا مقدار  ۸۰ را  از وزن هر دانش‌آموز کم کرده و نتیجه را بر ۴۰ (تفاوت بین حداکثر و حداقل وزن) تقسیم می‌کنم.

برای تغییر مقیاس یک محدوده بین یک مجموعه دلخواه از مقادیر [a, b]، فرمول به صورت زیر می‌شود:

: <math>x' = a + \frac{(x - \text{min}(x))(b-a)}{\text{max}(x)-\text{min}(x)}</math>

که <math>a,b</math> مقادیر کمینه و بیشینه هستند.

=== نرمال‌سازی میانگین ===

: <math>x' = \frac{x - \bar{x}}{\text{max}(x)-\text{min}(x)}</math>

که <math>x</math> یک مقدار اصلی است، <math>x'</math> مقدار نرمال شده است، <math>\bar{x}=\text{average}(x)</math> میانگین آن بردار ویژگی است. شکل دیگری از نرمال‌سازی میانگین وجود دارد که بر انحراف معیار تقسیم می‌شود که به آن استانداردسازی نیز می گویند.

=== استانداردسازی (نرمال‌سازی Z-score) ===
در یادگیری ماشینی، ما می‌توانیم انواع مختلفی از داده‌ها را مدیریت کنیم، به‌عنوان مثال سیگنال‌های صوتی و مقادیر پیکسل برای داده‌های تصویر، و این داده‌ها می‌تواند شامل چند [[بعد]] باشد. استانداردسازی ویژگی باعث می‌شود که مقادیر هر ویژگی در داده‌ها دارای میانگین صفر***' (هنگام تفریق میانگین در عدد) و دارای واریانس واحد باشد. این روش به طور گسترده برای نرمال‌سازی در بسیاری از الگوریتم‌های یادگیری ماشین (مانند ماشین‌های بردار پشتیبان، رگرسیون لجستیک و شبکه‌های عصبی مصنوعی ) استفاده می‌شود. روش کلی محاسبه، تعیین میانگین توزیع و انحراف استاندارد برای هر ویژگی است. سپس میانگین را از هر ویژگی کم می‌کنم و مقادیر (میانگین قبلاً کم شده) هر ویژگی را بر انحراف معیار آن تقسیم می‌کنم.

: x' = \frac{x - \bar{x}}{\sigma}

که x بردار ویژگی اصلی است، \bar{x}=\text{average}(x) میانگین آن بردار ویژگی است و \sigma انحراف معیار آن است.

### تغییر مقیاس به طول واحد
گزینه دیگری که به طور گسترده در یادگیری ماشینی استفاده می‌شود، تغییر مقیاس اجزای یک بردار ویژگی است به طوری که بردار دارای طول یک باشد. این معمولاً به معنای تقسیم هر جزء بر طول اقلیدسی بردار است:

: x' = \frac{x}{\left\|{x}\right\|}

در برخی کاربردها (مثلاً ویژگی‌های هیستوگرام) استفاده از نرم L ۱ (یعنی هندسه تاکسی ) بردار ویژگی می تواند عملی‌تر باشد. این امر به ویژه در صورتی مهم است که در مراحل یادگیری زیر از متریک اسکالر به عنوان اندازه‌گیری فاصله استفاده شود. توجه داشته باشید که این فقط برای x\neq \mathbf{0} صدق میکند.

## کاربرد
در گرادیان کاهشی تصادفی****، مقیاس‌بندی ویژگی گاهی اوقات می تواند سرعت همگرایی الگوریتم را بهبود بخشد. در ماشین‌های بردار پشتیبان ،  می‌تواند زمان یافتن بردارهای پشتیبان را کاهش دهد. توجه داشته باشید که تغییر مقیاس ویژگی، نتیجه SVM را تغییر می دهد.

## جستارهای وابسته

* عادی‌سازی (آمار)
* نمره استاندارد

## منابع

* Ioffe, Sergey; Christian Szegedy (۲۰۱۵). "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift". arXiv:۱۵۰۲.۰۳۱۶۷ [cs.LG].
* "Min Max normalization". ml-concepts.com.
* Grus, Joel (۲۰۱۵). Data Science from Scratch. Sebastopol, CA: O'Reilly. pp. ۹۹, ۱۰۰. ISBN 978-1-491-90142-7.
* "Gradient Descent, the Learning Rate, and the importance of Feature Scaling".
* Juszczak, P.; D. M. J. Tax; R. P. W. Dui (۲۰۰۲). "Feature scaling in support vector data descriptions". Proc. ۸th Annu. Conf. Adv. School Comput. Imaging: ۲۵–۳۰. CiteSeerX ۱۰.۱.۱.۱۰۰.۲۵۲۴.

## خواندن بیشتر

رده:یادگیری ماشین
رده:تبدیل داده‌های آماری