Đánh giá độ chính xác model máy học năm 2024

Trong một bài toán Machine Learning, mỗi Data Analyst sẽ có những phương pháp, cách giải khác nhau dựa vào những mô hình khác nhau. Vậy, làm cách nào để chọn được mô hình thích hợp với bài toán bạn đang giải quyết? Việc đầu tiên cần làm chính là đánh giá mô hình dựa trên dữ liệu mới. Tùy thuộc vào tính chất của bộ dữ liệu như lớn hay nhỏ sẽ có nhiều cách để phân chia khác nhau. Thông thường, Data Analyst sẽ phân chia bộ dữ liệu thành 3 phần: Training Set, Test Set và Validation Set

Trong một bài toán Machine Learning, mỗi Data Analyst sẽ có những phương pháp, cách giải khác nhau dựa vào những mô hình khác nhau. Vậy, làm cách nào để chọn được mô hình thích hợp với bài toán bạn đang giải quyết? Việc đầu tiên cần làm chính là đánh giá mô hình dựa trên dữ liệu mới. Việc đánh giá mô hình sẽ giải quyết được những vấn đề sau: mức độ thành công của mô hình, khi nào nên cập nhật mô hình,...Những bài toán khác nhau sẽ dựa vào tiêu chí khác nhau để đánh giá mức độ thành công của nó. Vì vậy cần phải xác định thứ tự ưu tiên của các tiêu chí cho việc đánh giá mô hình.

Tùy thuộc vào tính chất của bộ dữ liệu như lớn hay nhỏ sẽ có nhiều cách để phân chia khác nhau. Thông thường, Data Analyst sẽ phân chia bộ dữ liệu thành 3 phần: Training Set, Test Set và Validation Set

GIẢI MÃ TRAINING SET, TESTING SET VÀ VALIDATION SET

1. Training Set là gì?

Training Set là là một tập dữ liệu dùng để huấn luyện cho mô hình của thuật toán Machine Learning. Đây thường là một tập dữ liệu có kích thước lớn, được dùng để training trong quá trình huấn luyện máy học.

Trong mô hình Hồi quy tuyến tính (Linear Regression), các điểm trong tập huấn luyện được sử dụng để tìm ra hàm số hay đường phù hợp nhất mô tả quan hệ giữa đầu vào và đầu ra của tập dữ liệu huấn luyện bằng cách sử dụng một số phương pháp tối ưu hóa như công thức nghiệm hoặc các thuật toán tối ưu gần đúng như gradient descent hay stochastic gradient descent.

Training Set bao gồm input và output tương ứng, trong đó output thường được gọi là nhãn (label hoặc target). Các thuật toán nói chung sẽ tìm cách tối ưu sai số dự đoán trên tập huấn luyện này đến mức đủ tốt. Trong trường hợp overfitting sai số dự đoán của mô hình trên tập huấn luyện có thể rất thấp, thậm chí = 0%.

2. Testing Set là gì?

Nói một cách dễ hiểu, testing set là tập dữ liệu dùng để test sau khi máy tính đã học xong. Một mô hình máy học sau khi được huấn luyện, sẽ cần phải được kiểm chứng xem nó có đạt hiệu quả không. Mô hình máy học cũng vậy, sau mỗi quá trình huấn luyện, các mô hình này sẽ được kiểm chứng độ chính xác, nếu đáp ứng được yêu cầu thì là đạt, không thì cần phải xem xét lại. Và để kiểm nghiệm được độ chính xác của mô hình này, người ta dùng tập Testing set. Khác với Training set, Testing set chỉ gồm các giá trị input (TD, GC, YKNTK, TI, và RRCN) mà không có giá trị output (YDM).

\=> Testing set là tập các giá trị input và được dùng để kiểm thử độ chính xác của những mô hình máy học sau khi được huấn luyện.

3. Validation Set là gì?

Trước khi nắm được Validation Set bạn cần tìm hiểu khái niệm Overfitting. Giống như training set, validation set cũng bao gồm các cặp giá trị input và output tương ứng. Tuy nhiên, input & output không dùng để huấn luyện trong quá trình máy học mà sử dụng để kiểm tra độ chính xác của mô hình máy học trong quá trình huấn luyện. Vậy sự khác nhau giữa công dụng Testing Set và Validation Set là gì ? Testing được dùng để kiểm thử sau quá trình huấn luyện, còn validation set được sử dụng để kiểm thử trong quá trình huấn luyện. Chính vì vậy, thuật ngữ overfitting (hiện tượng mô hình dự đoán quá khớp với tập training set, dẫn đến dự đoán không hiệu quả đối với tập testing set.) cần phải nắm rõ trong quá trình sử dụng. Thông thường, người ta ngầm cho rằng Validation set mà có độ chính xác cao thì tập Testing set cũng có độ chính xác cao. Do đó, quá trình training chủ yếu dựa trên kết quả của tập Validation set chứ không phải tập training set.

\=> Validation set là tập các giá trị input đi kèm với giá trị output và được dùng để kiểm thử độc chính xác của mô hình máy học trong quá trình huấn luyện.

Hy vọng bài viết này sẽ giúp các bạn hiểu được định nghĩa khái quát của 3 tập dữ liệu và cách phân chia dữ liệu phù hợp với từng bài toán.

Chương trình đào tạo: Phân tích dữ liệu, Khoa học dữ liệu, Kĩ sư dữ liệu, Lập trình ứng dụng.

Trong machine learning (học máy), classification (phân loại) đề cập đến việc predict (dự đoán) label (nhãn) của một đầu vào dữ liệu. Bài viết này sẽ đề cập đến các thông số đo lường, phương đánh giá mô hình phân loại được sử dụng phổ biến: accuracy, precision, recall, F-1 Score, ROC curve, và AUC. So sánh giữa 2 thông số đo lường mà mọi người dễ nhầm lẫn là precision và recall.

Trong bài viết này, có một số thuật ngữ được sử dụng như sau:

  • Predicted (giá trị dự đoán): là kết quả dự đoán của mô hình
  • Actual (giá trị thực): thu được bằng cách quan sát hoặc đo lường thực tế dữ liệu (luôn luôn đúng)
  • Positive – P và Negative – N
  • True Positive – TP: giá trị actual và predicted đều là positive
  • False Positive – FP: giá trị actual là negative nhưng predicted là positive
  • True Negative – TN: giá trị actual và predicted đều là negative
  • True Positive – TP: giá trị predicted là negative nhưng actual là positive

1. Binary Classification (phân loại nhị phân)

Binary classification, giống như cái tên là giải quyết các bài toán phân loại chỉ có 2 nhãn. Nói chung, một câu hỏi có/không hoặc một thiết lập với kết quả 0-1 được mô hình hóa như một bài toán nhị phân. Ví dụ như bài toán xem một email có phải là spam hay không.

Với 2 nhãn, có thể nói về mẫu positive (tích cực) và mẫu negative (tiêu cực) sample. Trong trường hợp này, có thể nói email là spam (positive – tích cực) hoặc không spam (negative – tiêu cực).

Đánh giá độ chính xác model máy học năm 2024

Đối với một sample nhất định, actual class có thể là postive và negative. Tương tụ với predicted class cũng được coi là postive và negative. Sử dụng confusion matrix (ma trận nhầm lẫn) để có thể dễ dàng hình dung kết quả của mô hình được trình bày ở hình trên. Trong đó:

  1. True Positive (TP): predict và actual đều là positive (mô hình phân loại đúng mẫu positive)
  2. False Positive (FP): actual là positive nhưng predict lại là negative (mô hình bị nhầm lẫn mẫu positive là negative)
  3. True Negative (TN): predict và actual đều là negative (mô hình phân loại đúng mẫu negative)
  4. False Negative (FN): actual là negative nhưng predict là positive (mô hình bị nhầm lẫn mẫu negative là positive)

Đường chéo của confusion matrix thể hiện các dự đoán chính xác. Rõ ràng mô hình càng tin cậy nếu phần lớn các dự đoán nằm ở đó.

FPs và FNs là phân loại sai. Trong một số trường hợp, FNs là nguy hiểm và không thể chấp nhận được. Ví dụ nếu bộ phân loại dự đoán có cháy trong nhà hay không thì FP là báo động giả, còn FN nghĩa là nhà đang cháy nhưng không báo động.

