Certified Data Science Practitioner (CDSP DSP-210) 7 Sections22 Lessons20 Weeks
Feature Engineering: Cách tạo dữ liệu tốt hơn cho Machine Learning
Feature Engineering: Cách tạo dữ liệu tốt hơn cho Machine Learning
Vị trí trong quy trình Data Science:
Data Collection → Data Cleaning → Feature Engineering → Model Training → Model Evaluation → Deployment
Feature Engineering là một trong những công việc tạo ra sự khác biệt lớn nhất giữa một mô hình Machine Learning trung bình và một mô hình có hiệu suất cao. Theo tài liệu CDSP, sau khi xử lý dữ liệu thiếu và dữ liệu trùng lặp, nhà khoa học dữ liệu sẽ xem xét các đặc trưng (features), loại bỏ những đặc trưng không cần thiết hoặc tạo thêm các đặc trưng mới giúp thuật toán học tốt hơn.
1. Feature Engineering là gì?
Feature Engineering là quá trình:
- Chuyển đổi dữ liệu
- Tạo thêm đặc trưng mới
- Chọn đặc trưng quan trọng
- Biến dữ liệu thành dạng phù hợp hơn cho Machine Learning
Có thể hiểu đơn giản:
Không phải thay đổi thuật toán, mà thay đổi dữ liệu để thuật toán học dễ hơn.
Nguyên tắc rất quan trọng:
Garbage In → Garbage Out
Nếu dữ liệu đầu vào nghèo nàn thì dù thuật toán mạnh đến đâu cũng khó đạt kết quả tốt.
2. Vai trò của Feature Engineering
Feature Engineering giúp:
✓ tăng Accuracy
✓ giảm Noise
✓ giảm Overfitting
✓ giảm thời gian huấn luyện
✓ giúp mô hình học nhanh hơn
✓ tăng khả năng giải thích
Trong rất nhiều dự án thực tế,
70–80% thời gian Data Scientist dành cho Data Preparation và Feature Engineering, chỉ một phần nhỏ dành cho việc huấn luyện mô hình.
3. Feature Engineering gồm những gì?
Theo Blueprint DSP-210, nhóm kiến thức này bao gồm: mã hóa dữ liệu phân loại (encoding), tách đặc trưng, xử lý văn bản, chuyển đổi ngày tháng và giảm chiều dữ liệu.
Có thể hệ thống thành 6 nhóm lớn:
Feature Engineering
│
├── Encode
│
├── Create Feature
│
├── Split Feature
│
├── Transform Feature
│
├── Feature Selection
│
└── Dimensionality Reduction4. Nhóm 1 – Encoding
Machine Learning không hiểu chữ.
Ví dụ:
| City |
|---|
| Hà Nội |
| Đà Nẵng |
| TP.HCM |
Thuật toán không hiểu:
"Hà Nội"nên cần chuyển thành số.
Ví dụ
Hà Nội → 0
Đà Nẵng → 1
TP.HCM → 2Đây gọi là
Label Encoding
Một cách khác
One Hot Encoding
City_HN
City_DN
City_HCM| City | HN | DN | HCM |
|---|---|---|---|
| HN | 1 | 0 | 0 |
| DN | 0 | 1 | 0 |
| HCM | 0 | 0 | 1 |
Không tạo ra quan hệ thứ tự giả giữa các danh mục nên rất phù hợp với biến phân loại không có thứ bậc.
5. Nhóm 2 – Tạo Feature mới
Đây là phần quan trọng nhất.
Ví dụ
Ngày sinh
12/04/1998thay vì dùng trực tiếp
ta tạo
Tuổi
Năm sinh
Tháng sinh
Quý
Ngày trong tuầnModel học tốt hơn nhiều.
Ví dụ doanh thu
Doanh thu
Chi phíTạo thêm
Lợi nhuận
Profit Margin
ROICác feature mới thường mang nhiều ý nghĩa hơn dữ liệu gốc.
6. Nhóm 3 – Tách Feature
Một cột chứa nhiều thông tin.
Ví dụ
Nguyễn Văn AnTách thành
Họ
Tên đệm
TênHoặc
123 Nguyễn Trãi, Thanh Xuân, Hà NộiTách
Đường
Quận
Thành phốBlueprint DSP-210 cũng đề cập đến việc tách tên, trích xuất năm từ tiêu đề và chuyển đổi ngày thành các đặc trưng hữu ích.
7. Nhóm 4 – Chuyển đổi Feature
Có những dữ liệu cần biến đổi.
Ví dụ
Incomephân bố lệch phải
100
150
200
1000000Ta áp dụng
Log
Square Root
Box-Cox
Cube Rootđể đưa dữ liệu về phân bố phù hợp hơn cho mô hình.
Ví dụ khác
Height
Weightchuyển thành
BMIFeature mới mang nhiều thông tin hơn hai biến ban đầu.
8. Nhóm 5 – Feature Selection
Không phải càng nhiều Feature càng tốt.
Ví dụ
100 biến
chỉ có
15 biến
thực sự hữu ích.
Khi đó
loại bỏ
85 biến còn lại.
Lợi ích:
- giảm overfitting
- giảm thời gian train
- giảm bộ nhớ
- tăng khả năng giải thích
Blueprint DSP-210 liệt kê nhiều kỹ thuật lựa chọn đặc trưng như High-correlation filter, Low-variance filter, Random Forest Feature Importance, Forward Selection và Backward Elimination.
9. Nhóm 6 – Dimensionality Reduction
Khác với Feature Selection.
Feature Selection
↓
Loại bỏ Feature
Dimensionality Reduction
↓
Kết hợp nhiều Feature
↓
thành Feature mới
Ví dụ
100 Feature
↓
PCA
↓
10 Feature mớiVẫn giữ phần lớn thông tin nhưng giảm đáng kể số chiều dữ liệu.
Các kỹ thuật được Blueprint đề cập gồm:
- PCA
- SVD
- t-SNE
- Factor Analysis
10. Ví dụ hoàn chỉnh
Dữ liệu gốc
| ID | Birthday | City | Salary |
|---|---|---|---|
| 1 | 2000-03-15 | Hà Nội | 25 triệu |
Sau Feature Engineering
| Age | Birth Month | Quarter | City_HN | Salary_Log |
|---|---|---|---|---|
| 25 | 3 | Q1 | 1 | 3.21 |
Mô hình sẽ học tốt hơn vì dữ liệu đã mang ý nghĩa rõ ràng hơn.
11. Khi nào nên tạo Feature?
Nên khi:
- Có kiến thức nghiệp vụ (Domain Knowledge).
- Có thể kết hợp nhiều cột để tạo thông tin mới.
- Dữ liệu ngày giờ có thể tách thành nhiều thành phần.
- Dữ liệu văn bản cần chuẩn hóa hoặc trích xuất.
- Dữ liệu liên tục cần chia nhóm (binning/discretization).
Không nên tạo quá nhiều Feature không có giá trị vì dễ làm tăng nhiễu và chi phí tính toán.
12. Những lỗi thường gặp
| Sai lầm | Hậu quả |
|---|---|
| Tạo quá nhiều Feature | Overfitting |
| Label Encoding cho dữ liệu không có thứ bậc | Mô hình hiểu sai quan hệ |
| Không xử lý dữ liệu trước Feature Engineering | Kết quả không ổn định |
| Giữ lại nhiều Feature tương quan cao | Dư thừa thông tin |
| Tạo Feature gây rò rỉ dữ liệu (Data Leakage) | Đánh giá mô hình sai lệch |
13. Checklist ôn thi DSP-210
Bạn nên nắm vững các nội dung sau:
- ✔ Mục tiêu của Feature Engineering.
- ✔ Phân biệt Feature Engineering, Feature Selection và Dimensionality Reduction.
- ✔ Khi nào dùng Label Encoding, One-Hot Encoding, Target Encoding, Binary Encoding, Hash Encoding.
- ✔ Tạo đặc trưng từ ngày tháng, văn bản, địa chỉ, nhiều biến kết hợp.
- ✔ Các kỹ thuật Split Features, Binning, Feature Reduction (PCA, SVD, t-SNE…).
- ✔ Hiểu rằng Feature Engineering là quá trình lặp lại: khi có dữ liệu mới hoặc kết quả mô hình thay đổi, các quyết định về đặc trưng cần được xem xét và cải tiến lại.
Đối với kỳ thi CDSP DSP-210, Feature Engineering là một chủ đề trọng tâm trong Domain 3 – Objective 3.3, thường xuất hiện dưới dạng câu hỏi tình huống yêu cầu lựa chọn kỹ thuật phù hợp để cải thiện chất lượng dữ liệu trước khi huấn luyện mô hình.