ارزیابی عملکرد مدلهای رگرسیون با scikit-learn: راهنمای جامع
در دنیای یادگیری ماشین، ارزیابی عملکرد مدل نقشی اساسی در سنجش کارایی و دقت آن در پیشبینی مقادیر پیوسته ایفا میکند. انتخاب معیارهای مناسب برای ارزیابی، به درک عمیق از نقاط قوت و ضعف مدل و تصمیمگیری آگاهانه در خصوص کاربرد آن منجر خواهد شد. کتابخانه scikit-learn به عنوان ابزاری قدرتمند، مجموعهای از ابزارها را برای ارزیابی جامع مدلهای رگرسیون ارائه میدهد که در این نوشتار به تشریح آنها میپردازیم.
معیارهای بنیادی ارزیابی:
-
میانگین خطای مربعات (Mean Squared Error – MSE): این معیار، میانگین مربع تفاوت بین مقادیر واقعی و مقادیر پیشبینی شده توسط مدل را نشان میدهد. هرچه MSE کوچکتر باشد، نشاندهنده دقت بیشتر مدل در پیشبینی مقادیر است.
-
ریشه میانگین مربع خطا (Root Mean Squared Error – RMSE): ریشه دوم MSE را نشان میدهد و واحد آن با واحد متغیر وابسته یکسان است. RMSE، تفسیری آسانتر از MSE ارائه میدهد و به عنوان معیاری ملموس برای خطای مدل در نظر گرفته میشود.
-
میانگین خطای مطلق (Mean Absolute Error – MAE): میانگین مقادیر مطلق تفاوت بین مقادیر واقعی و مقادیر پیشبینی شده توسط مدل را نشان میدهد. MAE، بر خلاف MSE، به مقادیر پرت (outlier) حساس نیست و در مواردی که وجود مقادیر پرت در دادهها محتمل است، میتواند معیار مناسبتری باشد.
-
ضریب تعیین (Coefficient of Determination – R^2): نسبت واریانس مقادیر پیشبینی شده توسط مدل به واریانس کل دادهها را نشان میدهد. R^2، مقادیری بین ۰ و ۱ میگیرد و هرچه به ۱ نزدیکتر باشد، نشاندهنده قدرت بیشتر مدل در تبیین واریانس متغیر وابسته است.
-
تجزیه و تحلیل واریانس (ANOVA): این روش آماری، تفاوت بین واریانس مقادیر پیشبینی شده توسط مدل و واریانس خطا را بررسی میکند. ANOVA، در مواردی که به بررسی اثرات متغیرهای مستقل بر متغیر وابسته میپردازیم، کاربرد فراوانی دارد.
ابزارهای کاربردی scikit-learn:
-
mean_squared_error: این تابع، MSE را برای دو مجموعه داده محاسبه میکند.
-
mean_absolute_error: این تابع، MAE را برای دو مجموعه داده محاسبه میکند.
-
r2_score: این تابع، R^2 را برای دو مجموعه داده محاسبه میکند.
-
mean_squared_error_variance_decomposition: این تابع، سهم هر متغیر مستقل در تبیین واریانس متغیر وابسته را با استفاده از ANOVA تجزیه و تحلیل میکند.
نحوه استفاده از ابزارها:
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score, mean_squared_error_variance_decomposition
# پیشبینی مقادیر برای داده های تست
y_pred = model.predict(X_test)
# محاسبه معیارهای ارزیابی
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))
print("Root Mean Squared Error:", np.sqrt(mean_squared_error(y_test, y_pred)))
print("Mean Absolute Error:", mean_absolute_error(y_test, y_pred))
print("Coefficient of Determination:", r2_score(y_test, y_pred))
# تجزیه و تحلیل واریانس (اختیاری)
if len(X_test.columns) > ۱:
# تجزیه و تحلیل واریانس برای بررسی سهم هر متغیر مستقل
results = mean_squared_error_variance_decomposition(y_test, y_pred)
print("Variance Explained by Each Feature:")
for i, name, score in zip(range(len(results.explained_variance_)), X_test.columns, results.explained_variance_):
print(f"{name}: {score:.۲f}")