Khóa học
Giới thiệu
Học máy có giám sát là một dạng học máy học mối quan hệ giữa đầu vào và đầu ra. Các đầu vào được gọi là đặc trưng hoặc biến ‘X’ và đầu ra thường được gọi là mục tiêu hoặc biến ‘y’. Loại dữ liệu chứa cả đặc trưng và mục tiêu được gọi là dữ liệu gán nhãn. Đây là điểm khác biệt then chốt giữa học máy có giám sát và không giám sát, hai loại hình nổi bật của học máy. Trong hướng dẫn này, bạn sẽ học:
- Học máy có giám sát là gì
- Học có giám sát so với học không giám sát
- Học máy bán giám sát
- Thuật toán học máy có giám sát:
- Hồi quy tuyến tính
- Cây quyết định
- K Láng giềng gần nhất
- Rừng ngẫu nhiên
- Naive Bayes
- Ví dụ mã Python cho học máy có giám sát
Học máy có giám sát là gì?
Học máy có giám sát học các mẫu và mối quan hệ giữa dữ liệu đầu vào và đầu ra. Nó được xác định bởi việc sử dụng dữ liệu gán nhãn. Dữ liệu gán nhãn là một tập dữ liệu chứa nhiều ví dụ về Đặc trưng và Mục tiêu. Học có giám sát sử dụng các thuật toán học mối quan hệ giữa Đặc trưng và Mục tiêu từ tập dữ liệu. Quá trình này được gọi là Huấn luyện hoặc Fit.
Có hai loại thuật toán học có giám sát:
- Phân loại
- Hồi quy

