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

Accuracy theo batch: cộng số đúng và số mẫu trước khi chia

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

Pipeline đánh giá chia dữ liệu thành nhiều batch rồi ghi accuracy từng batch. Nếu lấy trung bình các số ấy mà không xét kích thước batch, một batch cuối chỉ có một mẫu có thể nhận trọng số bằng cả batch lớn. Báo cáo thay đổi dù các dự đoán gốc không đổi.

Bài đọc tài liệu scikit-learn 1.9.1 và NumPy 2.5 ngày 04/11/2026. Ví dụ chạy bằng Python 3.9.6 với thư viện chuẩn, không chạy hai thư viện trên, không huấn luyện hay gọi model. Số đếm được tự tạo để kiểm tra phép tổng hợp, không phải kết quả đo một sản phẩm AI.

Chốt đơn vị của metric

Ở đây, mỗi mẫu có một nhãn thật và một nhãn dự đoán, mỗi mẫu có trọng số bằng nhau. Accuracy toàn tập là tổng số mẫu đúng chia tổng số mẫu. Không áp dụng trực tiếp ví dụ cho token accuracy có mask, multilabel hoặc metric dùng trọng số nghiệp vụ khác.

Tài liệu accuracy_score cho phép trả tỷ lệ đúng hoặc số đúng. Điều đó gợi ý cách lưu thông tin trung gian: giữ cả tử số và mẫu số, thay vì chỉ lưu một phần trăm đã làm tròn. Khi ghép các phần dữ liệu, bạn còn đủ thông tin để tổng hợp theo đúng đơn vị.

Một batch nhỏ có thể làm lệch trung bình

Lưu thành batch_accuracy.py, chạy python3 batch_accuracy.py:

from math import isclose

def overall_accuracy(batches):
    if not batches:
        raise ValueError("Can it nhat mot batch")
    correct_sum = 0
    sample_sum = 0
    for correct, samples in batches:
        if not isinstance(correct, int) or not isinstance(samples, int):
            raise ValueError("So dem phai la integer")
        if samples <= 0 or not 0 <= correct <= samples:
            raise ValueError("So dem khong hop le")
        correct_sum += correct
        sample_sum += samples
    return correct_sum / sample_sum

batches = [(1, 1), (0, 9)]
mean_of_batches = sum(c / n for c, n in batches) / len(batches)
overall = overall_accuracy(batches)
assert isclose(mean_of_batches, 0.5)
assert isclose(overall, 0.1)
print(mean_of_batches, overall)

Kết quả đã kiểm tra là 0.5 0.1. Batch đầu đúng một mẫu; batch sau sai cả chín. Tổng cộng chỉ có một mẫu đúng trong mười mẫu, nên tỷ lệ toàn tập là 0,1. Trung bình 0,5 đang cho mỗi batch trọng số bằng nhau, không cho mỗi mẫu trọng số bằng nhau.

Nếu tính trung bình có trọng số của từng accuracy, trọng số cần là số mẫu của batch trong phạm vi này. Tuy nhiên, cộng số đếm trước khi chia dễ tránh nhầm hơn và không cần làm tròn từng tỷ lệ ở bước trung gian.

Kiểm tra tính ổn định khi chia lại batch

Chạy thêm trong cùng file:

split_batches = [(1, 1), (0, 3), (0, 3), (0, 3)]
split_mean = sum(c / n for c, n in split_batches) / len(split_batches)
assert isclose(split_mean, 0.25)
assert isclose(overall_accuracy(split_batches), overall)
print(split_mean, overall_accuracy(split_batches))

Phép thử đã xác nhận trung bình batch đổi thành 0,25, còn accuracy tổng vẫn là 0,1. Chúng ta chỉ chia chín mẫu sai thành ba phần, không tạo ra dự đoán mới. Đây là case nhỏ hữu ích để kiểm tra hàm tổng hợp trong pipeline đánh giá.

Nếu mọi batch có cùng kích thước, trung bình các accuracy chưa làm tròn có thể trùng kết quả tổng. Điều đó không bảo đảm code vẫn đúng khi batch cuối ngắn hơn hoặc một phần dữ liệu bị loại khỏi đánh giá.

Áp dụng vào log đánh giá

Lưu correct_count, sample_count, phiên bản model và tập dữ liệu tương ứng. Kiểm tra mẫu có bị lặp khi ghép nhiều worker hay không; cộng đúng công thức vẫn có thể sai nếu mỗi mẫu được đếm hai lần. Định nghĩa rõ các mẫu bị loại và lý do, để mẫu số của báo cáo có thể đối chiếu.

Với dataset rỗng, demo báo lỗi thay vì hiển thị 0% rồi làm người đọc tưởng đã có quan sát. Với metric khác accuracy, hãy xem metric có thể tổng hợp từ những thống kê nào; không thay mọi phép tính bằng cùng một cách lấy trung bình theo batch.

Giữ tử số và mẫu số giúp báo cáo truy vết được. Khi đổi batch size mà kết quả tổng hợp thay đổi, hãy kiểm tra lại cả cách ghép dữ liệu lẫn phép chia trước khi kết luận model đã tốt lên hoặc kém đi.

Nguồn tham khảo

  • scikit-learn: accuracy_score
  • NumPy: trung bình có trọng số

Tags: AIĐánh giáPython
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

Top-k accuracy: nhãn đúng nằm trong danh sách chưa có nghĩa dự đoán đầu tiên đúng

by Suong Nguyen
06/11/2026
0

Tính top-1 và top-2 trên cùng bộ score để phân biệt hệ thống chọn một nhãn với hệ thống gợi ý nhiều nhã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

Min-max scaling: học min và max từ train, không học lại từ test

by Suong Nguyen
05/11/2026
0

Dùng một ví dụ số để phát hiện rò rỉ dữ liệu khi chuẩn hóa trước khi chia tập hoặc fit lại trên test.

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

Confusion matrix: giữ đúng thứ tự nhãn và ý nghĩa hàng, cột

by Suong Nguyen
03/11/2026
0

Dựng ma trận nhầm lẫn nhiều lớp bằng fixture nhỏ để tránh đảo nhãn thật, dự đoán hoặc đổi thứ tự nhãn khi đưa lên báo cáo.

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

Brier score: chấm xác suất dự đoán, không chỉ nhãn đúng hay sai

by Suong Nguyen
02/11/2026
0

Dùng một fixture nhị phân để thấy hai bộ dự đoán có cùng accuracy vẫn khác Brier score, và hiểu giới hạn khi đọc điểm này.

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

SQL LIKE: tìm dấu % và _ như ký tự thật bằng ESCAPE

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 ActivityIndicator: dừng spinner có cần bỏ cả vùng giữ chỗ?
  • Array.reduce thiếu initialValue: mảng rỗng lỗi, một phần tử không gọi callback
  • Android SharedPreferences.apply: đọc lại được chưa chứng minh đã ghi xong xuống đĩa

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