یک برنامه پایتون بنویسید که ماتریس همبستگی زوجی (pairwise correlation matrix) را برای یک مجموعه داده عددی بزرگ با استفاده از NumPy محاسبه کند.
6.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:34 0.0
برای حل این مسأله دادهها را به صورت آرایه NumPy با شکل (نمونهها، ویژگیها) بارگذاری کنید، سپس ستونها را با میانگین تفریق کرده و با استفاده از عملیات برداری و ضرب ماتریسی (مثلاً X_centered.T @ X_centered) ماتریس کوواریانس را بهدست آورید؛ برای تبدیل به ماتریس همبستگی هر خانه را بر حاصلضرب انحراف معیارهای متناظر تقسیم کنید. از توابع آماده مثل numpy.corrcoef نیز میتوان استفاده کرد تا کد کوتاهتر و سریعتر شود؛ برای مجموعهدادههای خیلی بزرگ از dtype مناسب (float32/64)، محاسبات ماتریسیِ BLAS-شتابدادهشده، np.einsum یا تقسیمبندی دادهها به بلوکها (chunking) و در صورت نیاز از شتابدهندههایی مثل numba یا پردازش موازی برای بهبود کارایی بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای محاسبه ماتریس همبستگی زوجی با NumPy، دادهها را به شکل (نمونهها، ویژگیها) میخوانیم و ستونها را با میانگین تفریق میکنیم تا X_centered بهدست آید. سپس با استفاده از ضرب ماتریسی مانند X_centered.T @ X_centered یا numpy.corrcoef، ماتریس کوواریانس یا همبستگی را میسازیم و به ازای هر خانه آن را تقسیم بر حاصلضرب انحراف معیارهای متناظر میکنیم. برای بهبود کارایی در مجموعهدادههای بزرگ، از dtype مناسب (float32/64)، np.einsum یا صرفاً BLAS-accelerated routines استفاده کنید و به chunking دادهها و حتی numba یا پردازش موازی فکر کنید. فراموش نکنید که همبستگی بزرگمقیاس میتواند مصرف حافظه بالایی داشته باشد و گاهی بهتر است از محاسبه گام به گام یا تخمین تقریبی استفاده کنید.
گزارش