Nguồn ảnh: https://www.mathworks.com/help/stats/machine-learning-in-matlab.html
Phân loại
Phân loại là một dạng học máy có giám sát, trong đó các thuật toán học từ dữ liệu để dự đoán một kết quả hoặc sự kiện trong tương lai. Ví dụ:
Một ngân hàng có thể có tập dữ liệu khách hàng chứa lịch sử tín dụng, khoản vay, chi tiết đầu tư, v.v. và họ muốn biết liệu khách hàng nào sẽ vỡ nợ. Trong dữ liệu lịch sử, chúng ta sẽ có Đặc trưng và Mục tiêu.
- Đặc trưng sẽ là các thuộc tính của khách hàng như lịch sử tín dụng, các khoản vay, đầu tư, v.v.
- Mục tiêu sẽ thể hiện việc một khách hàng cụ thể đã từng vỡ nợ trong quá khứ hay chưa (thường được biểu diễn bằng 1 hoặc 0 / Đúng hoặc Sai / Có hoặc Không).
Các thuật toán phân loại được dùng để dự đoán các kết quả rời rạc; nếu kết quả có thể nhận hai giá trị như Đúng hoặc Sai, Vỡ nợ hoặc Không vỡ nợ, Có hoặc Không, thì được gọi là Phân loại nhị phân. Khi kết quả có hơn hai giá trị có thể, đó là Phân loại đa lớp. Có nhiều thuật toán học máy có thể dùng cho bài toán phân loại. Một số gồm:
- Hồi quy Logistic
- Bộ phân loại Cây quyết định
- Bộ phân loại K Láng giềng gần nhất
- Bộ phân loại Rừng ngẫu nhiên
- Mạng nơ-ron
Hồi quy
Hồi quy là một dạng học máy có giám sát, trong đó các thuật toán học từ dữ liệu để dự đoán các giá trị liên tục như doanh số, lương, cân nặng hoặc nhiệt độ. Ví dụ:
Một tập dữ liệu chứa các đặc trưng của căn nhà như diện tích lô đất, số phòng ngủ, số phòng tắm, khu vực lân cận, v.v. cùng với giá nhà; một thuật toán hồi quy có thể được huấn luyện để học mối quan hệ giữa các đặc trưng và giá nhà.
Có nhiều thuật toán học máy có thể dùng cho bài toán hồi quy. Một số gồm:
- Hồi quy tuyến tính
- Bộ hồi quy Cây quyết định
- Bộ hồi quy K Láng giềng gần nhất
- Bộ hồi quy Rừng ngẫu nhiên
- Mạng nơ-ron
Nguồn ảnh: https://static.javatpoint.com/tutorial/machine-learning/images/regression-vs-classification-in-machine-learning.png
Học có giám sát so với học không giám sát
Loại dữ liệu
Điểm khác biệt chính giữa học máy có giám sát và học máy không giám sát là học có giám sát dùng dữ liệu gán nhãn. Dữ liệu gán nhãn là dữ liệu chứa cả Đặc trưng (các biến X) và Mục tiêu (biến y).
Khi dùng học có giám sát, thuật toán lặp đi lặp lại học cách dự đoán biến mục tiêu dựa trên các đặc trưng và điều chỉnh để phản hồi phù hợp nhằm "học" từ tập dữ liệu huấn luyện. Quá trình này được gọi là Huấn luyện hoặc Fit. Mô hình học có giám sát thường cho kết quả chính xác hơn so với học không giám sát nhưng cần có sự can thiệp của con người ban đầu để xác định đúng dữ liệu. Nếu nhãn trong tập dữ liệu không được gắn đúng, các thuật toán có giám sát sẽ học sai chi tiết.
Ngược lại, các mô hình học không giám sát làm việc một cách tự động để nhận diện cấu trúc vốn có của dữ liệu chưa được gán nhãn. Cần lưu ý rằng việc kiểm định các biến đầu ra vẫn đòi hỏi mức độ can thiệp nhất định của con người. Ví dụ, một mô hình không giám sát có thể xác định rằng khách hàng mua sắm trực tuyến thường mua nhiều mặt hàng cùng danh mục trong cùng thời điểm. Tuy nhiên, một nhà phân tích vẫn cần kiểm tra xem có hợp lý hay không khi hệ thống gợi ý ghép Mặt hàng X với Mặt hàng Y.
Tình huống sử dụng
Có hai tình huống sử dụng nổi bật cho học có giám sát, tức là Phân loại và Hồi quy. Ở cả hai nhiệm vụ, một thuật toán có giám sát học từ dữ liệu huấn luyện để dự đoán điều gì đó. Nếu biến cần dự đoán là rời rạc như “Có” hoặc “Không”, 1 hoặc 0, “Gian lận” hoặc “Không gian lận” thì cần thuật toán phân loại. Nếu biến cần dự đoán là liên tục như doanh số, chi phí, lương, nhiệt độ, v.v., thì cần thuật toán Hồi quy.
Phân cụm và Phát hiện bất thường là hai tình huống sử dụng nổi bật trong học không giám sát. Để tìm hiểu thêm về Phân cụm, hãy xem bài viết này. Nếu bạn muốn đào sâu hơn vào Học máy không giám sát, hãy xem khóa học thú vị của DataCamp. Bạn sẽ học cách phân cụm, biến đổi, trực quan hóa và rút trích insight từ các tập dữ liệu không gán nhãn bằng scikit-learn và scipy.
Mục tiêu
Mục tiêu của học có giám sát là dự báo kết quả cho dữ liệu mới dựa trên một mô hình đã học từ tập dữ liệu huấn luyện có gán nhãn. Loại kết quả bạn có thể kỳ vọng được biết trước thông qua dữ liệu gán nhãn. Mục tiêu của một thuật toán học không giám sát là rút ra insight từ lượng dữ liệu lớn mà không có nhãn tường minh. Các thuật toán không giám sát cũng học từ tập dữ liệu huấn luyện nhưng dữ liệu huấn luyện không chứa nhãn.
Độ phức tạp
Học máy có giám sát tương đối trực quan so với học không giám sát. Mô hình không giám sát thường cần một tập huấn luyện lớn để cho ra kết quả mong muốn, khiến chúng phức tạp về tính toán.

