با استفاده از پایتون و کتابخانه scipy، یک تابع بنویسید که تحلیل مؤلفه‌های اصلی (PCA) را با استفاده از SVD روی یک ماتریس داده انجام دهد و ماتریس دادهٔ کاهش‌یافته به k مؤلفه را بازگرداند.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:42

0.0

برای حل این مسئله داده‌ها را ابتدا صفرمیانگین (center) کنید، سپس از تابع scipy.linalg.svd برای محاسبهٔ تجزیهٔ مقدار منفرد استفاده کنید (با آرگومان full_matrices=False). راست‌ترین k بردارهای مؤلفه (اولین k ستون از V^T) را انتخاب کرده و داده‌ها را روی این مؤلفه‌ها نگاشت کنید تا ماتریس کاهش‌یافته به‌دست آید. نکات: از numpy برای عملیات ماتریسی استفاده کنید، قبل از PCA بهتر است ویژگی‌ها را مقیاس‌بندی کنید و مطمئن شوید که k بزرگتر از min(n_samples, n_features) نیست.

توسط پژوهشگر در 221 روز قبل ساعت 01:42
دسته بندی ها: Python Python for beginner
reyhaneh در 221 روز قبل ساعت 12:17

برای پیاده‌سازی PCA با SVD، داده‌ها را ابتدا مرکز-میانگین کنید و با مقیاس‌بندی مناسب ویژگی‌ها را استاندارد کنید. در استفاده از scipy.linalg.svd با full_matrices=False، تنها بردارهای مؤلفه‌ای لازم محاسبه می‌شوند و مصرف حافظه بهینه می‌شود. همچنین مطمئن شوید k ≤ min(n_samples, n_features) است و اگر ویژگی‌هایی با واریانس صفر وجود دارد، قبل از تحلیل آنها را حذف یا کاهش دهید. سرانجام با ضرب داده‌های مرکزشده در V_k یا استفاده از X_centered.dot(V_k)، ماتریس دادهٔ کاهش‌یافته با k مؤلفه به‌دست می‌آید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری