کاهش ابعاد یا کاهش ابعاد، یک تکنیک تبدیل داده های یادگیری ماشینی است که در یادگیری بدون نظارت استفاده می شود تا داده ها را از فضایی با ابعاد بالا به فضایی با ابعاد پایین بیاورد و ویژگی های معنی دار داده های اصلی را حفظ کند.
به طور خلاصه، کاهش ابعاد به معنای نمایش داده ها با استفاده از متغیرهای پیش بینی کننده (ویژگی) کمتر است.
این یک جزء اصلی در ساخت الگوریتمهای یادگیری ماشینی کارآمدتر است.
چرا کاهش ابعاد؟
کاهش ابعاد به موارد زیر کمک می کند:
- ساده کردن مدل ها برای تفسیر آسان تر،
- کاهش هزینه های مدل سازی
- کاهش زمان تمرین،
- از نفرین ابعاد بپرهیزید
کاهش ابعاد چگونه کار می کند؟
کاهش ابعاد را می توان به رویکردهای خطی و غیر خطی تقسیم کرد.
دو تکنیک را می توان برای کاهش ابعاد استفاده کرد: انتخاب ویژگی و استخراج ویژگی.
انتخاب ویژگی
انتخاب ویژگی یا انتخاب متغیر برای حذف استفاده می شود زائد یا غیر مرتبط ویژگی ها بدون از دست دادن اطلاعات بیش از حد از داده ها.
سه تکنیک انتخاب ویژگی عبارتند از:
- روشهای Wrapper: مدل را روی هر ویژگی آموزش دهید تا ببینید کدامیک کمترین اشتباه را دارند. فشرده محاسباتی
- روش های فیلتر: از یک معیار پراکسی محاسبه سریع برای ارزیابی کیفیت مدل استفاده می کند. فشرده تر از روش های لفاف دار.
- روش های جاسازی شده: CP ویژگی را به عنوان بخشی از فرآیند ساخت مدل انجام می دهد. به عنوان مثال رگرسیون LASSO، تنظیم شبکه الاستیک، …
استخراج ویژگی
استخراج ویژگی با یافتن الگوها در دادهها و استفاده از الگوها برای بازگرداندن فرم فشردهشده داده، ویژگیهای اطلاعات کمتری را حذف میکند.
تکنیک های استخراج ویژگی خطی:
تکنیک های استخراج ویژگی غیرخطی:
- تعبیه همسایه تصادفی T-Distributed (t-SNE)
- تجزیه و تحلیل تفکیک عمومی (GDA)
- رمزگذار خودکار
- هسته PCA
تکنیک های استخراج ویژگی خطی
تجزیه و تحلیل مؤلفه اصلی (PCA)
تجزیه و تحلیل مؤلفه اصلی یا PCA، تکنیک خطی اصلی برای کاهش ابعاد است.
نگاشت خطی داده ها به فضایی با ابعاد کمتر به گونه ای انجام می شود که واریانس داده ها را به حداکثر می رساند.
PCA فرض می کند که ویژگی های با واریانس کم بی ربط هستند و ویژگی های با واریانس بالا آموزنده هستند. تفسیر مدل های PCA دشوار است.
فاکتورسازی ماتریس غیر منفی (NMF)
فاکتورسازی ماتریس غیر منفی یا NMF یک تکنیک کاهش ابعاد است که حاصلضرب ویژگی های غیر منفی را در یک واحد ترکیب می کند.
قابلیت تفسیر مدل NMF
NMF اسناد و تصاویر را به الگوهای رایج تجزیه می کند. به دلیل تجزیه اسناد، مدل های NMF به راحتی قابل تفسیر هستند.
چه زمانی از کاهش ابعاد NMF استفاده کنیم؟
از NMF در ویژگی های غیر منفی مانند آرایه فرکانس کلمات، سیستم های توصیه کننده، تاریخچه خرید در سایت های تجارت الکترونیک و بینایی کامپیوتر استفاده کنید.
تجزیه و تحلیل تشخیص خطی (LDA)
تجزیه و تحلیل تشخیص خطی یا LDA یک تکنیک کاهش ابعاد خطی است که در پیش پردازش برای یادگیری ماشین استفاده می شود.
این یک تعمیم از تشخیص خطی فیشر است. این شبیه به PCA عمل می کند اما بر به حداکثر رساندن قابلیت تفکیک در دو یا چند دسته شناخته شده تمرکز دارد.
تکنیک های استخراج ویژگی غیرخطی
تعبیه همسایه تصادفی T-Distributed (t-SNE)
تعبیه همسایه تصادفی T-Distributed یا t-SNE، یک تکنیک کاهش ابعاد غیر خطی است که با حفظ نزدیکی نمونه ها، نمونه هایی از فضاهای چند بعدی را به یک فضای دو بعدی نگاشت می کند.
تجزیه و تحلیل تفکیک عمومی (GDA)
GDA یکی از تکنیکهای کاهش ابعاد غیرخطی است که با استفاده از روشهای هسته، ابعاد را کاهش میدهد. این نسبت پراکندگی بین طبقاتی به پراکندگی درون کلاسی را به روشی مشابه تئوری ماشینهای بردار پشتیبان (SVM) به حداکثر میرساند.
رمزگذار خودکار
رمزگذار خودکار یک شبکه را آموزش می دهد تا داده های ناچیز (نویز) را برای مجموعه ای از داده ها نادیده بگیرد.
جالب بخوانید: رمزگذارهای خودکار برای کاهش ابعاد
تجزیه و تحلیل مؤلفه اصلی هسته (Kernel PCA)
تجزیه و تحلیل مؤلفه اصلی کرنل توسعه PCA است که از روشهای هسته (الگوریتمهای تحلیل الگو) برای کاهش ابعاد ویژگیهای غیرخطی با به حداکثر رساندن تنوع دادهها استفاده میکند.
مثال کاهش ابعاد در پایتون با Scikit-Learn
در این مثال پایتون، خواهیم دید که چگونه می توانیم از PCA برای کاهش ابعاد در مجموعه داده Iris کتابخانه Scikit-learn استفاده کنیم.
from sklearn import datasets
from sklearn.decomposition import PCA
# Load the Iris dataset
iris = datasets.load_iris()
X = iris.data # Features
# Create a PCA (Principal Component Analysis) instance to reduce dimensions to 2
pca = PCA(n_components=2)
# Fit the PCA model to the data and transform it
X_reduced = pca.fit_transform(X)
# Print the original and reduced dimensions
print(f"Original dimensions: {X.shape}")
print(f"Reduced dimensions: {X_reduced.shape}")
همانطور که در خروجی مشاهده می کنید، ما ابعاد را از 4 به 2 جزء اصلی کاهش داده ایم.
Original dimensions: (150, 4)
Reduced dimensions: (150, 2)
نتیجه
این مقاله در مورد تکنیک های کاهش ابعاد به پایان می رسد.
استراتژیست سئو در Tripadvisor، Seek سابق (ملبورن، استرالیا). متخصص در سئو فنی. در تلاش برای سئوی برنامهریزی شده برای سازمانهای بزرگ از طریق استفاده از پایتون، R و یادگیری ماشین.