Để biết liệu mô hình được thiết kế có hoạt động tốt hay không, chúng ta phải kiểm tra nó dựa trên những điểm dữ liệu không có trong quá trình đào tạo mô hình. Trong trường hợp này, một phần của tập dữ liệu sẽ không được sử dụng để huấn luyện mô hình. Khi mô hình đã sẵn sàng, tập dữ liệu dành riêng đó sẽ được sử dụng cho mục đích thử nghiệm. Giá trị của biến phụ thuộc được dự đoán trong giai đoạn thử nghiệm và độ chính xác của mô hình được tính toán trên cơ sở sai số dự đoán, tức là sự khác biệt về giá trị thực tế và giá trị dự đoán của biến phụ thuộc. Mục tiêu của xác thực chéo là kiểm tra khả năng của mô hình trong việc dự đoán dữ liệu mới không được sử dụng để ước tính dữ liệu đó. Có một số số liệu thống kê được sử dụng để đánh giá độ chính xác của mô hình hồi quy:
Lỗi bình phương gốc (RMSE) : là căn bậc hai của chênh lệch bình phương trung bình giữa giá trị thực và giá trị dự đoán của biến mục tiêu. Nó đưa ra sai số dự đoán trung bình do mô hình thực hiện, do đó RMSE càng nhỏ mô hình càng tốt.
Sai số tuyệt đối trung bình (MAE): Số liệu này cung cấp sự khác biệt tuyệt đối giữa giá trị thực tế và giá trị được mô hình dự đoán cho biến mục tiêu. Nếu giá trị của các giá trị ngoại lai không liên quan nhiều đến độ chính xác của mô hình, thì MAE có thể được sử dụng để đánh giá hoạt động của mô hình.MAE càng nhỏ mô hình càng tốt.
Lỗi \(R^2\) : Giá trị của chỉ số R bình phương cung cấp ý tưởng về bao nhiêu phần trăm phương sai trong biến phụ thuộc được các biến độc lập giải thích chung. Nói cách khác, nó phản ánh độ mạnh của mối quan hệ giữa biến mục tiêu và mô hình trên thang điểm từ 0 - 100%. Vì vậy, \(R^2\) càng cao mô hình càng tốt.
Trong quá trình phân vùng tập dữ liệu hoàn chỉnh thành tập huấn luyện và tập xác nhận, có khả năng bị mất một số điểm dữ liệu quan trọng và quan trọng cho mục đích huấn luyện. Vì những dữ liệu đó không được bao gồm trong tập huấn luyện, nên mô hình không có cơ hội phát hiện một số mẫu. Tình huống này có thể dẫn đến việc trang bị quá mức (overfitting) hoặc không vừa vặn (under fitting) của mô hình. Để tránh điều này, có nhiều loại kỹ thuật xác nhận chéo khác nhau đảm bảo lấy mẫu ngẫu nhiên của tập dữ liệu đào tạo và xác nhận và tối đa hóa độ chính xác của mô hình. Một số kỹ thuật xác thực chéo phổ biến nhất là:
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html
Trong phương pháp này, tập dữ liệu được chia ngẫu nhiên thành các tập huấn luyện và thử nghiệm. Các bước sau được thực hiện để thực hiện kỹ thuật này:
set.seed(123)
random_sample <- createDataPartition(raw_moi_3$do_am_percent,
p = 0.8, list = FALSE)
training_dataset <- raw_moi_3[random_sample, ]
testing_dataset <- raw_moi_3[-random_sample, ]
model_1 <- lm(do_am_percent ~., data = training_dataset)
predictions_1 <- predict(model_1, testing_dataset)
data.frame( R2 = caret::R2(predictions_1 , testing_dataset $ do_am_percent),
RMSE = RMSE(predictions_1, testing_dataset $ do_am_percent),
MAE = MAE(predictions_1, testing_dataset $ do_am_percent))
## R2 RMSE MAE
## 1 0.01774499 0.9279801 0.7346434
Ưu điểm:
Nhược điểm:
Phương pháp này cũng chia tập dữ liệu thành 2 phần nhưng nó khắc phục được nhược điểm của phương pháp xác thực tập hợp. LOOCV thực hiện xác thực chéo theo cách sau:
train_control_2 <- trainControl(method = "LOOCV")
model_2 <- train(do_am_percent ~., data = raw_moi_3,
method = "lm",
trControl = train_control_2)
print(model_2)
## Linear Regression
##
## 1035 samples
## 228 predictor
##
## No pre-processing
## Resampling: Leave-One-Out Cross-Validation
## Summary of sample sizes: 1034, 1034, 1034, 1034, 1034, 1034, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 0.8079033 0.0772633 0.6411741
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
Ưu điểm:
Nhược điểm:
Kỹ thuật xác nhận chéo này chia dữ liệu thành K tập con (các nếp gấp) có kích thước gần như bằng nhau. Trong số K nếp gấp này, một tập hợp con được sử dụng làm tập xác nhận, và những tập còn lại sẽ tham gia vào việc huấn luyện mô hình. Sau đây là quy trình làm việc đầy đủ của phương pháp này:
set.seed(125)
train_control_3 <- trainControl(method = "cv",
number = 10)
model_3 <- train(do_am_percent ~., data = raw_moi_3,
method = "lm",
trControl = train_control_3)
print(model_3)
## Linear Regression
##
## 1035 samples
## 228 predictor
##
## No pre-processing
## Resampling: Cross-Validated (10 fold)
## Summary of sample sizes: 931, 931, 930, 931, 933, 932, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 0.8247941 0.08421977 0.6533602
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
Ưu điểm:
Nhược điểm:
Trong phương pháp này, thuật toán xác nhận chéo K-lần được lặp lại một số lần nhất định
set.seed(125)
train_control_4 <- trainControl(method = "repeatedcv",
number = 10, repeats = 3)
model_4 <- train(do_am_percent ~., data = raw_moi_3,
method = "lm",
trControl = train_control_4)
print(model_4)
## Linear Regression
##
## 1035 samples
## 228 predictor
##
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 3 times)
## Summary of sample sizes: 931, 931, 930, 931, 933, 932, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 0.828916 0.08127095 0.6518738
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
Ưu điểm: Trong mỗi lần lặp lại, mẫu dữ liệu được xáo trộn, điều này dẫn đến việc phát triển các phần dữ liệu mẫu khác nhau
Nhược điểm: Với mỗi lần lặp lại, thuật toán phải đào tạo mô hình từ đầu, có nghĩa là thời gian tính toán để đánh giá mô hình tăng lên theo số lần lặp lại