aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

MAPE: vì sao giá trị thực gần 0 làm sai số phần trăm tăng mạnh?

Suong Nguyen by Suong Nguyen
12/11/2026
in AI
0
585
SHARES
3.2k
VIEWS
Summarize with ChatGPTShare to Facebook

Một mô hình dự báo sai đúng một đơn vị trên hai đơn hàng. Đơn đầu có số lượng thực là 100, đơn sau có số lượng thực là 1. Sai số tuyệt đối bằng nhau nhưng khi chia theo số lượng thực, một dòng đóng góp 1% và dòng kia đóng góp 100%. Nếu báo cáo chỉ cho một con số trung bình, nhóm vận hành khó thấy điều gì đã kéo kết quả lên.

Đọc mẫu số trước khi đọc điểm

MAPE lấy trung bình các tỷ lệ sai số tuyệt đối so với độ lớn của giá trị thực. Ở ví dụ này, mỗi hàng có trọng số như nhau trong phép trung bình, nhưng mẫu số nhỏ khiến cùng một đơn vị sai số tạo tỷ lệ lớn hơn. Đừng diễn giải 100% thành số đơn sai hoặc tỷ lệ dự báo sai hoàn toàn: đây là một phép đo độ lớn sai số.

Ví dụ dưới đây dùng Python chuẩn với số liệu tự tạo. Tài liệu scikit-learn 1.9.1 được đối chiếu ngày 12/11/2026. Hàm minh họa chủ động từ chối mẫu số 0 để bạn thấy quyết định nghiệp vụ; nó không tái hiện cách thư viện xử lý 0.

from math import isclose

def relative_errors(actual, predicted):
    if not actual or len(actual) != len(predicted):
        raise ValueError("Expected two nonempty sequences of equal length")
    if any(value == 0 for value in actual):
        raise ValueError("Zero actual needs a reporting policy")
    return [abs(y - p) / abs(y) for y, p in zip(actual, predicted)]

errors = relative_errors([100, 1], [101, 2])
assert errors == [0.01, 1.0]
assert isclose(sum(errors) / len(errors), 0.505)
print(errors)
print(f"{100 * sum(errors) / len(errors):.1f}%")

Kết quả kiểm tra là hai tỷ lệ 0.01 và 1.0, trung bình hiển thị 50.5%. Tỷ lệ thô 0.505 và nhãn 50.5% mô tả cùng một giá trị. Khi chuyển metric giữa backend và dashboard, đặt tên trường hoặc đơn vị để tránh nhân 100 hai lần.

Giá trị thực bằng 0 cần một quy tắc riêng

Chạy cùng phép tính với giá trị thực 0 sẽ không có tỷ lệ theo công thức thông thường. Tài liệu scikit-learn cho biết hàm của thư viện dùng epsilon để tránh chia cho 0; khi dự báo khác 0, điểm có thể rất lớn. Giá trị hữu hạn ở đây không chứng minh phép so phần trăm đã có ý nghĩa nghiệp vụ.

Nếu dữ liệu có những ngày không có đơn, đừng bỏ chúng mà vẫn gọi kết quả là điểm trên toàn bộ ngày. Một báo cáo có thể trình bày MAE trên tất cả các ngày, MAPE trên nhóm ngày có mẫu số hợp lệ, và số ngày bị loại. Hai mẫu số của báo cáo cần được ghi rõ. Có thể giữ một bảng riêng cho lỗi dự báo ở những ngày bằng 0 để người đọc không mất thông tin.

Kiểm tra trước khi đưa lên dashboard

Tạo ba fixture: một dòng bình thường, một dòng có mẫu số nhỏ và một dòng có mẫu số 0. Đối chiếu từng tỷ lệ trước khi gộp. Với nhóm thật, hãy kiểm tra cả số hàng và khoảng giá trị thực; một số trung bình thay đổi có thể do cơ cấu dữ liệu thay đổi dù sai số tuyệt đối chưa tăng.

Ví dụ không xử lý NaN, vô cực, trọng số hay nhiều đầu ra, không chạy scikit-learn và không so hiệu năng mô hình. Mục đích là kiểm tra diễn giải của một phép tính nhỏ trước khi chọn metric cho hệ thống.

Kết luận

MAPE trả lời câu hỏi sai bao nhiêu so với giá trị thực của từng hàng. Khi giá trị thực có thể gần 0 hoặc bằng 0, hãy ghi rõ phạm vi tính điểm và đọc kèm sai số theo đơn vị gốc.

Nguồn tham khảo

  • scikit-learn 1.9.1: mean_absolute_percentage_error

Tags: Đánh giá mô hìnhMachine LearningPython
SummarizeShare234
Suong Nguyen

Suong Nguyen

Related Stories

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

StandardScaler: hiểu ddof=0 và cách xử lý cột hằng số

by Suong Nguyen
11/11/2026
0

Tự tính một ví dụ chuẩn hóa nhỏ để hiểu mẫu số N, phân biệt độ lệch chuẩn mẫu và xử lý cột không có biến thiên.

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

MAE và RMSE: một sai số lớn có thể đổi cách xếp hạng dự đoán

by Suong Nguyen
10/11/2026
0

Tính MAE và RMSE trên cùng dữ liệu để thấy vì sao hai bộ dự đoán có thể được xếp hạng khác nhau khi xuất hiện một lỗi...

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Macro F1 và weighted F1: lớp ít mẫu có đang bị che khuất?

by Suong Nguyen
09/11/2026
0

Tính F1 theo từng lớp rồi so sánh macro và weighted trên dữ liệu lệch lớp, với ví dụ Python nhỏ có thể kiểm tra lại.

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Log loss: vì sao dự đoán sai càng tự tin càng bị phạt nặng?

by Suong Nguyen
08/11/2026
0

Tính log loss nhị phân bằng Python, quan sát mức phạt khi xác suất cho nhãn đúng giảm và phân biệt công thức với clipping của thư viện.

Next Post
Minh họa kiến trúc backend API gọn gàng cho sản phẩm nhỏ

SQL LAG: dòng trước không nhất thiết là ngày hôm trước

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native Keyboard.dismiss: đóng bàn phím mà vẫn giữ bản nháp
  • Map.get trả undefined: khóa không tồn tại hay đã lưu giá trị undefined?
  • Handler.removeCallbacks: giữ đúng Runnable để hủy tác vụ chờ

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply