با استفاده از Python و کتابخانه scipy یک مجموعه دادهٔ شبیهسازیشده (با نویز) از یک رابطهٔ خطی تولید کنید و با scipy.optimize.curve_fit پارامترهای رگرسیون خطی را برازش دهید و خط برازش و مقدار خطای میانگین مربعات (MSE) را محاسبه و نمایش دهید.
8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:20 0.0
برای حل این مسئله از numpy برای تولید دادههای x و y با نویز استفاده کنید، سپس تابع خطی y = a*x + b را تعریف کرده و با scipy.optimize.curve_fit پارامترهای a و b را برازش دهید. پس از یافتن پارامترها، مقادیر پیشبینیشده را محاسبه کرده و با فرمول MSE = mean((y_true - y_pred)**2) خطا را گزارش کنید؛ برای نمایش نتایج میتوانید از matplotlib برای رسم نقاط داده و خط برازش استفاده کنید. نکات: یک حدس اولیه مناسب به curve_fit بدهید، در صورت نیاز از bounds برای محدود کردن پارامترها استفاده کنید و دادهها را پیش از برازش به صورت آرایههای numpy پاس دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تولید دادههای شبیهسازیشده با نویز، از یک seed ثابت استفاده کنید تا نتایج قابل تکرار باشند و رابطه خطی y = a*x + b را با نویز گوسی مدل کنید. هنگام استفاده از curve_fit، تابع مدل باید ورودی x را به شکل 1D بپذیرد و مقدار اولیه مناسب p0 مانند [1.0, 0.0] بدهید تا از مشکلات همخطی جلوگیری شود. میتوانید از bounds برای محدود کردن پارامترها استفاده کنید (مثلاً a در بازه [-10, 10] و b در بازه [-100, 100]) و در صورت وجود دادههای پرت از فیلتر یا وزندهی استفاده کنید. پس از برازش، مقادیر پیشبینی ŷ را محاسبه کرده و MSE = mean((y_true - ŷ)^2) را محاسبه و نمایش دهید؛ همچنین میتوانید با رسم نقاط داده و خط برازش صحت نتیجه را بررسی کنید.
گزارش