Nguồn ảnh: https://www.sharpsightlabs.com/blog/supervised-vs-unsupervised-learning/
Học máy bán giám sát
Học bán giám sát là một loại học máy tương đối mới và ít phổ biến hơn, trong quá trình huấn luyện, kết hợp một lượng lớn dữ liệu không gán nhãn với một lượng nhỏ dữ liệu gán nhãn. Học bán giám sát nằm giữa học có giám sát (dữ liệu huấn luyện có gán nhãn) và học không giám sát (dữ liệu huấn luyện không gán nhãn).
Học bán giám sát có rất nhiều ứng dụng thực tế. Ở nhiều lĩnh vực thiếu dữ liệu gán nhãn. Do liên quan đến người gán nhãn, thiết bị chuyên dụng hoặc các nghiên cứu tốn kém và mất thời gian, các nhãn (biến mục tiêu) có thể khó thu thập.
Học bán giám sát có hai loại:

Nguồn ảnh: https://www.enjoyalgorithms.com/blogs/supervised-unsupervised-and-semisupervised-learning
Thuật toán học máy có giám sát
Trong phần này, chúng ta sẽ điểm qua một số thuật toán phổ biến cho học máy có giám sát:
Hồi quy tuyến tính
Hồi quy tuyến tính là một trong những thuật toán học máy đơn giản nhất, dùng để học cách dự đoán giá trị liên tục (biến phụ thuộc) dựa trên các đặc trưng (biến độc lập) trong tập dữ liệu huấn luyện. Giá trị của biến phụ thuộc, đại diện cho hiệu ứng, bị ảnh hưởng bởi thay đổi ở biến độc lập.
Nếu bạn còn nhớ “đường hồi quy tốt nhất” từ thời đi học, đó chính là hồi quy tuyến tính. Dự đoán cân nặng của một người dựa trên chiều cao là ví dụ đơn giản cho khái niệm này.

Nguồn ảnh: http://primo.ai/index.php?title=Linear_Regression
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Đơn giản, dễ hiểu và dễ diễn giải |
Dễ bị overfit |
|
Hoạt động rất tốt với dữ liệu phân tách tuyến tính |
Giả định tính tuyến tính giữa đặc trưng và biến mục tiêu. |
Hồi quy Logistic
Hồi quy Logistic là một trường hợp đặc biệt của Hồi quy tuyến tính, trong đó biến mục tiêu (y) là rời rạc/danh mục như 1 hoặc 0, Đúng hoặc Sai, Có hoặc Không, Vỡ nợ hoặc Không vỡ nợ. Log của odds được dùng làm biến phụ thuộc. Sử dụng hàm logit, hồi quy logistic dự đoán xác suất xảy ra của một sự kiện nhị phân.

Để tìm hiểu thêm về chủ đề này, hãy xem bài viết Hiểu về Hồi quy Logistic trong Python rất hay trên DataCamp.
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Đơn giản, dễ hiểu và dễ diễn giải |
Overfitting |
|
Hiệu chuẩn tốt cho xác suất đầu ra |
Gặp khó khăn khi bắt được các mối quan hệ phức tạp |
Cây quyết định
Các thuật toán Cây quyết định là một dạng mô hình cấu trúc dạng cây xác suất, liên tục tách dữ liệu để phân loại hoặc đưa ra dự đoán tùy theo kết quả của tập câu hỏi trước đó. Mô hình phân tích dữ liệu và đưa ra câu trả lời cho các câu hỏi nhằm giúp bạn đưa ra lựa chọn sáng suốt hơn.
Ví dụ, bạn có thể sử dụng một cây quyết định, trong đó câu trả lời Có hoặc Không được dùng để xác định một loài chim cụ thể dựa trên các yếu tố dữ liệu như lông, khả năng bay hoặc bơi, loại mỏ, v.v.

Nguồn ảnh: https://aigraduate.com/decision-tree-visualisation---quick-ml-tutorial-for-beginners/
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Rất trực quan và dễ giải thích |
Không ổn định - một thay đổi nhỏ ở dữ liệu huấn luyện có thể gây khác biệt lớn trong dự đoán. |
|
Cây quyết định không yêu cầu nhiều bước chuẩn bị dữ liệu như một số mô hình tuyến tính. |
Dễ bị overfitting |
Để tìm hiểu thêm về Học máy với các mô hình dựa trên cây trong Python, hãy xem khóa học thú vị này của DataCamp. Trong khóa học, bạn sẽ học cách dùng các mô hình dựa trên cây và tập hợp (ensemble) cho hồi quy và phân loại bằng scikit-learn.
K Láng giềng gần nhất
K Láng giềng gần nhất là một phương pháp thống kê đánh giá mức độ gần nhau của một điểm dữ liệu với điểm dữ liệu khác để quyết định liệu hai điểm có thể được nhóm cùng nhau hay không. Mức độ gần nhau của các điểm dữ liệu thể hiện mức độ tương đồng giữa chúng.
Chẳng hạn, giả sử chúng ta có một đồ thị với hai nhóm điểm dữ liệu riêng biệt nằm gần nhau, đặt tên lần lượt là Nhóm A và Nhóm B. Mỗi nhóm sẽ được biểu diễn bằng các điểm trên đồ thị. Khi chúng ta thêm một điểm dữ liệu mới, nhóm của điểm đó sẽ phụ thuộc vào nhóm nào mà điểm mới gần hơn.

Nguồn: https://towardsdatascience.com/getting-acquainted-with-k-nearest-neighbors-ba0a9ecf354f
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Không đưa ra giả định về dữ liệu |
Huấn luyện mất nhiều thời gian |
|
Trực quan và đơn giản |
KNN hoạt động tốt với số lượng đặc trưng nhỏ nhưng khi số đặc trưng tăng, mô hình gặp khó khăn trong việc dự đoán chính xác. |
Rừng ngẫu nhiên
Rừng ngẫu nhiên là một ví dụ khác về thuật toán xây dựng trên cây, giống như Cây quyết định. Trái với Cây quyết định chỉ gồm một cây, Rừng ngẫu nhiên sử dụng nhiều Cây quyết định để đưa ra phán đoán, tạo nên một “khu rừng” cây.
Nó kết hợp nhiều mô hình khác nhau để tạo ra dự đoán, và có thể dùng cho cả phân loại lẫn hồi quy.

Nguồn: https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Rừng ngẫu nhiên dễ dàng xử lý các mối quan hệ phi tuyến trong dữ liệu. |
Khó diễn giải do có nhiều cây. |
|
Rừng ngẫu nhiên ngầm thực hiện chọn lọc đặc trưng |
Rừng ngẫu nhiên tốn kém tính toán với các tập dữ liệu lớn. |
Naive Bayes
Định lý Bayes là một công thức toán học dùng để tính xác suất có điều kiện, và Naive Bayes là ứng dụng của công thức đó. Xác suất có điều kiện là xác suất một kết quả xảy ra khi một sự kiện khác đã xảy ra.
Nó dự đoán rằng xác suất cho mỗi lớp thuộc về một lớp cụ thể, và lớp có xác suất cao nhất được coi là lớp có khả năng xảy ra nhất.

Nguồn ảnh: https://www.kdnuggets.com/2019/10/introduction-artificial-neural-networks.html
|
ƯU ĐIỂM |
NHƯỢC ĐIỂM |
|
Thuật toán rất nhanh. |
Giả định tất cả đặc trưng là độc lập. |
|
Đơn giản và dễ triển khai |
Thuật toán gặp "vấn đề tần suất bằng không", khi gán xác suất bằng không cho một biến phân loại nếu hạng mục đó không xuất hiện trong tập huấn luyện. |
Ví dụ mã Python cho học máy có giám sát
Trong phần này, chúng ta sẽ dùng scikit-learn trong Python để huấn luyện một mô hình Hồi quy Logistic (Phân loại) trên một tập dữ liệu giả lập. Xem đầy đủ Notebook tại đây.
```
# create fake binary classification dataset with 1000 rows and 10 features
from sklearn.datasets import make_classification
X, y = make_classification(n_samples = 1000, n_features = 10, n_classes = 2)
# check shape of X and y
X.shape, y.shape
# train test split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
# import and initialize logistic regression model
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
# fit logistic regression model
lr.fit(X_train, y_train)
# generate hard predictions on test set
y_pred = lr.predict(X_test)
y_pred
# evaluate accuracy score of the model
from sklearn.metrics import accuracy_score
accuracy_score(y_test, y_pred)
```
Nếu bạn muốn học học máy có giám sát bằng R, hãy xem khóa học Supervised Learning in R của DataCamp. Trong khóa học này, bạn sẽ học những kiến thức cơ bản về học máy cho phân loại trong ngôn ngữ R.
Kết luận
Những năm gần đây, học máy đã hoàn toàn thay đổi cách chúng ta vận hành kinh doanh. Một đổi mới mang tính đột phá giúp học máy khác biệt với các chiến lược tự động hóa khác là rời xa lập trình dựa trên luật. Nhờ các kỹ thuật học máy có giám sát, kỹ sư có thể khai thác dữ liệu mà không cần huấn luyện máy móc theo cách giải quyết vấn đề cố định.
Trong học máy có giám sát, lời giải kỳ vọng cho một vấn đề có thể chưa biết đối với dữ liệu tương lai, nhưng có thể đã được biết và lưu trong tập dữ liệu lịch sử; nhiệm vụ của các thuật toán học có giám sát là học mối quan hệ đó từ dữ liệu lịch sử để dự đoán một kết quả, sự kiện hoặc giá trị trong tương lai.
Trong bài viết này, chúng ta đã xây dựng hiểu biết nền tảng về học có giám sát là gì và nó khác với học không giám sát như thế nào. Chúng ta cũng đã điểm qua một vài thuật toán phổ biến trong học có giám sát. Tuy nhiên, còn nhiều chủ đề chúng ta chưa bàn tới như Đánh giá mô hình, Cross-Validation, hay Tinh chỉnh siêu tham số. Nếu bạn muốn đào sâu vào bất kỳ chủ đề nào trong số này và nâng cao kỹ năng, hãy xem các khóa học thú vị sau:
Câu hỏi thường gặp
Hai loại phổ biến của học máy có giám sát là gì?
Phân loại và Hồi quy là hai loại phổ biến của học có giám sát. Phân loại dùng để dự đoán các kết quả rời rạc như “Đậu” hoặc “Rớt”, “Đúng” hoặc “Sai”, “Vỡ nợ” hoặc “Không vỡ nợ”. Trong khi đó, Hồi quy dùng để dự đoán số lượng hoặc các giá trị liên tục như doanh số, lương, chi phí, v.v.
Sự khác biệt chính giữa học có giám sát và không giám sát là gì?
Khác biệt chủ yếu giữa học có giám sát và không giám sát nằm ở dữ liệu. Với học có giám sát, bạn phải có dữ liệu gán nhãn; còn với học không giám sát, bạn không cần dữ liệu gán nhãn.
Dự báo chuỗi thời gian có phải là học có giám sát không?
Có, dự báo chuỗi thời gian là học có giám sát, nơi chúng ta dự đoán giá trị tiếp theo dựa trên dãy số. Đây là một nhiệm vụ học có giám sát.
Xử lý ngôn ngữ tự nhiên (NLP) là học có giám sát hay không giám sát?
Có thể là cả hai. Phụ thuộc vào cách đặt vấn đề. Ví dụ, dự đoán loại tài liệu văn bản nhiều khả năng là một nhiệm vụ có giám sát, trong khi nếu tình huống sử dụng là nhóm các tài liệu tương tự dựa trên văn bản chứa trong tài liệu, thì trường hợp này được gọi là Mô hình chủ đề (Topic Modeling), hoàn toàn là không giám sát.
Phân cụm là học có giám sát hay không giám sát?
Với các nhiệm vụ phân cụm, bạn không cần dữ liệu gán nhãn; do đó đây là học không giám sát.
Có các thuật toán khác nhau cho học có giám sát và không giám sát không?
Có, các thuật toán là hoàn toàn khác nhau.
Một số thuật toán phổ biến cho học có giám sát là gì?
Hồi quy tuyến tính, Cây quyết định, Mạng nơ-ron, Máy vector hỗ trợ là một số thuật toán phổ biến cho học có giám sát.
