با استفاده از 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 پاس دهید.

توسط پژوهشگر در 201 روز قبل ساعت 03:20
دسته بندی ها: Python Python for beginner
arash در 201 روز قبل ساعت 06:47

برای تولید داده‌های شبیه‌سازی‌شده با نویز، از یک 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) را محاسبه و نمایش دهید؛ همچنین می‌توانید با رسم نقاط داده و خط برازش صحت نتیجه را بررسی کنید.

گزارش

1 پاسخ

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

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