راه‌اندازی اعتبارسنجی متقابل (بسته caret) در R: راهنمای گام به گام

مقدمه ای بر اعتبارسنجی متقابل

در این وبلاگ، نحوه راه‌اندازی

اعتبارسنجی متقابل
را در R با استفاده از بسته caret، یک ابزار قدرتمند برای ارزیابی مدل‌های یادگیری ماشین، بررسی می‌کنیم. در اینجا خلاصه‌ای از آنچه پوشش دادیم آورده شده است:

  1. مقدمه ای بر اعتبارسنجی متقابل:

    • اعتبارسنجی متقابل یک تکنیک نمونه‌برداری مجدد است که به ارزیابی عملکرد مدل و جلوگیری از بیش‌برازش با آزمایش مدل بر روی زیرمجموعه‌های متعدد داده‌ها کمک می‌کند.

  2. راه‌اندازی گام به گام:

    • ما بسته caret را بارگیری کردیم و یک پیکربندی اعتبارسنجی متقابل را با استفاده از trainControl تعریف کردیم و اعتبارسنجی متقابل مکرر 10 برابر را با 5 تکرار مشخص کردیم.

    • ما همچنین پیکربندی را برای استفاده مجدد با استفاده از saveRDS ذخیره کردیم.

  3. مثال عملی:

    • با استفاده از مجموعه داده iris، یک مدل k-نزدیکترین همسایه (KNN) را با اعتبارسنجی متقابل آموزش دادیم و عملکرد آن را ارزیابی کردیم.

  4. چرا این مهم است:

    • اعتبارسنجی متقابل ارزیابی قوی مدل را تضمین می‌کند، از بیش‌برازش جلوگیری می‌کند و قابلیت بازتولید و انتخاب مدل را بهبود می‌بخشد.

  5. نتیجه‌گیری:

    • با دنبال کردن این گردش کار، می‌توانید با اطمینان مدل‌های یادگیری ماشین خود را ارزیابی کرده و اطمینان حاصل کنید که برای استقرار آماده هستند.


بیایید وارد جزئیات شویم!


راه‌اندازی گام به گام اعتبارسنجی متقابل

اعتبارسنجی متقابل یک تکنیک نمونه‌برداری مجدد است که برای ارزیابی عملکرد و قابلیت تعمیم مدل‌های یادگیری ماشین استفاده می‌شود. این به حل مشکلاتی مانند بیش‌برازش کمک می‌کند و تضمین می‌کند که عملکرد مدل در زیرمجموعه‌های مختلف داده‌ها سازگار است. با تقسیم داده‌ها به چند برابر و تکرار فرآیند، اعتبارسنجی متقابل تخمین قوی از عملکرد مدل ارائه می‌دهد.


2. راه‌اندازی گام به گام اعتبارسنجی متقابل

گام 1: بارگیری کتابخانه لازم

library(caret)
  • هدف: بسته caret ابزارهایی را برای آموزش و ارزیابی مدل‌های یادگیری ماشین، از جمله اعتبارسنجی متقابل، فراهم می‌کند.


گام 2: تعریف کنترل آموزش برای اعتبارسنجی متقابل

train_control <- trainControl( method = "repeatedcv", # Repeated cross-validation number = 10, # 10 folds repeats = 5, # 5 repeats savePredictions = "final" # Save predictions for the final model)
  • هدف: پیکربندی فرآیند اعتبارسنجی متقابل:

    • اعتبارسنجی متقابل مکرر: داده‌ها را به 10 برابر تقسیم می‌کند و فرآیند را 5 بار تکرار می‌کند.

    • ذخیره پیش‌بینی‌ها: تضمین می‌کند که پیش‌بینی‌ها از مدل نهایی برای ارزیابی ذخیره می‌شوند.


گام 3: ذخیره شی کنترل آموزش

saveRDS(train_control, "./train_control_config.Rds")
  • هدف: پیکربندی اعتبارسنجی متقابل را برای استفاده مجدد در تحلیل‌های آینده روی دیسک ذخیره می‌کند.


مثال: اعتبارسنجی متقابل در عمل

بیایید یک مثال عملی را با استفاده از یک مجموعه داده نمونه بررسی کنیم.

گام 1: بارگیری مجموعه داده

برای این مثال، از مجموعه داده iris استفاده می‌کنیم که در R گنجانده شده است.

data(iris)

گام 2: تعریف پیکربندی اعتبارسنجی متقابل

library(caret)# Define the cross-validation configurationtrain_control <- trainControl( method = "repeatedcv", # Repeated cross-validation number = 10, # 10 folds repeats = 5, # 5 repeats savePredictions = "final" # Save predictions for the final model)

گام 3: آموزش یک مدل با استفاده از اعتبارسنجی متقابل

ما یک مدل ساده k-نزدیکترین همسایه (KNN) را با استفاده از اعتبارسنجی متقابل آموزش خواهیم داد.

# Train a KNN model using cross-validationset.seed(123)model <- train( Species ~ ., # Formula: Predict Species using all other variables data = iris, # Dataset method = "knn", # Model type: K-Nearest Neighbors trControl = train_control # Cross-validation configuration)

خروجی:

k-Nearest Neighbors 150 samples 4 predictor 3 classes: 'setosa', 'versicolor', 'virginica' No pre-processingResampling: Cross-Validated (10 fold, repeated 5 times) Summary of sample sizes: 135, 135, 135, 135, 135, 135, ... Resampling results across tuning parameters: k Accuracy Kappa 5 0.9666667 0.95 7 0.9666667 0.95 9 0.9666667 0.95 Accuracy was used to select the optimal model using the largest value.The final value used for the model was k = 5.

گام 4: ذخیره پیکربندی اعتبارسنجی متقابل

saveRDS(train_control, "./train_control_config.Rds")# (Optional) Load the saved configurationtrain_control <- readRDS("./train_control_config.Rds")

چرا این گردش کار مهم است

این گردش کار تضمین می‌کند که مدل شما به طور قوی و پیوسته ارزیابی می‌شود. با استفاده از اعتبارسنجی متقابل، می‌توانید:

  1. جلوگیری از بیش‌برازش: اعتبارسنجی متقابل با آزمایش بر روی زیرمجموعه‌های متعدد داده‌ها، تخمین قابل اعتمادتری از عملکرد مدل ارائه می‌دهد.

  2. تضمین قابلیت بازتولید: ذخیره پیکربندی اعتبارسنجی متقابل به شما امکان می‌دهد تنظیمات یکسانی را در تحلیل‌های آینده استفاده مجدد کنید.

  3. بهبود انتخاب مدل: اعتبارسنجی متقابل به شما کمک می‌کند تا با مقایسه عملکرد در پیکربندی‌های مختلف، بهترین مدل را انتخاب کنید.


نتیجه‌گیری

اعتبارسنجی متقابل یک تکنیک ضروری برای ارزیابی مدل‌های یادگیری ماشین است. با دنبال کردن این گردش کار، می‌توانید اطمینان حاصل کنید که مدل‌های شما قوی، تعمیم‌پذیر و آماده برای استقرار هستند. آماده‌اید آن را امتحان کنید؟ بسته caret را نصب کنید و از امروز شروع به راه‌اندازی اعتبارسنجی متقابل در پروژه‌های خود کنید!

install.packages("caret")library(caret)

کدنویسی خوبی داشته باشید! Smile