Feature Engineering
Feature engineering chuyển dữ liệu thô thành đầu vào mà model có thể học dễ dàng, dựa trên kiến thức chuyên môn về lĩnh vực. Các kỹ thuật chính, rủi ro rò rỉ dữ liệu, ứng dụng và code.
Feature engineering là quá trình tạo, biến đổi và lựa chọn các biến đầu vào, hay đặc trưng, mà model machine learning học từ đó, dựa trên kiến thức về lĩnh vực và dữ liệu. Một dấu thời gian thô trở thành giờ trong ngày và thứ trong tuần, danh sách giao dịch thẻ trở thành mức chi tiêu của khách hàng trong 30 ngày gần nhất, còn quãng đường và thời lượng chuyến đi trở thành tốc độ. Các đặc trưng được chọn phù hợp giúp model đơn giản nắm bắt những mẫu mà nếu không sẽ bỏ sót; chúng đặc biệt quan trọng với dữ liệu dạng bảng và chuỗi thời gian, nơi model chỉ có thể sử dụng các cột được cung cấp. Các model deep learning tự học đặc trưng từ ảnh, âm thanh và văn bản thô, qua đó chuyển trọng tâm của feature engineering trong những lĩnh vực này sang chuẩn bị dữ liệu và xây dựng đặc trưng từ đầu ra model.
Các kỹ thuật phổ biến#
- Co giãn và chuẩn hóa: Chuẩn hóa đặc trưng về trung bình bằng 0 và phương sai bằng 1 giúp các đặc trưng có đơn vị lớn không lấn át model dựa trên khoảng cách và quá trình huấn luyện dựa trên gradient; phép biến đổi log nén các giá trị lệch như thu nhập hoặc giá cả.
- Mã hóa biến phân loại: Mã hóa one-hot chuyển một danh mục như màu sắc thành các cột nhị phân, còn target encoding thay mỗi danh mục bằng giá trị target trung bình của danh mục đó, được tính trên các fold riêng để cách mã hóa không tiết lộ nhãn của chính hàng dữ liệu đó.
- Tỷ lệ và tương tác: Tỷ lệ nợ trên thu nhập, giá trên mỗi foot vuông và chỉ số khối cơ thể kết hợp hai giá trị thô thành đại lượng thực sự chi phối kết quả.
- Đặc trưng ngày và giờ: Giờ, ngày trong tuần, tháng và cờ ngày lễ thể hiện tính chu kỳ; mã hóa giờ bằng sin và cos đặt 23:00 cạnh 00:00.
- Độ trễ và cửa sổ trượt: Các giá trị trước đó, trung bình trượt và số lượng trong các cửa sổ gần đây cung cấp cho model lịch sử gần đây của cảm biến, tài khoản hoặc sản phẩm.
- Phân khoảng: Nhóm các giá trị liên tục thành các khoảng, chẳng hạn nhóm tuổi, giúp nắm bắt các tác động dạng bậc và hạn chế ảnh hưởng của giá trị cực đoan.
- Giảm chiều bằng PCA: Phân tích thành phần chính nén nhiều đặc trưng tương quan thành một vài đặc trưng không tương quan.
- Lựa chọn đặc trưng: Các phương pháp lọc xếp hạng đặc trưng theo tương quan hoặc thông tin tương hỗ với target; các phương pháp bao bọc kiểm thử các tập con đặc trưng bằng một model; còn các phương pháp tích hợp như regularization L1 loại bỏ đặc trưng trong quá trình huấn luyện.
Một đặc trưng tỷ lệ cho thấy vì sao cách này hiệu quả. Cây quyết định có giới hạn độ sâu chỉ có thể phân tách theo từng đặc trưng một, vì vậy cây khó xấp xỉ quy tắc "tốc độ trung bình trên 90 km/h" chỉ từ quãng đường và thời lượng; quy tắc này trở nên chính xác ngay khi tính thêm tốc độ:
import numpy as np
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
# 1,000 trips: raw distance (km) and duration (h); label = average speed above 90 km/h
rng = np.random.default_rng(0)
distance = rng.uniform(10, 300, 1000)
hours = rng.uniform(0.5, 4.0, 1000)
y = (distance / hours > 90).astype(int)
raw = np.column_stack([distance, hours])
engineered = (distance / hours).reshape(-1, 1) # domain knowledge: speed = distance / time
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
for name, X in [("Raw distance and duration", raw), ("Engineered speed", engineered)]:
print(f"{name}: accuracy {cross_val_score(tree, X, y, cv=5).mean():.3f}")Với cùng cây độ sâu 2, độ chính xác đánh giá chéo tăng từ 0.861 khi dùng quãng đường và thời lượng thô lên 1.000 khi dùng đặc trưng tốc độ được tạo, vì ranh giới chéo trong không gian quãng đường-thời lượng trở thành một ngưỡng duy nhất trên tốc độ.
Xác thực đặc trưng mà không rò rỉ dữ liệu#
Một đặc trưng chỉ hợp lệ nếu giá trị của nó được biết tại thời điểm dự đoán. Model dự đoán khách hàng rời bỏ sử dụng "số cuộc gọi hỗ trợ trong tháng sau khi hủy dịch vụ", hoặc phép mã hóa mục tiêu được tính trên toàn bộ tập dữ liệu, có điểm kiểm thử tốt nhưng thất bại trong môi trường production; đây là một dạng rò rỉ dữ liệu. Vì vậy, mọi phép biến đổi có tham số được học, chẳng hạn như giá trị trung bình của bộ chuẩn hóa hoặc mã hóa danh mục, chỉ được khớp trên các fold huấn luyện, như các pipeline của scikit-learn tự động thực hiện; mỗi đặc trưng mới chỉ được giữ lại nếu cải thiện điểm đánh giá chéo. Các hệ thống production cũng phải tính từng đặc trưng chính xác như khi huấn luyện; feature store đảm nhiệm việc này bằng cách cung cấp cùng định nghĩa đặc trưng cho cả hai.
Feature Engineering trong thị giác máy tính#
Thị giác máy tính cổ điển dựa vào các đặc trưng được thiết kế thủ công như bản đồ biên, descriptor điểm đặc trưng SIFT và histogram gradient định hướng, sau đó được các bộ phân loại như máy vector hỗ trợ gán nhãn. Kể từ khi AlexNet chiến thắng cuộc thi ImageNet năm 2012, mạng nơ-ron tích chập đã tự học feature map từ pixel, và nỗ lực kỹ thuật chuyển sang dữ liệu huấn luyện thông qua tăng cường dữ liệu, cũng như sang đầu ra của các model thị giác. SpeedEstimator của Ultralytics tạo đặc trưng tốc độ từ đầu ra theo dõi đối tượng của YOLO26: khi một track có năm vị trí, công cụ chuyển độ dịch chuyển pixel giữa vị trí đầu tiên và cuối cùng thành mét bằng thang đo meter_per_pixel, rồi chia cho thời gian đã trôi qua để báo cáo km/h.
Ứng dụng#
- Rủi ro tín dụng: Các bên cho vay tính tỷ lệ nợ trên thu nhập, mức sử dụng tín dụng và số tháng kể từ lần thanh toán trễ gần nhất từ hồ sơ tài khoản thô; những đặc trưng này dự đoán khả năng vỡ nợ tốt hơn số dư thô.
- Bảo trì dự đoán: Trung bình trượt, tốc độ thay đổi và năng lượng dải tần được tính từ luồng dữ liệu rung động và nhiệt độ có thể phát hiện tình trạng hao mòn đang tiến triển trước khi bất kỳ chỉ số thô nào vượt ngưỡng cảnh báo.
- Phát hiện gian lận: Các đặc trưng về tần suất, chẳng hạn số giao dịch thẻ trong giờ vừa qua và khoảng cách giữa địa điểm mua hàng với vị trí thường lệ của chủ thẻ, giúp phân biệt gian lận với chi tiêu thông thường.
- Dự báo nhu cầu: Các model bán lẻ kết hợp độ trễ doanh số, trung bình trượt, thay đổi giá, cờ khuyến mãi và chỉ báo ngày lễ cho từng cửa hàng và sản phẩm.
Feature Engineering và các thuật ngữ liên quan#
- Trích xuất đặc trưng: Tự động tính đặc trưng bằng thuật toán cố định hoặc model đã học, chẳng hạn PCA hoặc backbone của mạng nơ-ron. Hai thuật ngữ này thường được dùng thay thế cho nhau, trong đó feature engineering bao quát quy trình rộng hơn, có định hướng theo lĩnh vực.
- Tiền xử lý dữ liệu: Làm sạch và định dạng dữ liệu bằng cách sửa lỗi, điền giá trị thiếu và chuyển đổi kiểu; đây là bước trước khi thiết kế đặc trưng.
- Embedding: Các vector đặc, được model học trong quá trình huấn luyện để biểu diễn từ, hình ảnh hoặc người dùng; trong hầu hết hệ thống ngôn ngữ và thị giác, chúng thay thế các đặc trưng được xây dựng thủ công như số lần xuất hiện của từ.










