راه
۵ کیو· متوسط رو به بالامتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

تکمیل ماتریس با مؤلفه‌های اصلی

بعضی عضوهای ماتریس XX گم شده‌اند. mask ماتریسی هم‌اندازه از صفر و یک است: یک یعنی عضو مشاهده شده، صفر یعنی گم شده (مقدار XX در آن خانه بی‌معنی است). تابع complete(X, mask, M, iters) این الگوریتم را اجرا می‌کند:

  1. هر عضو گم‌شده را با میانگین مقدارهای مشاهده‌شده‌ی ستون خودش پر کن: ماتریس X~\tilde X.
  2. iters بار:
    • تقریب رتبه‌ی MM ی X~\tilde X را با SVD بساز: A=UMDMVM⊤A = U_MD_MV_M^\top (بدون مرکزی کردن).
    • عضوهای گم‌شدهی X~\tilde X را با عضوهای متناظر AA جایگزین کن؛ عضوهای مشاهده‌شده دست نمی‌خورند.
  3. خروجی، مقدارهای برآوردشده برای عضوهای گم‌شده است، به ترتیب سطر به سطر (X_tilde[mask == 0]).

نمونه‌ها

ورودی نمونه ۱
[[[2.7, 3.03, 0.0, 3.64], [3.46, 0.0, 2.17, 2.52], [0.0, 2.82, 0.0, 2.31], [0.0, 2.65, 1.58, 2.21], [4.17, 0.0, 0.57, 1.38], [3.03, 3.04, 3.62, 3.57]], [[1, 1, 0, 1], [1, 0, 1, 1], [0, 1, 0, 1], [0, 1, 1, 1], [1, 0, 1, 1], [1, 1, 1, 1]], 1, 1]
خروجی نمونه ۱
[2.1191, 2.9205, 3.1774, 1.9821, 3.0055, 2.5441]
ورودی نمونه ۲
[[[2.7, 3.03, 0.0, 3.64], [3.46, 0.0, 2.17, 2.52], [0.0, 2.82, 0.0, 2.31], [0.0, 2.65, 1.58, 2.21], [4.17, 0.0, 0.57, 1.38], [3.03, 3.04, 3.62, 3.57]], [[1, 1, 0, 1], [1, 0, 1, 1], [0, 1, 0, 1], [0, 1, 1, 1], [1, 0, 1, 1], [1, 1, 1, 1]], 1, 50]
خروجی نمونه ۲
[2.303, 2.9011, 2.9151, 2.0021, 2.6539, 2.3427]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود