Sai số bình phương trung bình và căn bậc hai của nó
Với bài toán hồi quy, sai số bình phương trung bình (MSE) là hàm mất mát mặc định, còn
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, numpy-axis-reduction.
Nội dung đề bài
Mô tả bài toán
Với bài toán hồi quy, sai số bình phương trung bình (MSE) là hàm mất mát mặc định, còn căn bậc hai của nó (RMSE) là con số dễ đọc hơn vì cùng đơn vị với dữ liệu. Bài này luyện đúng một bước: tính hai chỉ số đó từ hai danh sách số.
Yêu cầu
Viết hàm errormetrics(ytrue, ypred) trả về dict hai khoá "mse" và "rmse". Gọi ri = ytrue[i] - ypred[i] là phần dư của mẫu thứ i và n là số mẫu:
- mse = (r12 + r22 + ... + rn2) / n
- rmse = sqrt(mse)
Quy ước nộp bài
Nộp hàm error_metrics trong solution.py. Hệ thống gọi hàm trực tiếp với hai đối số theo tên, so giá trị trả về với sai số 1e-6; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- y_true: danh sách giá trị thật, mỗi phần tử là số thực.
- y_pred: danh sách giá trị dự đoán, cùng độ dài với y_true.
Output
Dict {"mse": ..., "rmse": ...} với hai số thực không âm, rmse luôn lớn hơn hoặc bằng mse khi mse >= 1.
Ràng buộc
- Số mẫu từ 1 đến 20, hai danh sách luôn cùng độ dài.
- Phải bình phương phần dư TRƯỚC khi lấy trung bình.
- Chỉ lấy căn bậc hai cho rmse, không lấy căn cho mse.
Ví dụ 1
Input
error_metrics(y_true=[1, 2, 3], y_pred=[1, 2, 3])
Output
{"mse": 0.0, "rmse": 0.0}
Ví dụ 2
Input
error_metrics(y_true=[3, 5], y_pred=[2, 1])
Output
{"mse": 8.5, "rmse": 2.9154759474226504}
Giải thích
Với y_true = [3, 5] và y_pred = [2, 1] thì phần dư là 1 và 4, bình phương là 1 và 16, nên mse = (1 + 16) / 2 = 8.5 và rmse = sqrt(8.5) = 2.9154759474226504.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
