تحلیل مؤلفههای اصلی (PCA)
آموزش PCA: کاهش ابعاد داده، حفظ واریانس، مصورسازی داده پربعد و سرعت بخشیدن به مدل
مسئله ابعاد بالا
اگر داده ۱۰۰ ویژگی داشته باشد چه؟ مصورسازی غیرممکن، محاسبات کند و فاصلهها بیمعنا میشوند. PCA این مشکل را حل میکند: کاهش ابعاد با حداکثر حفظ اطلاعات.
PCA چگونه کار میکند؟
- داده را استاندارد کنید
- جهتهایی پیدا کنید که بیشترین واریانس داده را دارند (مؤلفههای اصلی)
- داده را روی k مؤلفه اول تصویر کنید
شهود: عکس یک جسم سهبعدی از زاویهای که بیشترین جزئیات دیده شود! مؤلفه اول همان «بهترین زاویه دید» است.
پیادهسازی
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
X_scaled = StandardScaler().fit_transform(X)
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_scaled)
print(pca.explained_variance_ratio_) # سهم هر مؤلفه از واریانس
چند مؤلفه نگه داریم؟
explained_variance_ratio_ میگوید هر مؤلفه چند درصد اطلاعات دارد. قانون رایج: آنقدر مؤلفه نگه دارید که مجموعاً ۹۰ تا ۹۵ درصد واریانس پوشش داده شود:
pca = PCA(n_components=0.95) # ۹۵٪ واریانس
X_reduced = pca.fit_transform(X_scaled)
print(X_reduced.shape) # ابعاد جدید
کاربردهای PCA
- مصورسازی: داده ۴بعدی Iris را در ۲بعدی ببینید!
- سرعت: مدل روی داده کمبعد سریعتر آموزش میبیند
- فشردهسازی: کاهش حافظه
- حذف نویز: مؤلفههای آخر معمولاً نویزند
نکات مهم
PCA قبل از خودش استانداردسازی میخواهد؛ وگرنه ویژگی با مقیاس بزرگ همهچیز را تعیین میکند. همچنین مؤلفههای جدید ترکیب خطی ویژگیهای قدیمیاند و تفسیر مستقیم ندارند.
جمعبندی
- PCA داده را به ابعاد کمتر با حفظ حداکثر واریانس میبرد
- با
explained_variance_ratio_تعداد مؤلفه را انتخاب کنید - مصورسازی، سرعت و حذف نویز کاربردهای اصلیاند
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.