Sự bùng nổ của AI tạo sinh khiến nhiều người mặc định rằng mọi bài toán đều nên được giải quyết bằng Large Language Model (LLM). Thực tế lại hoàn toàn ngược lại. Với rất nhiều tác vụ như dự báo chuỗi thời gian, phân loại hình ảnh hay dự đoán trên dữ liệu bảng (tabular data), một mô hình Machine Learning truyền thống thường cho kết quả nhanh hơn, rẻ hơn và dễ triển khai hơn rất nhiều so với việc xây dựng cả một hệ thống AI phức tạp.
Đó cũng là lý do các thuật toán Machine Learning kinh điển vẫn giữ vai trò quan trọng trong khoa học dữ liệu hiện đại. Điều tạo nên một nhà khoa học dữ liệu giỏi không phải là luôn sử dụng mô hình mới nhất, mà là biết lựa chọn mô hình phù hợp nhất với bài toán. Dưới đây là 7 thuật toán Machine Learning mà bất kỳ Data Scientist nào cũng nên thành thạo, cùng với cách hoạt động và ví dụ sử dụng trong Python.
1. Linear Regression
Linear Regression (Hồi quy tuyến tính) là một trong những thuật toán Machine Learning lâu đời nhưng vẫn được sử dụng rộng rãi nhất để dự đoán các giá trị liên tục. Thuật toán này thường xuất hiện trong các bài toán như dự đoán giá nhà, doanh thu hàng tháng hay mức tiêu thụ điện năng.
Nguyên lý hoạt động khá đơn giản: mô hình học mối quan hệ giữa các đặc trưng đầu vào và giá trị cần dự đoán, sau đó tìm ra đường thẳng thể hiện mối quan hệ đó sao cho sai số giữa giá trị dự đoán và dữ liệu thực tế là nhỏ nhất. Trong quá trình huấn luyện, mô hình cũng xác định mức độ ảnh hưởng của từng đặc trưng đến kết quả cuối cùng để áp dụng cho dữ liệu mới.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Trong ví dụ trên, fit() dùng để huấn luyện mô hình trên tập dữ liệu đào tạo, còn predict() sử dụng các tham số đã học để dự đoán giá trị trên tập kiểm tra.
Linear Regression có ưu điểm là tốc độ rất nhanh, dễ triển khai, dễ giải thích kết quả và thường được sử dụng như mô hình baseline trước khi thử nghiệm các thuật toán phức tạp hơn.
2. Logistic Regression
Mặc dù có chữ "Regression" trong tên gọi, Logistic Regression lại là một thuật toán dùng cho bài toán phân loại (Classification). Đây là lựa chọn phổ biến trong các bài toán chỉ có hai kết quả như email spam hay không spam, khách hàng rời bỏ hay tiếp tục sử dụng dịch vụ, hoặc giao dịch gian lận và hợp lệ.
Thay vì dự đoán một giá trị liên tục, Logistic Regression ước tính xác suất một mẫu dữ liệu thuộc về từng lớp, sau đó sử dụng xác suất này để quyết định nhãn cuối cùng.
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Một ưu điểm của thư viện Scikit-learn là Logistic Regression đã được tích hợp sẵn cơ chế Regularization nhằm hạn chế hiện tượng overfitting.
Đây vẫn là một trong những mô hình baseline mạnh nhất cho các bài toán phân loại nhờ khả năng huấn luyện nhanh, dễ diễn giải và hoạt động tốt trên nhiều bộ dữ liệu.
3. LightGBM
LightGBM là một thuật toán Gradient Boosting được Microsoft phát triển, tối ưu cho dữ liệu dạng bảng (Tabular Data) và hiện vẫn là lựa chọn hàng đầu trong rất nhiều cuộc thi Machine Learning.
Thuật toán xây dựng nhiều cây quyết định theo tuần tự. Mỗi cây mới sẽ tập trung sửa các sai số mà những cây trước đó tạo ra, sau đó toàn bộ kết quả được kết hợp để tạo nên dự đoán cuối cùng.
Điểm khác biệt của LightGBM là sử dụng Histogram-based Learning. Thay vì xử lý từng giá trị liên tục, thuật toán nhóm dữ liệu thành các khoảng (bin), giúp giảm đáng kể lượng bộ nhớ sử dụng và tăng tốc độ huấn luyện trên các tập dữ liệu lớn.
from lightgbm import LGBMClassifier
model = LGBMClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Ví dụ trên sử dụng LGBMClassifier cho bài toán phân loại. Với các bài toán hồi quy, LightGBM cũng cung cấp LGBMRegressor.
Ngoài ra, LightGBM còn hỗ trợ huấn luyện song song, phân tán và GPU, giúp xử lý hiệu quả các tập dữ liệu quy mô lớn.
4. XGBoost với Histogram Trees
XGBoost là một trong những thuật toán Gradient Boosting nổi tiếng nhất trong cộng đồng Machine Learning và vẫn được sử dụng rất rộng rãi cho các bài toán phân loại, hồi quy và xếp hạng.
Giống LightGBM, XGBoost xây dựng các cây quyết định theo từng bước. Mỗi cây mới đều cố gắng sửa những lỗi mà mô hình hiện tại mắc phải, từ đó nâng cao độ chính xác của toàn bộ hệ thống.
Thay vì dựa vào một cây quyết định duy nhất, XGBoost kết hợp rất nhiều cây nhỏ để tạo ra dự đoán cuối cùng có độ chính xác cao hơn.
from xgboost import XGBClassifier
model = XGBClassifier(tree_method="hist")
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Tham số tree_method="hist" cho phép XGBoost sử dụng phương pháp Histogram để xây dựng cây quyết định, giúp tăng tốc quá trình tìm kiếm điểm chia dữ liệu và cải thiện hiệu suất huấn luyện.
Nhờ tính linh hoạt, độ ổn định và hiệu quả cao trên dữ liệu bảng, XGBoost vẫn là lựa chọn hàng đầu của rất nhiều nhà khoa học dữ liệu.
5. Random Forest
Random Forest là một thuật toán Ensemble Learning nổi tiếng, kết hợp nhiều cây quyết định thay vì chỉ sử dụng một cây duy nhất.
Trong quá trình huấn luyện, mỗi cây sẽ được xây dựng trên một tập dữ liệu và một tập đặc trưng khác nhau. Sau đó, kết quả từ tất cả các cây sẽ được tổng hợp để đưa ra dự đoán cuối cùng.
Với bài toán phân loại, các cây sẽ bỏ phiếu để quyết định nhãn. Với bài toán hồi quy, kết quả cuối cùng là giá trị trung bình của tất cả các cây.
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(
n_estimators=100,
random_state=42
)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Trong ví dụ trên, n_estimators=100 nghĩa là mô hình sẽ xây dựng 100 cây quyết định.
Random Forest rất dễ sử dụng, hoạt động tốt trên nhiều bộ dữ liệu và còn có khả năng đánh giá tầm quan trọng của từng đặc trưng, giúp người dùng hiểu yếu tố nào ảnh hưởng nhiều nhất đến kết quả dự đoán.
6. Long Short-Term Memory (LSTM)
LSTM là một biến thể của mạng nơ-ron hồi tiếp (Recurrent Neural Network - RNN), được thiết kế để xử lý dữ liệu dạng chuỗi.
Không giống các thuật toán Machine Learning truyền thống, LSTM xử lý dữ liệu theo từng bước thời gian và duy trì trạng thái ghi nhớ bên trong thông qua các cơ chế gọi là "gate". Những cơ chế này quyết định thông tin nào cần được lưu lại, cập nhật hoặc loại bỏ.
Nhờ vậy, LSTM có thể tận dụng các quan sát trước đó để cải thiện dự đoán ở các bước tiếp theo, rất phù hợp với các bài toán như dự báo doanh số, dự báo lưu lượng giao thông, phân tích dữ liệu cảm biến hay chuỗi thời gian nói chung.
from tensorflow import keras
from tensorflow.keras import layers
model = keras.Sequential([
keras.Input(shape=(X_train.shape[1], X_train.shape[2])),
layers.LSTM(64),
layers.Dense(1)
])
model.compile(
optimizer="adam",
loss="mean_squared_error"
)
model.fit(X_train, y_train, epochs=20)
y_pred = model.predict(X_test)
Trong ví dụ trên, lớp LSTM(64) bao gồm 64 đơn vị LSTM xử lý chuỗi dữ liệu, còn Dense(1) tạo ra một giá trị dự đoán duy nhất.
Thông thường, dữ liệu đầu vào của LSTM được tổ chức theo định dạng samples × time steps × features. Mặc dù có khả năng học các mẫu dữ liệu phức tạp theo thời gian, LSTM thường yêu cầu nhiều dữ liệu và tài nguyên tính toán hơn so với các thuật toán Machine Learning truyền thống.
7. K-Means Clustering
Khác với những thuật toán trên, K-Means là thuật toán học không giám sát (Unsupervised Learning), dùng để nhóm các điểm dữ liệu có đặc điểm giống nhau mà không cần dữ liệu được gán nhãn trước.
Thuật toán bắt đầu bằng cách lựa chọn một số tâm cụm (centroid). Mỗi điểm dữ liệu sẽ được gán vào tâm gần nhất, sau đó vị trí của các tâm cụm được tính toán lại dựa trên các điểm thuộc cùng nhóm. Quá trình này được lặp lại nhiều lần cho tới khi các cụm gần như không còn thay đổi.
from sklearn.cluster import KMeans
model = KMeans(
n_clusters=3,
n_init=10,
random_state=42
)
clusters = model.fit_predict(X)
Trong ví dụ trên, n_clusters=3 yêu cầu mô hình chia dữ liệu thành ba nhóm, còn n_init=10 giúp thuật toán thử nhiều cách khởi tạo tâm cụm khác nhau và lựa chọn kết quả tốt nhất.
K-Means thường được sử dụng để phân khúc khách hàng, phát hiện các nhóm hành vi tương đồng hoặc khám phá cấu trúc tiềm ẩn trong dữ liệu chưa được gán nhãn. Tuy nhiên, hạn chế lớn nhất là người dùng phải xác định trước số lượng cụm cần tạo.
Kết luận
Những thuật toán trên vẫn được sử dụng rộng rãi trong rất nhiều hệ thống AI hiện đại vì một lý do đơn giản: chúng hoạt động hiệu quả.
Ngay cả trong các dự án thực tế, nhiều nhà khoa học dữ liệu vẫn ưu tiên sử dụng Machine Learning truyền thống bởi các mô hình này có tốc độ huấn luyện nhanh, dễ triển khai, yêu cầu ít CPU, RAM và hạ tầng hơn rất nhiều so với các hệ thống AI tạo sinh.
Không phải bài toán nào cũng cần đến Large Language Model hay Generative AI. Với nhiều tác vụ chuyên biệt, một mô hình Machine Learning đơn giản hoàn toàn có thể mang lại kết quả tốt hơn mà không cần fine-tune mô hình hàng tỷ tham số hay xây dựng cả một hệ thống AI phức tạp.
Cuối cùng, kỹ năng quan trọng nhất của một Data Scientist không phải là luôn chọn mô hình mới nhất, mà là biết lựa chọn đúng mô hình cho đúng bài toán.
Hướng dẫn AI
AI Tools
Học IT
AI
Hàm Excel