Series: Machine Learning Fundamentals – Bài 16
Khi mới học Machine Learning, nhiều người thường dành phần lớn thời gian để tìm kiếm những mô hình mạnh hơn như Random Forest, XGBoost hay Deep Learning.
Tuy nhiên, trong thực tế, việc thay đổi thuật toán đôi khi chỉ cải thiện mô hình vài phần trăm.
Ngược lại, Feature Engineering có thể tạo ra sự khác biệt lớn hơn nhiều.
Đó là lý do trong cộng đồng Data Science có một quan điểm nổi tiếng:
“Garbage In, Garbage Out.”
Nếu dữ liệu đầu vào không tốt, dù sử dụng mô hình hiện đại đến đâu thì kết quả dự đoán cũng khó đạt chất lượng cao.
Feature là gì?
Trong Machine Learning, Feature là các thuộc tính hoặc biến đầu vào được sử dụng để mô hình học và đưa ra dự đoán.
Ví dụ với bài toán dự đoán giá nhà:
- Diện tích.
- Số phòng ngủ.
- Tuổi của căn nhà.
- Khoảng cách đến trung tâm.
- Mặt tiền.
- Khu vực.
Mỗi yếu tố trên là một Feature.
Mô hình sẽ học mối quan hệ giữa các Feature và giá bán của ngôi nhà.
Feature Engineering là gì?
Feature Engineering là quá trình tạo mới, biến đổi hoặc cải thiện các Feature nhằm giúp mô hình Machine Learning học hiệu quả hơn.
Quá trình này có thể bao gồm:
- Tạo Feature mới.
- Biến đổi dữ liệu.
- Chuẩn hóa dữ liệu.
- Mã hóa dữ liệu phân loại.
- Xử lý giá trị thiếu.
- Kết hợp nhiều Feature thành một Feature mới.
Mục tiêu cuối cùng là giúp dữ liệu phản ánh tốt hơn bản chất của bài toán.
Vì sao Feature Engineering quan trọng?
Hãy tưởng tượng bạn xây dựng mô hình dự đoán doanh thu của một cửa hàng.
Ban đầu chỉ có:
- Ngày bán.
- Doanh thu.
Đối với mô hình, cột Ngày bán chỉ là một con số.
Tuy nhiên, nếu tách thành:
- Thứ trong tuần.
- Tháng.
- Quý.
- Cuối tuần hay ngày thường.
Mô hình sẽ dễ dàng học được các quy luật theo mùa hoặc theo ngày trong tuần.
Điều này thường mang lại hiệu quả cao hơn so với việc thay đổi thuật toán.
Các kỹ thuật Feature Engineering phổ biến
1. Tạo Feature mới
Ví dụ:
Thay vì sử dụng riêng:
- Chiều cao.
- Cân nặng.
Có thể tạo thêm:
BMI = Cân nặng / Chiều cao²
BMI thường phản ánh tình trạng cơ thể tốt hơn hai Feature ban đầu.
2. One-Hot Encoding
Máy tính không hiểu trực tiếp các giá trị như:
- Hà Nội.
- TP.HCM.
- Đà Nẵng.
One-Hot Encoding sẽ chuyển chúng thành các cột nhị phân:
| Thành phố | Hà Nội | TP.HCM | Đà Nẵng |
|---|---|---|---|
| Hà Nội | 1 | 0 | 0 |
| TP.HCM | 0 | 1 | 0 |
| Đà Nẵng | 0 | 0 | 1 |
Đây là một trong những bước tiền xử lý phổ biến nhất.
3. Feature Scaling
Một bài toán có hai Feature:
- Thu nhập: 20.000.000 đồng.
- Tuổi: 25.
Hai Feature có thang đo rất khác nhau.
Điều này có thể ảnh hưởng đến nhiều thuật toán như:
- KNN.
- SVM.
- Neural Network.
Các kỹ thuật thường dùng:
- Standardization.
- Min-Max Scaling.
4. Xử lý dữ liệu thời gian
Từ một cột ngày tháng, có thể tạo thêm:
- Năm.
- Tháng.
- Quý.
- Ngày trong tuần.
- Cuối tuần.
- Ngày lễ.
Những Feature này thường mang nhiều ý nghĩa hơn dữ liệu gốc.
5. Log Transformation
Một số Feature có phân phối lệch mạnh.
Ví dụ:
Thu nhập.
Giá nhà.
Doanh số.
Sử dụng phép biến đổi Log có thể giúp dữ liệu ổn định hơn và cải thiện khả năng học của mô hình.
Ví dụ thực tế
Giả sử một ngân hàng muốn dự đoán khả năng khách hàng trả nợ.
Dữ liệu ban đầu:
- Thu nhập.
- Khoản vay.
- Tuổi.
Sau Feature Engineering có thể tạo thêm:
- Debt-to-Income Ratio = Khoản vay / Thu nhập.
- Số năm làm việc.
- Nhóm độ tuổi.
- Tần suất thanh toán đúng hạn.
Những Feature mới này thường mang nhiều thông tin hơn dữ liệu gốc.
Feature Engineering và Feature Selection
Hai khái niệm này rất dễ bị nhầm lẫn.
| Feature Engineering | Feature Selection |
|---|---|
| Tạo hoặc biến đổi Feature | Chọn Feature tốt nhất |
| Làm giàu dữ liệu | Giảm số lượng Feature |
| Có thể tạo Feature mới | Không tạo Feature mới |
Thông thường, Feature Engineering được thực hiện trước, sau đó mới đến Feature Selection.
Có phải càng nhiều Feature càng tốt?
Không.
Quá nhiều Feature có thể dẫn đến:
- Overfitting.
- Tăng thời gian huấn luyện.
- Tăng chi phí tính toán.
- Làm mô hình khó diễn giải.
Điều quan trọng không phải là số lượng Feature, mà là chất lượng của chúng.
Vai trò của chuyên gia lĩnh vực
Feature Engineering không chỉ là kỹ thuật lập trình.
Nó còn đòi hỏi kiến thức về lĩnh vực đang phân tích.
Ví dụ:
Trong y tế, bác sĩ có thể đề xuất các chỉ số lâm sàng quan trọng.
Trong tài chính, chuyên gia có thể xây dựng các tỷ lệ phản ánh rủi ro tín dụng.
Sự kết hợp giữa hiểu biết nghiệp vụ và kỹ thuật Machine Learning thường tạo ra những Feature có giá trị nhất.
Kết luận
Feature Engineering là quá trình cải thiện dữ liệu đầu vào để mô hình Machine Learning học hiệu quả hơn.
Thông qua việc tạo mới, biến đổi và tối ưu các Feature, chúng ta có thể cải thiện đáng kể khả năng dự đoán mà không cần thay đổi thuật toán.
Trong nhiều dự án thực tế, chất lượng của Feature còn quan trọng hơn việc lựa chọn mô hình phức tạp.
Đó là lý do Feature Engineering luôn được xem là một trong những kỹ năng cốt lõi của Data Scientist và Machine Learning Engineer.
Bài tiếp theo
Trong bài viết tiếp theo, MCNA Technology School sẽ cùng bạn tìm hiểu:
Feature Selection là gì? Làm sao chọn đúng Feature để mô hình học hiệu quả hơn?
Tiếp tục học Machine Learning cùng MCNA Technology School
Nếu bạn muốn thực hành Feature Engineering, xây dựng mô hình Machine Learning bằng Python và xử lý dữ liệu trên các bộ dữ liệu thực tế, hãy tham khảo các chương trình đào tạo dưới đây.
🤖 Combo 5 khóa AI & Power BI
https://mcna.vn/khoa-hoc/khoa-hoc-combo-5-khoa-ai-va-power-bi/
🐍 Combo Python từ cơ bản đến nâng cao
https://mcna.vn/khoa-hoc/combo-python/
Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
🌐 Website: mcna.vn
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