2. Các phương pháp đo lường đánh giá binary classification

Giả sử trường hợp phân loại nhị phân đơn giản như hình dưới. Các mẫu positive và negative actual được phân bố trên bề mặt hình chữ nhật. Tuy nhiên, mô hình phân loại lại coi như các mẫu bên trong hình tròn là positive còn bên ngoài là negative.

Đánh giá độ chính xác model máy học năm 2024
2.1 Accuracy

Cách đơn giản và hay được sử dụng nhất là accuracy (độ chính xác). Cách đánh giá này đơn giản tính tỉ lệ giữa số mẫu dự đoán đúng và tổng số mẫu trong tập dữ liệu. Công thức:

Đánh giá độ chính xác model máy học năm 2024

Giả sử độ accuracy = 90% có nghĩa là trong số 100 mẫu thì có 90 mẫu được phân loại chính xác. Tuy nhiên đối với tập dữ liệu kiểm thử không cân bằng (nghĩa là số positive lớn hơn rất nhiêu so với negative) thì đánh giá có thể gây hiểm nhầm.

Quay lại với ví dụ phân loại email spam. Xem xét trên 100 email nhận được, có 90 email trong số là spam. Trong trường hợp này, mô hình chỉ có thể phân loại ra một kết quả duy nhất là spam thì cũng có thể đạt accuracy là 90%.

Tương tự, trong trường hợp phát hiện giao dịch gian lận, chỉ một phần rất nhỏ các giao dịch là gian lận. Nếu mô hình phân loại dự đoán toàn bộ là không gian lận thì việc đánh giá mô hình vẫn có độ chính xác gần như 100%.

2.2 Precision and Recall

Với bài toán phân loại mà tập dữ liệu của các lớp chênh lệch nhau rất nhiều (mất cân bằng), thường sử dụng phương pháp đánh giá Precision-Recall.

Đánh giá độ chính xác model máy học năm 2024

Precision được định nghĩa là tỉ lệ số mẫu true positive trong số những mẫu được phân loại là positive (TP + FP). Với precision = 0,9 có nghĩa là mô hình dự đoán đúng 90 mẫu trong 100 mẫu mô hình dự đoán là positive

Recall được định nghĩa là tỉ lệ số mẫu true positive trong số những điểm thực sự là positive (TP+FN). Với recall = 0,9 có nghĩa là mô hình dự đoán đúng 90 mẫu trong 100 mẫu thực sự là positive.

Precision cao đồng nghĩa độ chính xác của các mẫu đúng là cao. Recall cao đồng nghĩa với việc bỏ sót các mẫu thực sự positive là thấp. Một mô hình phân lớp tốt là mô hình có cả Precision và Recall đều cao, tức càng gần một càng tốt.

2.3 F-1 Score

F-1 score là trung bình điều hòa (harmonic mean) của precision và recall, có tầm quan trọng tương tự như với FNs và FPs. Cụ thể:

Đánh giá độ chính xác model máy học năm 2024

F-1 score càng cao tương ứng precision và recall càng cao, mô hình phân loại càng tốt.

2.4 Multi-Class Classification (phân loại đa lớp)

Gọi là phân loại đa lớp khi có số lớp cần phân loại lớn hơn 2. Việc đánh giá mô hình cũng tương tự như khi đánh giá mô hình nhị phân.

Đánh giá độ chính xác model máy học năm 2024

Giả sử kết quả dự đoán của mô hình phân loại được thể hiện ở ma trận confusion trình bay ở trên. Có tổng 127 mẫu. Bây giờ hãy đánh giá mô hình.

Nhớ rằng, accuracy là tỉ lệ phân loại đúng với tổng số mẫu, nằm trên đường chéo. Để có accuracy, lấy tổng số lượng phân loại đúng chia với tổng số mẫu.

Đánh giá độ chính xác model máy học năm 2024

Như vậy, mô hình phân loại đã phân loại chính xác gần ½ số mẫu.

Tính toán Precision và Recall sẽ phức tạp hơn so với phân loại nhị phân. Không thể nói Precision hay Recall tổng thể của cả mô hình phân loại mà sẽ tính precision và recall ở mỗi lớp riêng biệt.