التحقق من صحة المغادرة لمرة واحدة في بايثون (مع أمثلة)


لتقييم أداء نموذج ما على مجموعة بيانات، نحتاج إلى قياس مدى مطابقة التنبؤات التي قدمها النموذج مع البيانات المرصودة.

تُعرف إحدى الطرق المستخدمة بشكل شائع للقيام بذلك باسم “التحقق من صحة المغادرة لمرة واحدة” (LOOCV) ، والتي تستخدم الطريقة التالية:

1. قم بتقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار، باستخدام جميع الملاحظات باستثناء ملاحظة واحدة كجزء من مجموعة التدريب.

2. قم بإنشاء نموذج باستخدام البيانات من مجموعة التدريب فقط.

3. استخدم النموذج للتنبؤ بقيمة استجابة الملاحظة المستبعدة من النموذج وحساب متوسط مربع الخطأ (MSE).

4. كرر هذه العملية مرات . احسب اختبار MSE كمتوسط لجميع اختبار MSEs.

يقدم هذا البرنامج التعليمي مثالاً خطوة بخطوة لكيفية تشغيل LOOCV لنموذج معين في Python.

الخطوة 1: تحميل المكتبات الضرورية

أولاً، سنقوم بتحميل الوظائف والمكتبات اللازمة لهذا المثال:

 from sklearn. model_selection import train_test_split
from sklearn. model_selection import LeaveOneOut
from sklearn. model_selection import cross_val_score
from sklearn. linear_model import LinearRegression
from numpy import means
from numpy import absolute
from numpy import sqrt
import pandas as pd

الخطوة 2: إنشاء البيانات

بعد ذلك، سنقوم بإنشاء إطار بيانات الباندا الذي يحتوي على متغيرين متوقعين، x1 و x2 ، ومتغير استجابة واحد y.

 df = pd.DataFrame({' y ': [6, 8, 12, 14, 14, 15, 17, 22, 24, 23],
                   ' x1 ': [2, 5, 4, 3, 4, 6, 7, 5, 8, 9],
                   ' x2 ': [14, 12, 12, 13, 7, 8, 7, 4, 6, 5]})

الخطوة 3: إجراء التحقق من صحة الإجازة الواحدة

بعد ذلك، سنلائم نموذج الانحدار الخطي المتعدد لمجموعة البيانات وننفذ LOOCV لتقييم أداء النموذج.

 #define predictor and response variables
X = df[[' x1 ', ' x2 ']]
y = df[' y ']

#define cross-validation method to use
cv = LeaveOneOut()

#build multiple linear regression model
model = LinearRegression()

#use LOOCV to evaluate model
scores = cross_val_score(model, X, y, scoring=' neg_mean_absolute_error ',
                         cv=cv, n_jobs=-1)

#view mean absolute error
mean(absolute(scores))

3.1461548083469726

من النتيجة يمكننا أن نرى أن متوسط الخطأ المطلق (MAE) كان 3.146 . أي أن متوسط الخطأ المطلق بين التنبؤ النموذجي والبيانات المرصودة فعلياً هو 3.146.

بشكل عام، كلما انخفض MAE، كلما كان النموذج قادرًا على التنبؤ بالملاحظات الفعلية بشكل أفضل.

مقياس آخر شائع الاستخدام لتقييم أداء النموذج هو جذر متوسط مربع الخطأ (RMSE). يوضح التعليمة البرمجية التالية كيفية حساب هذا المقياس باستخدام LOOCV:

 #define predictor and response variables
X = df[[' x1 ', ' x2 ']]
y = df[' y ']

#define cross-validation method to use
cv = LeaveOneOut()

#build multiple linear regression model
model = LinearRegression()

#use LOOCV to evaluate model
scores = cross_val_score(model, X, y, scoring=' neg_mean_squared_error ',
                         cv=cv, n_jobs=-1)

#view RMSE
sqrt(mean(absolute(scores)))

3.619456476385567

من النتيجة يمكننا أن نرى أن جذر متوسط مربع الخطأ (RMSE) كان 3.619 . كلما انخفض RMSE، كلما كانت قدرة النموذج على التنبؤ بالملاحظات الفعلية أفضل.

من الناحية العملية، نحن عادةً نلائم عدة نماذج مختلفة ونقارن RMSE أو MAE لكل نموذج لتحديد النموذج الذي ينتج أقل معدلات خطأ في الاختبار وبالتالي فهو النموذج الأفضل للاستخدام.

مصادر إضافية

مقدمة سريعة عن التحقق من صحة المغادرة لمرة واحدة (LOOCV)
دليل كامل للانحدار الخطي في بايثون

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *