ج: كيفية استخدام traincontrol للتحكم في معلمات التدريب
لتقييم مدى قدرة النموذج على ملاءمة مجموعة بيانات، نحتاج إلى تحليل أدائه بناءً على ملاحظات لم يسبق له رؤيتها من قبل.
إحدى الطرق الأكثر شيوعًا لتحقيق ذلك هي استخدام التحقق المتقاطع k-fold ، والذي يستخدم النهج التالي:
1. قم بتقسيم مجموعة البيانات عشوائيًا إلى مجموعات k ، أو “طيات”، ذات حجم متساوٍ تقريبًا.
2. اختر إحدى الطيات كمجموعة ضبط النفس. اضبط القالب على طيات k-1 المتبقية. حساب اختبار MSE على الملاحظات في الطبقة التي تم شدها.
3. كرر هذه العملية عدة مرات، في كل مرة باستخدام مجموعة مختلفة كمجموعة الاستبعاد.
4. احسب اختبار MSE الإجمالي كمتوسط لاختبار k MSEs.
أسهل طريقة لإجراء التحقق من صحة k-fold في R هي استخدام الدالتين TrainControl() و Train() من مكتبة علامة الإقحام في R.
يتم استخدام وظيفة TrainControl () لتحديد معلمات التدريب (على سبيل المثال، نوع التحقق المتبادل المطلوب استخدامه، وعدد الطيات المراد استخدامها، وما إلى ذلك) ويتم استخدام وظيفة Train () لملاءمة النموذج مع البيانات فعليًا. .
يوضح المثال التالي كيفية استخدام الدالتين TrainControl() و train() عمليًا.
مثال: كيفية استخدام TrainControl() في R
لنفترض أن لدينا مجموعة البيانات التالية في R:
#create data frame df <- data.frame(y=c(6, 8, 12, 14, 14, 15, 17, 22, 24, 23), x1=c(2, 5, 4, 3, 4, 6, 7, 5, 8, 9), x2=c(14, 12, 12, 13, 7, 8, 7, 4, 6, 5)) #view data frame df y x1 x2 6 2 14 8 5 12 12 4 12 14 3 13 14 4 7 15 6 8 17 7 7 22 5 4 24 8 6 23 9 5
لنفترض الآن أننا نستخدم الدالة lm() لملاءمة نموذج الانحدار الخطي المتعدد لمجموعة البيانات هذه، باستخدام x1 و x2 كمتغيرين متوقعين و y كمتغير الاستجابة:
#fit multiple linear regression model to data fit <- lm(y ~ x1 + x2, data=df) #view model summary summary(fit) Call: lm(formula = y ~ x1 + x2, data = df) Residuals: Min 1Q Median 3Q Max -3.6650 -1.9228 -0.3684 1.2783 5.0208 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 21.2672 6.9927 3.041 0.0188 * x1 0.7803 0.6942 1.124 0.2981 x2 -1.1253 0.4251 -2.647 0.0331 * --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.093 on 7 degrees of freedom Multiple R-squared: 0.801, Adjusted R-squared: 0.7441 F-statistic: 14.09 on 2 and 7 DF, p-value: 0.003516
وباستخدام المعاملات الموجودة في مخرجات النموذج يمكننا كتابة نموذج الانحدار الملائم:
ص = 21.2672 + 0.7803*(× 1 ) – 1.1253(× 2 )
للحصول على فكرة عن مدى جودة أداء هذا النموذج في الملاحظات غير المرئية، يمكننا استخدام التحقق المتقاطع k-fold.
يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة TrainControl() الخاصة بحزمة علامة الإقحام لتحديد التحقق المتبادل k-fold ( الأسلوب = “cv” ) الذي يستخدم 5 طيات ( number=5 ).
نقوم بعد ذلك بتمرير وظيفة TrainControl () هذه إلى وظيفة Train () لإجراء التحقق من الصحة عبر k-fold:
library (caret) #specify the cross-validation method ctrl <- trainControl(method = " cv ", number = 5 ) #fit a regression model and use k-fold CV to evaluate performance model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl) #view summary of k-fold CV print (model) Linear Regression 10 samples 2 predictors No pre-processing Resampling: Cross-Validated (5 fold) Summary of sample sizes: 8, 8, 8, 8, 8 Resampling results: RMSE Rsquared MAE 3.612302 1 3.232153 Tuning parameter 'intercept' was held constant at a value of TRUE
من النتيجة يمكننا أن نرى أنه تم تركيب النموذج 5 مرات باستخدام حجم عينة مكون من 8 ملاحظات في كل مرة.
وفي كل مرة، تم بعد ذلك استخدام النموذج للتنبؤ بقيم المشاهدتين المحتفظ بهما وتم حساب المقاييس التالية في كل مرة:
- RMSE: جذر متوسط مربع الخطأ. يقيس هذا متوسط الفرق بين التنبؤات التي قدمها النموذج والملاحظات الفعلية. كلما انخفض مؤشر RMSE، زادت دقة النموذج في التنبؤ بالملاحظات الفعلية.
- MAE: متوسط الخطأ المطلق. هذا هو متوسط الفرق المطلق بين التنبؤات التي قدمها النموذج والملاحظات الفعلية. كلما انخفض MAE، زادت دقة النموذج في التنبؤ بالملاحظات الفعلية.
يتم عرض متوسط قيم RMSE وMAE للمكونات الخمسة في النتيجة:
- آر إم إس إي: 3.612302
- ماي: 3.232153
تعطينا هذه المقاييس فكرة عن أداء النموذج على البيانات الجديدة.
من الناحية العملية، نحن عادةً ما نلائم عدة نماذج مختلفة ونقارن هذه المقاييس لتحديد النموذج الذي يحقق أفضل أداء على البيانات غير المرئية.
على سبيل المثال، يمكننا ملاءمة نموذج الانحدار متعدد الحدود وإجراء التحقق من صحة K-fold عليه لمعرفة كيفية مقارنة مقاييس RMSE وMAE بنموذج الانحدار الخطي المتعدد.
ملاحظة رقم 1: في هذا المثال، اخترنا استخدام k=5 طيات، ولكن يمكنك اختيار أي عدد من الطيات التي تريدها. من الناحية العملية، نختار عادة ما بين 5 إلى 10 طبقات، حيث يثبت أن هذا هو العدد الأمثل للطبقات التي تنتج معدلات خطأ موثوقة في الاختبار.
ملاحظة رقم 2 : تقبل الدالة TrainControl() العديد من الوسائط المحتملة. يمكنك العثور على الوثائق الكاملة لهذه الوظيفة هنا .
مصادر إضافية
توفر البرامج التعليمية التالية معلومات إضافية حول نماذج التدريب:
مقدمة إلى التحقق من صحة K-Fold
مقدمة للتحقق من صحة الإجازة الواحدة
ما هو التجهيز الزائد في التعلم الآلي؟